InterpreterVisitor class

Inheritance
Available extensions

Constructors

InterpreterVisitor({required Environment globalEnvironment, required ModuleLoader moduleLoader, Uri? initiallibrary})

Properties

callStack → D4rtCallStack
The interpreted call stack of the run this visitor serves (D4rtCallStack), held by the run's loader so every module's visitor shares it.
no setter
currentAsyncState ↔ AsyncExecutionState?
getter/setter pair
currentFunction ↔ InterpretedFunction?
getter/setter pair
declSlots → Expando<int>
S3b (plan_3 §4.6 / §9.3): per-declaration-node slot index produced by StaticResolver. Read in visitVariableDeclarationList to dual-write a slotted local's value into the frame's slot array alongside the name binding. Empty until resolveStaticCoordinates runs; nodes with no entry declare no slot.
final
deferStaticFieldInits ↔ bool
When true, visitClassDeclaration will enqueue its static-field initializer evaluation onto _pendingStaticInitializers instead of running it immediately. The top-level runner flips this on for the multi-class declaration pass and then drains the queue.
getter/setter pair
environment ↔ Environment
getter/setter pair
globalEnvironment → Environment
final
hashCode → int
The hash code for this object.
no setterinherited
isLazySyncGeneratorContext ↔ bool
For lazy sync* generators: when true, yield throws SyncYieldSuspension to pause execution and bubble up through the call stack.
getter/setter pair
moduleLoader → ModuleLoader
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
staticCoords → Expando<StaticCoord>
S1/S3c (plan_3 §9.1 / §9.3): per-identifier-use static lexical coordinates produced by StaticResolver. A coordinate is emitted only for an eligible innermost-block local (depth 0); visitSimpleIdentifier reads such a use straight from the current frame's slot array via Environment.getSlot (one Expando hop + one list index, no name hashing — note-6 §10.4). Empty until resolveStaticCoordinates runs; nodes with no entry take the name-keyed Environment.get walk.
final
syncGeneratorValues ↔ List<Object?>?
For sync* generators: the list to collect yielded values into. When non-null, yield statements add directly to this list.
getter/setter pair

Methods

catchClauseMatches(CatchClause clause, Object? thrownValue) → bool
Whether clause handles thrownValue.
computeCompoundValue(Object? currentValue, Object? rhsValue, TokenType operatorType) → Object?
executeBlock(List<Statement> statements, Environment blockEnvironment) → Object?
interpretedCallMethod(Object? value) → Callable?

Available on InterpreterVisitor, provided by the InterpreterVisitorExtension extension

SCD145 — the clause a member error should carry when its receiver is a NATIVE object that no bridge claims.
lookupOnBridgedSupertypes(BridgedInstance<Object> bridgedInstance, String propertyName) → (Object?, bool)

Available on InterpreterVisitor, provided by the InterpreterVisitorExtension extension

Cluster-12 (priority 3): Walks the registered supertype chain of bridgedInstance's class and returns the first matching getter result or method tear-off for propertyName. Used as a fallback in property access when the leaf bridge has no matching adapter.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerTypeAlias(TypeAlias node) → bool
Bind node's name to its target type, if the target resolves now.
resolveStaticCoordinates(Iterable<AstNode> declarations) → void
Runs the StaticResolver over declarations, populating staticCoords and declSlots. Invoked by the execute pipeline after Pass-1 declarations and before Pass-2 interpretation. A no-op for execute paths that do not call it (their nodes simply carry no coordinate).
runDeferredStaticInitializers() → void
Execute and clear all pending static-field initializers. Intended to be called by the top-level runner after every class declaration has been visited, so that forward-referenced class constructors are available.
selectCatchClause(TryStatement node, Object? thrownValue) → CatchClause?
The clause of node that handles thrownValue, or null when none does.
stringify(Object? value) → String
toBridgedInstance(Object? nativeObject, {String? methodName}) → (BridgedInstance<Object>?, bool)

Available on InterpreterVisitor, provided by the InterpreterVisitorExtension extension

toString() → String
A string representation of this object.
inherited
unbridgedNativeClause(Object? receiver) → String

