Class ResolveVariableNode

java.lang.Object
com.oracle.truffle.api.nodes.Node
org.pkl.core.ast.PklNode
org.pkl.core.ast.ExpressionNode
org.pkl.core.ast.expression.primary.ResolveVariableNode
All Implemented Interfaces:
com.oracle.truffle.api.nodes.NodeInterface, Cloneable

public final class ResolveVariableNode extends ExpressionNode
Resolves a variable name, for example `foo` in `x = foo`.

A variable name can refer to any of the following: - a (potentially `local`) property in the lexical scope - a method or lambda parameter in the lexical scope - a base module property - a property accessible through `this`

This node's task is to make a one-time decision between these alternatives for the call site it represents.

  • Nested Class Summary

    Nested classes/interfaces inherited from class com.oracle.truffle.api.nodes.Node

    com.oracle.truffle.api.nodes.Node.Child, com.oracle.truffle.api.nodes.Node.Children
  • Field Summary

    Fields inherited from class org.pkl.core.ast.PklNode

    sourceSection
  • Constructor Summary

    Constructors
    Constructor
    Description
    ResolveVariableNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier variableName, boolean isBaseModule, boolean isCustomThisScope, ConstLevel constLevel, int constDepth)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    executeGeneric(com.oracle.truffle.api.frame.VirtualFrame frame)
     

    Methods inherited from class org.pkl.core.ast.ExpressionNode

    executeBoolean, executeFloat, executeInt

    Methods inherited from class org.pkl.core.ast.PklNode

    exceptionBuilder, getShortName, getSourceSection, toString

    Methods inherited from class com.oracle.truffle.api.nodes.Node

    accept, adoptChildren, atomic, atomic, copy, deepCopy, getChildren, getCost, getDebugProperties, getDescription, getEncapsulatingSourceSection, getLock, getParent, getRootNode, insert, insert, isAdoptable, isSafelyReplaceableBy, notifyInserted, onReplace, replace, replace, reportPolymorphicSpecialize

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ResolveVariableNode

      public ResolveVariableNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier variableName, boolean isBaseModule, boolean isCustomThisScope, ConstLevel constLevel, int constDepth)
  • Method Details