InterpretedFunction.declaration constructor

InterpretedFunction.declaration(
  1. SFunctionDeclaration declaration,
  2. Environment closure,
  3. RuntimeType? declaredReturnType,
  4. bool isNullable, {
  5. 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,
       ),
     );