InterpretedFunction.declaration constructor
InterpretedFunction.declaration(
- SFunctionDeclaration declaration,
- Environment closure,
- RuntimeType? declaredReturnType,
- bool isNullable, {
- AppliedRuntimeType? declaredReturnTypeApplied,
Implementation
InterpretedFunction.declaration(
SFunctionDeclaration declaration,
Environment closure,
RuntimeType? declaredReturnType,
bool isNullable, {
AppliedRuntimeType? declaredReturnTypeApplied,
}) : this._internal(
declaration.functionExpression?.parameters,
declaration.functionExpression!.body!,
closure,
declaration.name?.name ?? '',
isGetter: declaration.isGetter, // Pass getter flag
isSetter: declaration.isSetter, // Pass setter flag
ownerType: null, // Not defined within a class/enum
isAbstract: false, // Non-method functions cannot be abstract
isAsync: _isBodyAsync(
declaration.functionExpression?.body,
), // Pass async flag
isGenerator: _isBodyGenerator(
declaration.functionExpression?.body,
), // Pass generator flag
isAsyncGenerator:
_isBodyAsync(declaration.functionExpression?.body) &&
_isBodyGenerator(
declaration.functionExpression?.body,
), // Pass async generator flag
declaredReturnType: declaredReturnType,
declaredReturnTypeApplied: declaredReturnTypeApplied,
isNullable: isNullable,
typeParameterNames: _extractTypeParameterNames(
declaration.functionExpression?.typeParameters,
),
typeParameterBounds: _extractTypeParameterBounds(
declaration.functionExpression?.typeParameters,
closure,
),
);