Available on InterpreterVisitor, provided by the InterpreterVisitorExtension extension

visitAdjacentStrings(AdjacentStrings node) → Object?
inherited
visitAnnotatedNode(AnnotatedNode node) → Object?
inherited
visitAnnotation(Annotation node) → Object?
inherited
visitAnonymousBlockBody(AnonymousBlockBody node) → Object?
inherited
visitAnonymousExpressionBody(AnonymousExpressionBody node) → Object?
inherited
visitAnonymousMethodBody(AnonymousMethodBody node) → Object?
inherited
visitAnonymousMethodInvocation(AnonymousMethodInvocation node) → Object?
inherited
visitArgumentList(ArgumentList node) → Object?
inherited
visitAsExpression(AsExpression node) → Object?
override
visitAssertInitializer(AssertInitializer node) → Object?
inherited
visitAssertStatement(AssertStatement node) → Object?
override
visitAssignedVariablePattern(AssignedVariablePattern node) → Object?
inherited
visitAssignmentExpression(AssignmentExpression node) → Object?
override
visitAwaitExpression(AwaitExpression node) → Object?
override
visitBinaryExpression(BinaryExpression node) → Object?
override
visitBlock(Block node) → Object?
override
visitBlockClassBody(BlockClassBody node) → Object?
inherited
visitBlockFunctionBody(BlockFunctionBody node) → Object?
inherited
visitBooleanLiteral(BooleanLiteral node) → Object?
override
visitBreakStatement(BreakStatement node) → Object?
override
visitCascadeExpression(CascadeExpression node) → Object?
override
visitCaseClause(CaseClause node) → Object?
inherited
visitCastPattern(CastPattern node) → Object?
inherited
visitCatchClause(CatchClause node) → Object?
inherited
visitCatchClauseParameter(CatchClauseParameter node) → Object?
inherited
visitClassBody(ClassBody node) → Object?
inherited
visitClassDeclaration(ClassDeclaration node) → Object?
override
visitClassMember(ClassMember node) → Object?
inherited
visitClassNamePart(ClassNamePart node) → Object?
inherited
visitClassTypeAlias(ClassTypeAlias node) → Object?
inherited
visitCollectionElement(CollectionElement node) → Object?
inherited
visitCombinator(Combinator node) → Object?
inherited
visitComment(Comment node) → Object?
inherited
visitCommentReferableExpression(CommentReferableExpression node) → Object?
inherited
visitCommentReference(CommentReference node) → Object?
inherited
visitCompilationUnit(CompilationUnit node) → Object?
override
visitCompilationUnitMember(CompilationUnitMember node) → Object?
inherited
visitConditionalExpression(ConditionalExpression node) → Object?
override
visitConfiguration(Configuration node) → Object?
inherited
visitConstantPattern(ConstantPattern node) → Object?
inherited
visitConstructorDeclaration(ConstructorDeclaration node) → Object?
inherited
visitConstructorFieldInitializer(ConstructorFieldInitializer node) → Object?
inherited
visitConstructorInitializer(ConstructorInitializer node) → Object?
inherited
visitConstructorName(ConstructorName node) → Object?
inherited
visitConstructorReference(ConstructorReference node) → Object?
override
visitConstructorSelector(ConstructorSelector node) → Object?
inherited
visitContinueStatement(ContinueStatement node) → Object?
override
visitDartPattern(DartPattern node) → Object?
inherited
visitDeclaration(Declaration node) → Object?
inherited
visitDeclaredIdentifier(DeclaredIdentifier node) → Object?
inherited
visitDeclaredVariablePattern(DeclaredVariablePattern node) → Object?
inherited
visitDefaultFormalParameter(DefaultFormalParameter node) → Object?
inherited
visitDirective(Directive node) → Object?
inherited
visitDoStatement(DoStatement node) → Object?
override
visitDotShorthandConstructorInvocation(DotShorthandConstructorInvocation node) → Object?
inherited
visitDotShorthandInvocation(DotShorthandInvocation node) → Object?
inherited
visitDotShorthandPropertyAccess(DotShorthandPropertyAccess node) → Object?
inherited
visitDottedName(DottedName node) → Object?
inherited
visitDoubleLiteral(DoubleLiteral node) → Object?
override
visitEmptyClassBody(EmptyClassBody node) → Object?
inherited
visitEmptyFunctionBody(EmptyFunctionBody node) → Object?
inherited
visitEmptyStatement(EmptyStatement node) → Object?
override
visitEnumBody(EnumBody node) → Object?
inherited
visitEnumConstantArguments(EnumConstantArguments node) → Object?
inherited
visitEnumConstantDeclaration(EnumConstantDeclaration node) → Object?
inherited
visitEnumDeclaration(EnumDeclaration node) → Object?
override
visitExportDirective(ExportDirective node) → Object?
inherited
visitExpression(Expression node) → Object?
inherited
visitExpressionFunctionBody(ExpressionFunctionBody node) → Object?
inherited
visitExpressionStatement(ExpressionStatement node) → Object?
override
visitExtendsClause(ExtendsClause node) → Object?
inherited
visitExtensionDeclaration(ExtensionDeclaration node) → Object?
override
visitExtensionOnClause(ExtensionOnClause node) → Object?
inherited
visitExtensionOverride(ExtensionOverride node) → Object?
inherited
visitExtensionTypeDeclaration(ExtensionTypeDeclaration node) → Object?
Lim-1 FIX: Handle extension type declarations (Dart 3.3+)
override
visitFieldDeclaration(FieldDeclaration node) → Object?
inherited
visitFieldFormalParameter(FieldFormalParameter node) → Object?
inherited
visitForEachParts(ForEachParts node) → Object?
inherited
visitForEachPartsWithDeclaration(ForEachPartsWithDeclaration node) → Object?
inherited
visitForEachPartsWithIdentifier(ForEachPartsWithIdentifier node) → Object?
inherited
visitForEachPartsWithPattern(ForEachPartsWithPattern node) → Object?
inherited
visitForElement(ForElement node) → Object?
inherited
visitForLoopParts(ForLoopParts node) → Object?
inherited
visitFormalParameter(FormalParameter node) → Object?
inherited
visitFormalParameterList(FormalParameterList node) → Object?
inherited
visitForParts(ForParts node) → Object?
inherited
visitForPartsWithDeclarations(ForPartsWithDeclarations node) → Object?
inherited
visitForPartsWithExpression(ForPartsWithExpression node) → Object?
inherited
visitForPartsWithPattern(ForPartsWithPattern node) → Object?
inherited
visitForStatement(ForStatement node) → Object?
override
visitFunctionBody(FunctionBody node) → Object?
inherited
visitFunctionDeclaration(FunctionDeclaration node) → Object?
override
visitFunctionDeclarationStatement(FunctionDeclarationStatement node) → Object?
A local function declaration is executed by evaluating the declaration it wraps.
override
visitFunctionExpression(FunctionExpression node) → Object?
override
visitFunctionExpressionInvocation(FunctionExpressionInvocation node) → Object?
override
visitFunctionReference(FunctionReference node) → Object?
override
visitFunctionTypeAlias(FunctionTypeAlias node) → Object?
inherited
visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) → Object?
inherited
visitGenericFunctionType(GenericFunctionType node) → Object?
inherited
visitGenericTypeAlias(GenericTypeAlias node) → Object?
inherited
visitGuardedPattern(GuardedPattern node) → Object?
inherited
visitHideCombinator(HideCombinator node) → Object?
inherited
visitIdentifier(Identifier node) → dynamic
override
visitIfElement(IfElement node) → Object?
inherited
visitIfStatement(IfStatement node) → Object?
override
visitImplementsClause(ImplementsClause node) → Object?
inherited
visitImplicitCallReference(ImplicitCallReference node) → Object?
inherited
visitImportDirective(ImportDirective node) → Object?
override
visitImportPrefixReference(ImportPrefixReference node) → Object?
inherited
visitIndexExpression(IndexExpression node) → Object?
override
visitInstanceCreationExpression(InstanceCreationExpression node) → Object?
override
visitIntegerLiteral(IntegerLiteral node) → Object?
override
visitInterpolationElement(InterpolationElement node) → Object?
inherited
visitInterpolationExpression(InterpolationExpression node) → Object?
inherited
visitInterpolationString(InterpolationString node) → Object?
inherited
visitInvocationExpression(InvocationExpression node) → Object?
inherited
visitIsExpression(IsExpression node) → Object?
override
visitLabel(Label node) → Object?
inherited
visitLabeledStatement(LabeledStatement node) → Object?
override
visitLibraryDirective(LibraryDirective node) → Object?
inherited
visitLibraryIdentifier(LibraryIdentifier node) → Object?
inherited
visitListLiteral(ListLiteral node) → Object?
override
visitListPattern(ListPattern node) → Object?
inherited
visitLiteral(Literal node) → Object?
inherited
visitLogicalAndPattern(LogicalAndPattern node) → Object?
inherited
visitLogicalOrPattern(LogicalOrPattern node) → Object?
inherited
visitMapLiteralEntry(MapLiteralEntry node) → Object?
inherited
visitMapPattern(MapPattern node) → Object?
inherited
visitMapPatternEntry(MapPatternEntry node) → Object?
inherited
visitMethodDeclaration(MethodDeclaration node) → Object?
inherited
visitMethodInvocation(MethodInvocation node) → Object?
override
visitMixinDeclaration(MixinDeclaration node) → Object?
override
visitMixinOnClause(MixinOnClause node) → Object?
inherited
visitNamedCompilationUnitMember(NamedCompilationUnitMember node) → Object?
inherited
visitNamedExpression(NamedExpression node) → Object?
A named argument evaluates to its expression — the label is a name, not a value.
override
visitNamedType(NamedType node) → Object?
inherited
visitNamespaceDirective(NamespaceDirective node) → Object?
inherited
visitNameWithTypeParameters(NameWithTypeParameters node) → Object?
inherited
visitNativeClause(NativeClause node) → Object?
inherited
visitNativeFunctionBody(NativeFunctionBody node) → Object?
inherited
visitNode(AstNode node) → Object?
SCC33 — the dispatch backstop.
override
visitNormalFormalParameter(NormalFormalParameter node) → Object?
inherited
visitNullAssertPattern(NullAssertPattern node) → Object?
inherited
visitNullAwareElement(NullAwareElement node) → Object?
inherited
visitNullCheckPattern(NullCheckPattern node) → Object?
inherited
visitNullLiteral(NullLiteral node) → Object?
override
visitObjectPattern(ObjectPattern node) → Object?
inherited
visitParenthesizedExpression(ParenthesizedExpression node) → Object?
override
visitParenthesizedPattern(ParenthesizedPattern node) → Object?
inherited
visitPartDirective(PartDirective node) → Object?
inherited
visitPartOfDirective(PartOfDirective node) → Object?
inherited
visitPatternAssignment(PatternAssignment node) → Object?
override
visitPatternField(PatternField node) → Object?
inherited
visitPatternFieldName(PatternFieldName node) → Object?
inherited
visitPatternVariableDeclaration(PatternVariableDeclaration node) → Object?
inherited
visitPatternVariableDeclarationStatement(PatternVariableDeclarationStatement node) → Object?
override
visitPostfixExpression(PostfixExpression node) → Object?
override
visitPrefixedIdentifier(PrefixedIdentifier node) → Object?
override
visitPrefixExpression(PrefixExpression node) → Object?
override
visitPrimaryConstructorBody(PrimaryConstructorBody node) → Object?
inherited
visitPrimaryConstructorDeclaration(PrimaryConstructorDeclaration node) → Object?
inherited
visitPrimaryConstructorName(PrimaryConstructorName node) → Object?
inherited
visitPropertyAccess(PropertyAccess node) → Object?
override
visitRecordLiteral(RecordLiteral node) → Object?
override
visitRecordPattern(RecordPattern node) → Object?
inherited
visitRecordTypeAnnotation(RecordTypeAnnotation node) → Object?
inherited
visitRecordTypeAnnotationField(RecordTypeAnnotationField node) → Object?
inherited
visitRecordTypeAnnotationNamedField(RecordTypeAnnotationNamedField node) → Object?
inherited
visitRecordTypeAnnotationNamedFields(RecordTypeAnnotationNamedFields node) → Object?
inherited
visitRecordTypeAnnotationPositionalField(RecordTypeAnnotationPositionalField node) → Object?
inherited
visitRedirectingConstructorInvocation(RedirectingConstructorInvocation node) → Object?
inherited
visitRelationalPattern(RelationalPattern node) → Object?
inherited
visitRepresentationConstructorName(RepresentationConstructorName node) → Object?
inherited
visitRepresentationDeclaration(RepresentationDeclaration node) → Object?
inherited
visitRestPatternElement(RestPatternElement node) → Object?
inherited
visitRethrowExpression(RethrowExpression node) → Object?
override
visitReturnStatement(ReturnStatement node) → Object?
override
visitScriptTag(ScriptTag node) → Object?
inherited
visitSetOrMapLiteral(SetOrMapLiteral node) → Object?
override
visitShowCombinator(ShowCombinator node) → Object?
inherited
visitSimpleFormalParameter(SimpleFormalParameter node) → Object?
inherited
visitSimpleIdentifier(SimpleIdentifier node) → Object?
override
visitSimpleStringLiteral(SimpleStringLiteral node) → Object?
inherited
visitSingleStringLiteral(SingleStringLiteral node) → Object?
inherited
visitSpreadElement(SpreadElement node) → Object?
inherited
visitStatement(Statement node) → Object?
inherited
visitStringInterpolation(StringInterpolation node) → Object?
override
visitStringLiteral(StringLiteral node) → Object?
override
visitSuperConstructorInvocation(SuperConstructorInvocation node) → Object?
override
visitSuperExpression(SuperExpression node) → Object?
override
visitSuperFormalParameter(SuperFormalParameter node) → Object?
inherited
visitSwitchCase(SwitchCase node) → Object?
inherited
visitSwitchDefault(SwitchDefault node) → Object?
inherited
visitSwitchExpression(SwitchExpression node) → Object?
override
visitSwitchExpressionCase(SwitchExpressionCase node) → Object?
inherited
visitSwitchMember(SwitchMember node) → Object?
inherited
visitSwitchPatternCase(SwitchPatternCase node) → Object?
inherited
visitSwitchStatement(SwitchStatement node) → Object?
override
visitSymbolLiteral(SymbolLiteral node) → Object?
override
visitThisExpression(ThisExpression node) → Object?
override
visitThrowExpression(ThrowExpression node) → Object?
override
visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) → Object?
override
visitTryStatement(TryStatement node) → Object?
override
visitTypeAlias(TypeAlias node) → Object?
A type alias binds its NAME to the type it names, and evaluates to nothing itself.
override
visitTypeAnnotation(TypeAnnotation node) → Object?
inherited
visitTypeArgumentList(TypeArgumentList node) → Object?
inherited
visitTypedLiteral(TypedLiteral node) → Object?
inherited
visitTypeLiteral(TypeLiteral node) → Object?
inherited
visitTypeParameter(TypeParameter node) → Object?
inherited
visitTypeParameterList(TypeParameterList node) → Object?
inherited
visitUriBasedDirective(UriBasedDirective node) → Object?
inherited
visitVariableDeclaration(VariableDeclaration node) → Object?
inherited
visitVariableDeclarationList(VariableDeclarationList node) → Object?
override
visitVariableDeclarationStatement(VariableDeclarationStatement node) → Object?
override
visitVariablePattern(VariablePattern node) → Object?
inherited
visitWhenClause(WhenClause node) → Object?
inherited
visitWhileStatement(WhileStatement node) → Object?
override
visitWildcardPattern(WildcardPattern node) → Object?
inherited
visitWithClause(WithClause node) → Object?
inherited
visitYieldStatement(YieldStatement node) → Object?
override
wrapNativeReturnValue(Object? nativeValue) → Object?
Wraps a native return value from a bridged call in a BridgedInstance if a bridge exists, otherwise returns the value as-is.

Operators

operator ==(Object other) → bool
The equality operator.
inherited