Class ResolveMethodNode

  • All Implemented Interfaces:
    com.oracle.truffle.api.nodes.NodeInterface, java.lang.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
    • 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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object executeGeneric​(com.oracle.truffle.api.frame.VirtualFrame frame)  
      • 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 Detail

      • ResolveMethodNode

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

      • executeGeneric

        public java.lang.Object executeGeneric​(com.oracle.truffle.api.frame.VirtualFrame frame)
        Specified by:
        executeGeneric in class ExpressionNode