InterpretedFunction.declaration constructor

InterpretedFunction.declaration(
  1. SFunctionDeclaration declaration,
  2. Environment closure,
  3. RuntimeType? declaredReturnType,
  4. bool isNullable,
)

Implementation

InterpretedFunction.declaration(SFunctionDeclaration declaration,
    Environment closure, RuntimeType? declaredReturnType, bool isNullable)
    : 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,
        isNullable: isNullable,
        typeParameterNames: _extractTypeParameterNames(
            declaration.functionExpression?.typeParameters),
        typeParameterBounds: _extractTypeParameterBounds(
            declaration.functionExpression?.typeParameters, closure),
      );