InterpretedFunction.method constructor

InterpretedFunction.method(
  1. SMethodDeclaration declaration,
  2. Environment closure,
  3. RuntimeType? owner
)

Implementation

InterpretedFunction.method(
    SMethodDeclaration declaration, Environment closure, RuntimeType? owner)
    : this._internal(
        declaration.parameters, declaration.body!, closure,
        declaration.name?.name ?? '',
        // Consider factory methods later
        isInitializer: false, // Methods are not initializers (usually)
        isGetter: declaration.isGetter, // Pass getter flag
        isSetter: declaration.isSetter, // Pass setter flag
        ownerType: owner, // Pass the owner type (class or enum)
        isAbstract: declaration.isAbstract, // Set the abstract flag
        isAsync: _isBodyAsync(declaration.body), // Pass async flag
        isGenerator:
            _isBodyGenerator(declaration.body), // Pass generator flag
        isAsyncGenerator: _isBodyAsync(declaration.body) &&
            _isBodyGenerator(declaration.body), // Pass async generator flag
        typeParameterNames:
            _extractTypeParameterNames(declaration.typeParameters),
        typeParameterBounds:
            _extractTypeParameterBounds(declaration.typeParameters, closure),
      );