Class InvokeMethodVirtualNode

  • All Implemented Interfaces:
    com.oracle.truffle.api.nodes.NodeInterface, java.lang.Cloneable

    public abstract class InvokeMethodVirtualNode
    extends ExpressionNode
    A virtual method call.
    • 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
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.lang.Object eval​(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object receiver, VmClass receiverClass, com.oracle.truffle.api.nodes.IndirectCallNode callNode)  
      protected java.lang.Object evalCached​(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object receiver, VmClass receiverClass, VmClass cachedReceiverClass, ClassMethod method, com.oracle.truffle.api.nodes.DirectCallNode callNode)  
      protected java.lang.Object evalFunction​(com.oracle.truffle.api.frame.VirtualFrame frame, VmFunction receiver, VmClass receiverClass, com.oracle.truffle.api.nodes.IndirectCallNode callNode)
      Intrinsifies `FunctionN.apply()` calls.
      protected java.lang.Object evalFunctionCached​(com.oracle.truffle.api.frame.VirtualFrame frame, VmFunction receiver, VmClass receiverClass, com.oracle.truffle.api.RootCallTarget cachedCallTarget, com.oracle.truffle.api.nodes.DirectCallNode callNode)
      Intrinsifies `FunctionN.apply()` calls.
      abstract java.lang.Object executeWith​(com.oracle.truffle.api.frame.VirtualFrame frame, java.lang.Object value, VmClass clazz)
      When only using this execute method, pass `null` for `receiverNode` and `receiverClassNode` to InvokeMethodVirtualNodeGen.create(com.oracle.truffle.api.source.SourceSection, org.pkl.core.runtime.Identifier, org.pkl.core.ast.ExpressionNode[], org.pkl.core.ast.MemberLookupMode, boolean, org.pkl.core.ast.ExpressionNode, org.pkl.core.ast.internal.GetClassNode).
      protected ClassMethod resolveMethod​(VmClass receiverClass)  
      • 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
    • Field Detail

      • methodName

        protected final Identifier methodName
    • Constructor Detail

      • InvokeMethodVirtualNode

        protected InvokeMethodVirtualNode​(com.oracle.truffle.api.source.SourceSection sourceSection,
                                          Identifier methodName,
                                          ExpressionNode[] argumentNodes,
                                          MemberLookupMode lookupMode,
                                          boolean needsConst)
      • InvokeMethodVirtualNode

        protected InvokeMethodVirtualNode​(com.oracle.truffle.api.source.SourceSection sourceSection,
                                          Identifier methodName,
                                          ExpressionNode[] argumentNodes,
                                          MemberLookupMode lookupMode)
    • Method Detail

      • executeWith

        public abstract java.lang.Object executeWith​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                                     java.lang.Object value,
                                                     VmClass clazz)
        When only using this execute method, pass `null` for `receiverNode` and `receiverClassNode` to InvokeMethodVirtualNodeGen.create(com.oracle.truffle.api.source.SourceSection, org.pkl.core.runtime.Identifier, org.pkl.core.ast.ExpressionNode[], org.pkl.core.ast.MemberLookupMode, boolean, org.pkl.core.ast.ExpressionNode, org.pkl.core.ast.internal.GetClassNode).
      • evalFunctionCached

        protected java.lang.Object evalFunctionCached​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                                      VmFunction receiver,
                                                      VmClass receiverClass,
                                                      com.oracle.truffle.api.RootCallTarget cachedCallTarget,
                                                      com.oracle.truffle.api.nodes.DirectCallNode callNode)
        Intrinsifies `FunctionN.apply()` calls.
      • evalFunction

        protected java.lang.Object evalFunction​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                                VmFunction receiver,
                                                VmClass receiverClass,
                                                com.oracle.truffle.api.nodes.IndirectCallNode callNode)
        Intrinsifies `FunctionN.apply()` calls.
      • evalCached

        protected java.lang.Object evalCached​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                              java.lang.Object receiver,
                                              VmClass receiverClass,
                                              VmClass cachedReceiverClass,
                                              ClassMethod method,
                                              com.oracle.truffle.api.nodes.DirectCallNode callNode)
      • eval

        protected java.lang.Object eval​(com.oracle.truffle.api.frame.VirtualFrame frame,
                                        java.lang.Object receiver,
                                        VmClass receiverClass,
                                        com.oracle.truffle.api.nodes.IndirectCallNode callNode)