Class ResolveMethodNode
java.lang.Object
com.oracle.truffle.api.nodes.Node
org.pkl.core.ast.PklNode
org.pkl.core.ast.ExpressionNode
org.pkl.core.ast.expression.member.ResolveMethodNode
- All Implemented Interfaces:
com.oracle.truffle.api.instrumentation.InstrumentableNode,com.oracle.truffle.api.nodes.NodeInterface,Cloneable
Resolves a method name in a method call with implicit receiver, for example `bar` in `x = bar()`
(but not `foo.bar()`).
A method name can refer to any of the following: - a (potentially `local`) method in the lexical scope - a base module method - a method 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.ChildrenNested classes/interfaces inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
com.oracle.truffle.api.instrumentation.InstrumentableNode.WrapperNode -
Field Summary
Fields inherited from class org.pkl.core.ast.PklNode
sourceSection -
Constructor Summary
ConstructorsConstructorDescriptionResolveMethodNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier methodName, ExpressionNode[] argumentNodes, boolean isBaseModule, boolean isCustomThisScope, ConstLevel constLevel, int constDepth) -
Method Summary
Modifier and TypeMethodDescriptionexecuteGeneric(com.oracle.truffle.api.frame.VirtualFrame frame) Methods inherited from class org.pkl.core.ast.ExpressionNode
createWrapper, executeBoolean, executeFloat, executeInt, hasTag, isInstrumentableMethods inherited from class org.pkl.core.ast.PklNode
exceptionBuilder, getShortName, getSourceSection, toStringMethods 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, reportReplaceMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface com.oracle.truffle.api.instrumentation.InstrumentableNode
createProbe, findNearestNodeAt, findNearestNodeAt, findProbe, getNodeObject, materializeInstrumentableNodes
-
Constructor Details
-
ResolveMethodNode
public ResolveMethodNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier methodName, ExpressionNode[] argumentNodes, boolean isBaseModule, boolean isCustomThisScope, ConstLevel constLevel, int constDepth)
-
-
Method Details
-
executeGeneric
- Specified by:
executeGenericin classExpressionNode
-