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.nodes.NodeInterface, Cloneable

public final class ResolveMethodNode extends ExpressionNode
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.Children
  • Field Summary

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

    sourceSection
  • Constructor Summary

    Constructors
    Constructor
    Description
    ResolveMethodNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier methodName, ExpressionNode[] argumentNodes, 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

    • ResolveMethodNode

      public ResolveMethodNode(com.oracle.truffle.api.source.SourceSection sourceSection, Identifier methodName, ExpressionNode[] argumentNodes, boolean isBaseModule, boolean isCustomThisScope, ConstLevel constLevel, int constDepth)
  • Method Details