public abstract class com.oracle.truffle.api.nodes.Node implements com.oracle.truffle.api.nodes.NodeInterface, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.nodes.Node
  super_class: java.lang.Object
{
  private volatile com.oracle.truffle.api.nodes.Node parent;
    descriptor: Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$CompilationFinal()

  private static final java.util.Map<java.lang.Class<?>, com.oracle.truffle.api.TruffleLanguage$LanguageReference<?>> UNCACHED_LANGUAGE_REFERENCES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<*>;>;

  private static final java.util.Map<java.lang.Class<?>, com.oracle.truffle.api.TruffleLanguage$ContextReference<?>> UNCACHED_CONTEXT_REFERENCES;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<*>;>;

  private static final java.util.concurrent.locks.ReentrantLock GIL_LOCK;
    descriptor: Ljava/util/concurrent/locks/ReentrantLock;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 78
            ldc Lcom/oracle/truffle/api/nodes/Node;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
         3: .line 631
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.oracle.truffle.api.nodes.Node.UNCACHED_LANGUAGE_REFERENCES:Ljava/util/Map;
         4: .line 822
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putstatic com.oracle.truffle.api.nodes.Node.UNCACHED_CONTEXT_REFERENCES:Ljava/util/Map;
         5: .line 857
            new java.util.concurrent.locks.ReentrantLock
            dup
            iconst_0
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:(Z)V
            putstatic com.oracle.truffle.api.nodes.Node.GIL_LOCK:Ljava/util/concurrent/locks/ReentrantLock;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 107
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            ldc "do not create a Node from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         2: .line 109
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.nodes.NodeClass.get:(Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/NodeClass;
            ifnonnull 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 110
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/nodes/Node;

  com.oracle.truffle.api.nodes.NodeClass getNodeClass();
    descriptor: ()Lcom/oracle/truffle/api/nodes/NodeClass;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 113
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.nodes.NodeClass.get:(Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/NodeClass;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;

  void setParent(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node parent
         0: .line 117
            aload 0 /* this */
            aload 1 /* parent */
            putfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
         1: .line 118
            return
        end local 1 // com.oracle.truffle.api.nodes.Node parent
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/api/nodes/Node;
            0    2     1  parent  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
        Name  Flags
      parent  

  public com.oracle.truffle.api.nodes.NodeCost getCost();
    descriptor: ()Lcom/oracle/truffle/api/nodes/NodeCost;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 131
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/nodes/NodeInfo;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.nodes.NodeInfo
            astore 1 /* info */
        start local 1 // com.oracle.truffle.api.nodes.NodeInfo info
         1: .line 132
            aload 1 /* info */
            ifnull 3
         2: .line 133
            aload 1 /* info */
            invokeinterface com.oracle.truffle.api.nodes.NodeInfo.cost:()Lcom/oracle/truffle/api/nodes/NodeCost;
            areturn
         3: .line 135
      StackMap locals: com.oracle.truffle.api.nodes.NodeInfo
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.NodeCost.MONOMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.NodeInfo info
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/nodes/Node;
            1    4     1  info  Lcom/oracle/truffle/api/nodes/NodeInfo;

  public com.oracle.truffle.api.source.SourceSection getSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 155
            aconst_null
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;

  public com.oracle.truffle.api.source.SourceSection getEncapsulatingSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 168
            aload 0 /* this */
            astore 1 /* current */
        start local 1 // com.oracle.truffle.api.nodes.Node current
         1: .line 169
            goto 6
         2: .line 170
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 1 /* current */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* currentSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection currentSection
         3: .line 171
            aload 2 /* currentSection */
            ifnull 5
         4: .line 172
            aload 2 /* currentSection */
            areturn
         5: .line 174
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 1 /* current */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* current */
        end local 2 // com.oracle.truffle.api.source.SourceSection currentSection
         6: .line 169
      StackMap locals:
      StackMap stack:
            aload 1 /* current */
            ifnonnull 2
         7: .line 176
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node current
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/oracle/truffle/api/nodes/Node;
            1    8     1         current  Lcom/oracle/truffle/api/nodes/Node;
            3    6     2  currentSection  Lcom/oracle/truffle/api/source/SourceSection;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public boolean isAdoptable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 192
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;

  protected final <T extends com.oracle.truffle.api.nodes.Node> T[] insert();
    descriptor: ([Lcom/oracle/truffle/api/nodes/Node;)[Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node[] newChildren
         0: .line 205
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         1: .line 206
            aload 1 /* newChildren */
            ifnull 7
         2: .line 207
            aload 1 /* newChildren */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node[] top int int com.oracle.truffle.api.nodes.Node[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* newChild */
        start local 2 // com.oracle.truffle.api.nodes.Node newChild
         4: .line 208
            aload 0 /* this */
            aload 2 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
        end local 2 // com.oracle.truffle.api.nodes.Node newChild
         5: .line 207
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 211
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node[]
      StackMap stack:
            aload 1 /* newChildren */
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node[] newChildren
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lcom/oracle/truffle/api/nodes/Node;
            0    8     1  newChildren  [Lcom/oracle/truffle/api/nodes/Node;
            4    5     2     newChild  Lcom/oracle/truffle/api/nodes/Node;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>([TT;)[TT;
    MethodParameters:
             Name  Flags
      newChildren  final

  protected final <T extends com.oracle.truffle.api.nodes.Node> T insert();
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 224
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         1: .line 225
            aload 1 /* newChild */
            ifnull 3
         2: .line 226
            aload 0 /* this */
            aload 1 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node newChild
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0    4     1  newChild  TT;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;)TT;
    MethodParameters:
          Name  Flags
      newChild  final

  protected final void notifyInserted(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 250
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 2 /* rootNode */
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
         1: .line 251
            aload 2 /* rootNode */
            ifnonnull 3
         2: .line 252
            new java.lang.IllegalStateException
            dup
            ldc "Node is not yet adopted and cannot be updated."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 254
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.INSTRUMENT:Lcom/oracle/truffle/api/impl/Accessor$InstrumentSupport;
            aload 2 /* rootNode */
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.impl.Accessor$InstrumentSupport.onNodeInserted:(Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;)V
         4: .line 255
            return
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0    5     1      node  Lcom/oracle/truffle/api/nodes/Node;
            1    5     2  rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
    MethodParameters:
      Name  Flags
      node  

  public final void adoptChildren();
    descriptor: ()V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 259
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         1: .line 260
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.adoptChildrenHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
         2: .line 261
            return
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/nodes/Node;

  final void adoptHelper(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 264
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 1
            aload 1 /* newChild */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 265
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            if_acmpne 3
         2: .line 266
            new java.lang.IllegalStateException
            dup
            ldc "The parent of a node can never be the node itself."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 268
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifeq 7
         4: .line 269
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 5
            aload 0 /* this */
            aload 1 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.checkSameLanguages:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 5
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 270
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            putfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
         6: .line 271
            aload 1 /* newChild */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.adoptChildrenHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
         7: .line 273
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.nodes.Node newChild
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0    8     1  newChild  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      newChild  final

  int adoptChildrenAndCount();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 276
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 277
            iconst_1
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.adoptChildrenAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
            iadd
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/nodes/Node;

  int adoptAndCountHelper(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 281
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 1
            aload 1 /* newChild */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 282
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            if_acmpne 3
         2: .line 283
            new java.lang.IllegalStateException
            dup
            ldc "The parent of a node can never be the node itself."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 285
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 2 /* count */
        start local 2 // int count
         4: .line 286
            aload 1 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifeq 8
         5: .line 287
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 6
            aload 0 /* this */
            aload 1 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.checkSameLanguages:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 288
      StackMap locals: int
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            putfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
         7: .line 289
            iload 2 /* count */
            aload 1 /* newChild */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.adoptChildrenAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
            iadd
            istore 2 /* count */
         8: .line 291
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            ireturn
        end local 2 // int count
        end local 1 // com.oracle.truffle.api.nodes.Node newChild
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0    9     1  newChild  Lcom/oracle/truffle/api/nodes/Node;
            4    9     2     count  I
    MethodParameters:
          Name  Flags
      newChild  

  private boolean checkSameLanguages(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 295
            aload 1 /* newChild */
            instanceof com.oracle.truffle.api.nodes.ExecutableNode
            ifeq 10
            aload 1 /* newChild */
            instanceof com.oracle.truffle.api.nodes.RootNode
            ifne 10
         1: .line 296
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 2 /* root */
        start local 2 // com.oracle.truffle.api.nodes.RootNode root
         2: .line 297
            aload 2 /* root */
            ifnonnull 4
         3: .line 298
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot adopt ExecutableNode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* newChild */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " as a child of node without a root."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 300
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 2 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 3 /* pl */
        start local 3 // com.oracle.truffle.api.nodes.LanguageInfo pl
         5: .line 301
            aload 1 /* newChild */
            checkcast com.oracle.truffle.api.nodes.ExecutableNode
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.getLanguageInfo:()Lcom/oracle/truffle/api/nodes/LanguageInfo;
            astore 4 /* cl */
        start local 4 // com.oracle.truffle.api.nodes.LanguageInfo cl
         6: .line 302
            aload 4 /* cl */
            aload 3 /* pl */
            if_acmpeq 10
         7: .line 303
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Can not adopt ExecutableNode under a different language. Parent "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 304
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* pl */
            invokestatic com.oracle.truffle.api.nodes.Node.langId:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ", child "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* newChild */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* cl */
            invokestatic com.oracle.truffle.api.nodes.Node.langId:(Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 303
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // com.oracle.truffle.api.nodes.LanguageInfo cl
        end local 3 // com.oracle.truffle.api.nodes.LanguageInfo pl
        end local 2 // com.oracle.truffle.api.nodes.RootNode root
        10: .line 307
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.Node newChild
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0   11     1  newChild  Lcom/oracle/truffle/api/nodes/Node;
            2   10     2      root  Lcom/oracle/truffle/api/nodes/RootNode;
            5   10     3        pl  Lcom/oracle/truffle/api/nodes/LanguageInfo;
            6   10     4        cl  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
          Name  Flags
      newChild  final

  private static java.lang.String langId(com.oracle.truffle.api.nodes.LanguageInfo);
    descriptor: (Lcom/oracle/truffle/api/nodes/LanguageInfo;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
         0: .line 311
            aload 0 /* languageInfo */
            ifnonnull 2
         1: .line 312
            aconst_null
            areturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* languageInfo */
            invokevirtual com.oracle.truffle.api.nodes.LanguageInfo.getId:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.LanguageInfo languageInfo
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0  languageInfo  Lcom/oracle/truffle/api/nodes/LanguageInfo;
    MethodParameters:
              Name  Flags
      languageInfo  

  private void adoptUnadoptedHelper(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 319
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 320
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 2
            aload 1 /* newChild */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 321
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            if_acmpne 4
         3: .line 322
            new java.lang.IllegalStateException
            dup
            ldc "The parent of a node can never be the node itself."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 324
      StackMap locals:
      StackMap stack:
            aload 1 /* newChild */
            aload 0 /* this */
            putfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
         5: .line 325
            aload 1 /* newChild */
            new com.oracle.truffle.api.nodes.Node$1
            dup
            aload 0 /* this */
            aload 1 /* newChild */
            invokespecial com.oracle.truffle.api.nodes.Node$1.<init>:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)V
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            pop
         6: .line 333
            return
        end local 1 // com.oracle.truffle.api.nodes.Node newChild
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0    7     1  newChild  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      newChild  final

  public java.util.Map<java.lang.String, java.lang.Object> getDebugProperties();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 343
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* properties */
        start local 1 // java.util.Map properties
         1: .line 344
            aload 1 /* properties */
            areturn
        end local 1 // java.util.Map properties
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lcom/oracle/truffle/api/nodes/Node;
            1    2     1  properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;

  public final com.oracle.truffle.api.nodes.Node getParent();
    descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 354
            aload 0 /* this */
            getfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;

  public final <T extends com.oracle.truffle.api.nodes.Node> T replace(T, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
        start local 2 // java.lang.CharSequence reason
         0: .line 367
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreterAndInvalidate:()V
         1: .line 368
            aload 0 /* this */
            new com.oracle.truffle.api.nodes.Node$2
            dup
            aload 0 /* this */
            aload 1 /* newNode */
            aload 2 /* reason */
            invokespecial com.oracle.truffle.api.nodes.Node$2.<init>:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
            invokevirtual com.oracle.truffle.api.nodes.Node.atomic:(Ljava/lang/Runnable;)V
         2: .line 373
            aload 1 /* newNode */
            areturn
        end local 2 // java.lang.CharSequence reason
        end local 1 // com.oracle.truffle.api.nodes.Node newNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0    3     1  newNode  TT;
            0    3     2   reason  Ljava/lang/CharSequence;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;Ljava/lang/CharSequence;)TT;
    MethodParameters:
         Name  Flags
      newNode  final
      reason   final

  public final <T extends com.oracle.truffle.api.nodes.Node> T replace();
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
         0: .line 385
            aload 0 /* this */
            aload 1 /* newNode */
            ldc ""
            invokevirtual com.oracle.truffle.api.nodes.Node.replace:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node newNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0    1     1  newNode  TT;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;)TT;
    MethodParameters:
         Name  Flags
      newNode  

  final void replaceHelper(com.oracle.truffle.api.nodes.Node, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
        start local 2 // java.lang.CharSequence reason
         0: .line 389
            ldc "do not call Node.replaceHelper from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 390
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.inAtomicBlock:()Z
            ifne 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            ifnonnull 4
         3: .line 392
            new java.lang.IllegalStateException
            dup
            ldc "This node cannot be replaced, because it does not yet have a parent."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 396
      StackMap locals:
      StackMap stack:
            aload 1 /* newNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifeq 6
         5: .line 397
            aload 1 /* newNode */
            aload 0 /* this */
            getfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
            putfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
         6: .line 399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* this */
            aload 1 /* newNode */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Z)Z
            ifne 8
         7: .line 400
            aload 0 /* this */
            getfield com.oracle.truffle.api.nodes.Node.parent:Lcom/oracle/truffle/api/nodes/Node;
            aload 1 /* newNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptUnadoptedHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
         8: .line 402
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* newNode */
            aload 2 /* reason */
            invokevirtual com.oracle.truffle.api.nodes.Node.reportReplace:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
         9: .line 403
            aload 0 /* this */
            aload 1 /* newNode */
            aload 2 /* reason */
            invokevirtual com.oracle.truffle.api.nodes.Node.onReplace:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
        10: .line 404
            return
        end local 2 // java.lang.CharSequence reason
        end local 1 // com.oracle.truffle.api.nodes.Node newNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0   11     1  newNode  Lcom/oracle/truffle/api/nodes/Node;
            0   11     2   reason  Ljava/lang/CharSequence;
    MethodParameters:
         Name  Flags
      newNode  
      reason   

  public final boolean isSafelyReplaceableBy(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
         0: .line 412
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* this */
            aload 1 /* newNode */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.isReplacementSafe:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.Node newNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0    1     1  newNode  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
         Name  Flags
      newNode  

  private void reportReplace(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node oldNode
        start local 2 // com.oracle.truffle.api.nodes.Node newNode
        start local 3 // java.lang.CharSequence reason
         0: .line 416
            aload 0 /* this */
            astore 4 /* node */
        start local 4 // com.oracle.truffle.api.nodes.Node node
         1: .line 417
            goto 13
         2: .line 418
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            iconst_0
            istore 5 /* consumed */
        start local 5 // boolean consumed
         3: .line 419
            aload 4 /* node */
            instanceof com.oracle.truffle.api.ReplaceObserver
            ifeq 6
         4: .line 420
            aload 4 /* node */
            checkcast com.oracle.truffle.api.ReplaceObserver
            aload 1 /* oldNode */
            aload 2 /* newNode */
            aload 3 /* reason */
            invokeinterface com.oracle.truffle.api.ReplaceObserver.nodeReplaced:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Z
            istore 5 /* consumed */
         5: .line 421
            goto 10
      StackMap locals: int
      StackMap stack:
         6: aload 4 /* node */
            instanceof com.oracle.truffle.api.nodes.RootNode
            ifeq 10
         7: .line 422
            aload 4 /* node */
            checkcast com.oracle.truffle.api.nodes.RootNode
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getCallTarget:()Lcom/oracle/truffle/api/RootCallTarget;
            astore 6 /* target */
        start local 6 // com.oracle.truffle.api.CallTarget target
         8: .line 423
            aload 6 /* target */
            instanceof com.oracle.truffle.api.ReplaceObserver
            ifeq 10
         9: .line 424
            aload 6 /* target */
            checkcast com.oracle.truffle.api.ReplaceObserver
            aload 1 /* oldNode */
            aload 2 /* newNode */
            aload 3 /* reason */
            invokeinterface com.oracle.truffle.api.ReplaceObserver.nodeReplaced:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Z
            istore 5 /* consumed */
        end local 6 // com.oracle.truffle.api.CallTarget target
        10: .line 427
      StackMap locals:
      StackMap stack:
            iload 5 /* consumed */
            ifeq 12
        11: .line 428
            goto 14
        12: .line 430
      StackMap locals:
      StackMap stack:
            aload 4 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 4 /* node */
        end local 5 // boolean consumed
        13: .line 417
      StackMap locals:
      StackMap stack:
            aload 4 /* node */
            ifnonnull 2
        14: .line 432
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewrites:Z
            ifeq 16
        15: .line 433
            aload 0 /* this */
            aload 2 /* newNode */
            aload 3 /* reason */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.traceRewrite:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
        16: .line 435
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.oracle.truffle.api.nodes.Node node
        end local 3 // java.lang.CharSequence reason
        end local 2 // com.oracle.truffle.api.nodes.Node newNode
        end local 1 // com.oracle.truffle.api.nodes.Node oldNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Lcom/oracle/truffle/api/nodes/Node;
            0   17     1   oldNode  Lcom/oracle/truffle/api/nodes/Node;
            0   17     2   newNode  Lcom/oracle/truffle/api/nodes/Node;
            0   17     3    reason  Ljava/lang/CharSequence;
            1   17     4      node  Lcom/oracle/truffle/api/nodes/Node;
            3   13     5  consumed  Z
            8   10     6    target  Lcom/oracle/truffle/api/CallTarget;
    MethodParameters:
         Name  Flags
      oldNode  
      newNode  
      reason   

  protected void onReplace(com.oracle.truffle.api.nodes.Node, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
        start local 2 // java.lang.CharSequence reason
         0: .line 447
            return
        end local 2 // java.lang.CharSequence reason
        end local 1 // com.oracle.truffle.api.nodes.Node newNode
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0    1     1  newNode  Lcom/oracle/truffle/api/nodes/Node;
            0    1     2   reason  Ljava/lang/CharSequence;
    MethodParameters:
         Name  Flags
      newNode  
      reason   

  public final void accept(com.oracle.truffle.api.nodes.NodeVisitor);
    descriptor: (Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // com.oracle.truffle.api.nodes.NodeVisitor nodeVisitor
         0: .line 457
            aload 1 /* nodeVisitor */
            aload 0 /* this */
            invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 2
         1: .line 458
            aload 0 /* this */
            aload 1 /* nodeVisitor */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChildRecursive:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            pop
         2: .line 460
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.nodes.NodeVisitor nodeVisitor
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/oracle/truffle/api/nodes/Node;
            0    3     1  nodeVisitor  Lcom/oracle/truffle/api/nodes/NodeVisitor;
    MethodParameters:
             Name  Flags
      nodeVisitor  

  public final java.lang.Iterable<com.oracle.truffle.api.nodes.Node> getChildren();
    descriptor: ()Ljava/lang/Iterable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 469
            new com.oracle.truffle.api.nodes.Node$3
            dup
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node$3.<init>:(Lcom/oracle/truffle/api/nodes/Node;)V
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;
    Signature: ()Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/Node;>;

  public com.oracle.truffle.api.nodes.Node copy();
    descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 483
            ldc "do not call Node.copy from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 486
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
         2: areturn
         3: .line 487
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         4: .line 488
            new java.lang.AssertionError
            dup
            aload 1 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/nodes/Node;
            4    5     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.CloneNotSupportedException

  public com.oracle.truffle.api.nodes.Node deepCopy();
    descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 499
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.deepCopyImpl:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;

  public final com.oracle.truffle.api.nodes.RootNode getRootNode();
    descriptor: ()Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 509
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.CompilerDirectives.isPartialEvaluationConstant:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 510
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNodeImpl:()Lcom/oracle/truffle/api/nodes/RootNode;
            areturn
         2: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootBoundary:()Lcom/oracle/truffle/api/nodes/RootNode;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/nodes/Node;

  private com.oracle.truffle.api.nodes.RootNode getRootBoundary();
    descriptor: ()Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 518
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNodeImpl:()Lcom/oracle/truffle/api/nodes/RootNode;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  private com.oracle.truffle.api.nodes.RootNode getRootNodeImpl();
    descriptor: ()Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 523
            aload 0 /* this */
            astore 1 /* node */
        start local 1 // com.oracle.truffle.api.nodes.Node node
         1: .line 526
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 1 /* node */
            astore 2 /* prev */
        start local 2 // com.oracle.truffle.api.nodes.Node prev
         2: .line 527
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* node */
         3: .line 528
            aload 1 /* node */
            ifnonnull 1
         4: .line 530
            aload 2 /* prev */
            instanceof com.oracle.truffle.api.nodes.RootNode
            ifeq 6
         5: .line 531
            aload 2 /* prev */
            checkcast com.oracle.truffle.api.nodes.RootNode
            areturn
         6: .line 533
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.api.nodes.Node prev
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/oracle/truffle/api/nodes/Node;
            1    7     1  node  Lcom/oracle/truffle/api/nodes/Node;
            2    7     2  prev  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()

  protected final void reportPolymorphicSpecialize();
    descriptor: ()V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 547
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:()V
         1: .line 548
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.RUNTIME:Lcom/oracle/truffle/api/impl/Accessor$RuntimeSupport;
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.impl.Accessor$RuntimeSupport.reportPolymorphicSpecialize:(Lcom/oracle/truffle/api/nodes/Node;)V
         2: .line 549
            return
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/nodes/Node;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 558
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 559
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getDebugProperties:()Ljava/util/Map;
            astore 2 /* properties */
        start local 2 // java.util.Map properties
         2: .line 560
            iconst_0
            istore 3 /* hasProperties */
        start local 3 // boolean hasProperties
         3: .line 561
            aload 2 /* properties */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 10
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.StringBuilder java.util.Map int top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* entry */
        start local 4 // java.util.Map$Entry entry
         5: .line 562
            aload 1 /* sb */
            iload 3 /* hasProperties */
            ifeq 6
            ldc ","
            goto 7
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.StringBuilder java.util.Map int java.util.Map$Entry java.util.Iterator
      StackMap stack: java.lang.StringBuilder
         6: ldc "<"
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.StringBuilder java.util.Map int java.util.Map$Entry java.util.Iterator
      StackMap stack: java.lang.StringBuilder java.lang.String
         7: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 563
            iconst_1
            istore 3 /* hasProperties */
         9: .line 564
            aload 1 /* sb */
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 4 // java.util.Map$Entry entry
        10: .line 561
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.StringBuilder java.util.Map int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        11: .line 566
            iload 3 /* hasProperties */
            ifeq 13
        12: .line 567
            aload 1 /* sb */
            ldc ">"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 569
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.StringBuilder java.util.Map int
      StackMap stack:
            aload 1 /* sb */
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.Object.hashCode:()I
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        14: .line 570
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // boolean hasProperties
        end local 2 // java.util.Map properties
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   15     0           this  Lcom/oracle/truffle/api/nodes/Node;
            1   15     1             sb  Ljava/lang/StringBuilder;
            2   15     2     properties  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            3   15     3  hasProperties  Z
            5   10     4          entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;

  public final void atomic(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // java.lang.Runnable closure
         0: .line 575
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.Lock lock
         1: .line 577
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 578
            aload 1 /* closure */
            invokeinterface java.lang.Runnable.run:()V
         3: .line 579
            goto 7
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Runnable java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
         4: astore 3
         5: .line 580
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         6: .line 581
            aload 3
            athrow
         7: .line 580
      StackMap locals:
      StackMap stack:
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         8: .line 582
            return
        end local 2 // java.util.concurrent.locks.Lock lock
        end local 1 // java.lang.Runnable closure
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0    9     1  closure  Ljava/lang/Runnable;
            1    9     2     lock  Ljava/util/concurrent/locks/Lock;
      Exception table:
        from    to  target  type
           1     4       4  any
    MethodParameters:
         Name  Flags
      closure  

  public final <T> T atomic(java.util.concurrent.Callable<T>);
    descriptor: (Ljava/util/concurrent/Callable;)Ljava/lang/Object;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // java.util.concurrent.Callable closure
         0: .line 586
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getLock:()Ljava/util/concurrent/locks/Lock;
            astore 2 /* lock */
        start local 2 // java.util.concurrent.locks.Lock lock
         1: .line 588
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 589
            aload 1 /* closure */
            invokeinterface java.util.concurrent.Callable.call:()Ljava/lang/Object;
            astore 5
         3: .line 595
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
         4: .line 589
            aload 5
            areturn
         5: .line 590
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.concurrent.Callable java.util.concurrent.locks.Lock
      StackMap stack: java.lang.Throwable
            astore 3 /* e */
        start local 3 // java.lang.Throwable e
         6: .line 591
            aload 3 /* e */
            athrow
        end local 3 // java.lang.Throwable e
         7: .line 592
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 593
            new java.lang.RuntimeException
            dup
            aload 3 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception e
         9: .line 594
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        10: .line 595
            aload 2 /* lock */
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        11: .line 596
            aload 4
            athrow
        end local 2 // java.util.concurrent.locks.Lock lock
        end local 1 // java.util.concurrent.Callable closure
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0     this  Lcom/oracle/truffle/api/nodes/Node;
            0   12     1  closure  Ljava/util/concurrent/Callable<TT;>;
            1   12     2     lock  Ljava/util/concurrent/locks/Lock;
            6    7     3        e  Ljava/lang/Throwable;
            8    9     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     3       5  Class java.lang.RuntimeException
           1     3       5  Class java.lang.Error
           1     3       7  Class java.lang.Exception
           1     3       9  any
           5     9       9  any
    Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Callable<TT;>;)TT;
    MethodParameters:
         Name  Flags
      closure  

  protected final java.util.concurrent.locks.Lock getLock();
    descriptor: ()Ljava/util/concurrent/locks/Lock;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 609
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getRootNode:()Lcom/oracle/truffle/api/nodes/RootNode;
            astore 1 /* root */
        start local 1 // com.oracle.truffle.api.nodes.RootNode root
         1: .line 610
            aload 1 /* root */
            ifnonnull 3
         2: .line 611
            getstatic com.oracle.truffle.api.nodes.Node.GIL_LOCK:Ljava/util/concurrent/locks/ReentrantLock;
            areturn
         3: .line 613
      StackMap locals: com.oracle.truffle.api.nodes.RootNode
      StackMap stack:
            aload 1 /* root */
            invokevirtual com.oracle.truffle.api.nodes.RootNode.getLazyLock:()Ljava/util/concurrent/locks/ReentrantLock;
            areturn
        end local 1 // com.oracle.truffle.api.nodes.RootNode root
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/nodes/Node;
            1    4     1  root  Lcom/oracle/truffle/api/nodes/RootNode;

  public java.lang.String getDescription();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 624
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lcom/oracle/truffle/api/nodes/NodeInfo;
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast com.oracle.truffle.api.nodes.NodeInfo
            astore 1 /* info */
        start local 1 // com.oracle.truffle.api.nodes.NodeInfo info
         1: .line 625
            aload 1 /* info */
            ifnull 3
         2: .line 626
            aload 1 /* info */
            invokeinterface com.oracle.truffle.api.nodes.NodeInfo.description:()Ljava/lang/String;
            areturn
         3: .line 628
      StackMap locals: com.oracle.truffle.api.nodes.NodeInfo
      StackMap stack:
            ldc ""
            areturn
        end local 1 // com.oracle.truffle.api.nodes.NodeInfo info
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/nodes/Node;
            1    4     1  info  Lcom/oracle/truffle/api/nodes/NodeInfo;

  protected final <T extends com.oracle.truffle.api.TruffleLanguage> com.oracle.truffle.api.TruffleLanguage$LanguageReference<T> lookupLanguageReference(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // java.lang.Class languageClass
         0: .line 680
            aload 1 /* languageClass */
            ifnonnull 3
         1: .line 681
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         2: .line 682
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getExecutableNode:()Lcom/oracle/truffle/api/nodes/ExecutableNode;
            astore 2 /* executableNode */
        start local 2 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
         4: .line 685
            aload 2 /* executableNode */
            ifnull 18
         5: .line 686
            aload 2 /* executableNode */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.getLanguage:()Lcom/oracle/truffle/api/TruffleLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.api.TruffleLanguage language
         6: .line 687
            aload 2 /* executableNode */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.getEngine:()Ljava/lang/Object;
            astore 4 /* engine */
        start local 4 // java.lang.Object engine
         7: .line 688
            aload 3 /* language */
            ifnull 10
            aload 3 /* language */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* languageClass */
            if_acmpne 10
         8: .line 689
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 4 /* engine */
            aload 3 /* language */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getDirectLanguageReference:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
         9: areturn
        10: .line 691
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode com.oracle.truffle.api.TruffleLanguage java.lang.Object
      StackMap stack:
            aload 2 /* executableNode */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.lookupReferenceCache:(Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/ExecutableNode$ReferenceCache;
            astore 5 /* cache */
        start local 5 // com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache cache
        11: .line 692
            aload 5 /* cache */
            ifnull 14
        12: .line 693
            aload 5 /* cache */
            getfield com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache.languageReference:Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
        13: areturn
        14: .line 695
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 4 /* engine */
        15: .line 696
            aload 3 /* language */
            aload 1 /* languageClass */
        16: .line 695
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookupLanguageReference:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
        17: areturn
        end local 5 // com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache cache
        end local 4 // java.lang.Object engine
        end local 3 // com.oracle.truffle.api.TruffleLanguage language
        18: .line 700
      StackMap locals:
      StackMap stack:
            aload 1 /* languageClass */
            invokestatic com.oracle.truffle.api.nodes.Node.lookupUncachedLanguageReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
        19: areturn
        end local 2 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
        20: .line 701
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Class
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        21: .line 702
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   22     0            this  Lcom/oracle/truffle/api/nodes/Node;
            0   22     1   languageClass  Ljava/lang/Class<TT;>;
            4   20     2  executableNode  Lcom/oracle/truffle/api/nodes/ExecutableNode;
            6   18     3        language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            7   18     4          engine  Ljava/lang/Object;
           11   18     5           cache  Lcom/oracle/truffle/api/nodes/ExecutableNode$ReferenceCache;
           21   22     2               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     9      20  Class java.lang.Throwable
          10    13      20  Class java.lang.Throwable
          14    17      20  Class java.lang.Throwable
          18    19      20  Class java.lang.Throwable
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<TT;>;
    MethodParameters:
               Name  Flags
      languageClass  

  private static <T extends com.oracle.truffle.api.TruffleLanguage<?>> com.oracle.truffle.api.TruffleLanguage$LanguageReference<T> lookupUncachedLanguageReference(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class languageClass
         0: .line 709
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_LANGUAGE_REFERENCES:Ljava/util/Map;
            aload 0 /* languageClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLanguage$LanguageReference
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.TruffleLanguage$LanguageReference result
         1: .line 710
            aload 1 /* result */
            ifnonnull 4
         2: .line 711
            new com.oracle.truffle.api.nodes.Node$4
            dup
            aload 0 /* languageClass */
            invokespecial com.oracle.truffle.api.nodes.Node$4.<init>:(Ljava/lang/Class;)V
            astore 1 /* result */
         3: .line 718
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_LANGUAGE_REFERENCES:Ljava/util/Map;
            aload 0 /* languageClass */
            aload 1 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 720
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$LanguageReference
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$LanguageReference result
        end local 0 // java.lang.Class languageClass
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0  languageClass  Ljava/lang/Class<TT;>;
            1    5     1         result  Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<*>;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<*>;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$LanguageReference<TT;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
               Name  Flags
      languageClass  

  private com.oracle.truffle.api.nodes.ExecutableNode getExecutableNode();
    descriptor: ()Lcom/oracle/truffle/api/nodes/ExecutableNode;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 725
            aload 0 /* this */
            astore 1 /* node */
        start local 1 // com.oracle.truffle.api.nodes.Node node
         1: .line 726
            goto 5
         2: .line 727
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 1 /* node */
            instanceof com.oracle.truffle.api.nodes.ExecutableNode
            ifeq 4
         3: .line 728
            aload 1 /* node */
            checkcast com.oracle.truffle.api.nodes.ExecutableNode
            areturn
         4: .line 730
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* node */
         5: .line 726
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            ifnonnull 2
         6: .line 732
            aload 1 /* node */
            ifnonnull 8
         7: .line 733
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.checkAdoptable:()V
         8: .line 735
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/oracle/truffle/api/nodes/Node;
            1    9     1  node  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()

  private void checkAdoptable();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 743
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifeq 2
         1: .line 744
            new java.lang.IllegalStateException
            dup
            ldc "Node must be adopted before a reference can be looked up."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 746
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  protected final <C, T extends com.oracle.truffle.api.TruffleLanguage<C>> com.oracle.truffle.api.TruffleLanguage$ContextReference<C> lookupContextReference(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node this
        start local 1 // java.lang.Class languageClass
         0: .line 795
            aload 1 /* languageClass */
            ifnonnull 3
         1: .line 796
            invokestatic com.oracle.truffle.api.CompilerDirectives.transferToInterpreter:()V
         2: .line 797
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         3: .line 799
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getExecutableNode:()Lcom/oracle/truffle/api/nodes/ExecutableNode;
            astore 2 /* executableNode */
        start local 2 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
         4: .line 800
            aload 2 /* executableNode */
            ifnull 20
         5: .line 801
            aload 2 /* executableNode */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.getLanguage:()Lcom/oracle/truffle/api/TruffleLanguage;
            astore 3 /* language */
        start local 3 // com.oracle.truffle.api.TruffleLanguage language
         6: .line 802
            aload 2 /* executableNode */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.getEngine:()Ljava/lang/Object;
            astore 4 /* engine */
        start local 4 // java.lang.Object engine
         7: .line 803
            aload 3 /* language */
            ifnull 12
            aload 3 /* language */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* languageClass */
            if_acmpne 12
         8: .line 804
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 4 /* engine */
         9: .line 805
            aload 3 /* language */
            aload 1 /* languageClass */
        10: .line 804
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.getDirectContextReference:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
        11: areturn
        12: .line 807
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode com.oracle.truffle.api.TruffleLanguage java.lang.Object
      StackMap stack:
            aload 2 /* executableNode */
            aload 1 /* languageClass */
            invokevirtual com.oracle.truffle.api.nodes.ExecutableNode.lookupReferenceCache:(Ljava/lang/Class;)Lcom/oracle/truffle/api/nodes/ExecutableNode$ReferenceCache;
            astore 5 /* cache */
        start local 5 // com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache cache
        13: .line 808
            aload 5 /* cache */
            ifnull 16
        14: .line 809
            aload 5 /* cache */
            getfield com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache.contextReference:Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
        15: areturn
        16: .line 811
      StackMap locals: com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 4 /* engine */
        17: .line 812
            aload 3 /* language */
            aload 1 /* languageClass */
        18: .line 811
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.lookupContextReference:(Ljava/lang/Object;Lcom/oracle/truffle/api/TruffleLanguage;Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
        19: areturn
        end local 5 // com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache cache
        end local 4 // java.lang.Object engine
        end local 3 // com.oracle.truffle.api.TruffleLanguage language
        20: .line 816
      StackMap locals:
      StackMap stack:
            aload 1 /* languageClass */
            invokestatic com.oracle.truffle.api.nodes.Node.lookupUncachedContextReference:(Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
        21: areturn
        end local 2 // com.oracle.truffle.api.nodes.ExecutableNode executableNode
        22: .line 817
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Class
      StackMap stack: java.lang.Throwable
            astore 2 /* t */
        start local 2 // java.lang.Throwable t
        23: .line 818
            getstatic com.oracle.truffle.api.nodes.NodeAccessor.ENGINE:Lcom/oracle/truffle/api/impl/Accessor$EngineSupport;
            aload 2 /* t */
            invokevirtual com.oracle.truffle.api.impl.Accessor$EngineSupport.engineToLanguageException:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
            athrow
        end local 2 // java.lang.Throwable t
        end local 1 // java.lang.Class languageClass
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Lcom/oracle/truffle/api/nodes/Node;
            0   24     1   languageClass  Ljava/lang/Class<TT;>;
            4   22     2  executableNode  Lcom/oracle/truffle/api/nodes/ExecutableNode;
            6   20     3        language  Lcom/oracle/truffle/api/TruffleLanguage<*>;
            7   20     4          engine  Ljava/lang/Object;
           13   20     5           cache  Lcom/oracle/truffle/api/nodes/ExecutableNode$ReferenceCache;
           23   24     2               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    11      22  Class java.lang.Throwable
          12    15      22  Class java.lang.Throwable
          16    19      22  Class java.lang.Throwable
          20    21      22  Class java.lang.Throwable
    Signature: <C:Ljava/lang/Object;T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<TC;>;
    MethodParameters:
               Name  Flags
      languageClass  

  private static void resetNativeImageState();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 831
            getstatic com.oracle.truffle.api.nodes.Node.$assertionsDisabled:Z
            ifne 1
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifne 1
            new java.lang.AssertionError
            dup
            ldc "Only supported during image generation"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 832
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_CONTEXT_REFERENCES:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 833
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_LANGUAGE_REFERENCES:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         3: .line 834
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static <T extends com.oracle.truffle.api.TruffleLanguage<C>, C> com.oracle.truffle.api.TruffleLanguage$ContextReference<C> lookupUncachedContextReference(java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class language
         0: .line 839
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_CONTEXT_REFERENCES:Ljava/util/Map;
            aload 0 /* language */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLanguage$ContextReference
            astore 1 /* result */
        start local 1 // com.oracle.truffle.api.TruffleLanguage$ContextReference result
         1: .line 840
            aload 1 /* result */
            ifnonnull 4
         2: .line 841
            new com.oracle.truffle.api.nodes.Node$5
            dup
            aload 0 /* language */
            invokespecial com.oracle.truffle.api.nodes.Node$5.<init>:(Ljava/lang/Class;)V
            astore 1 /* result */
         3: .line 852
            getstatic com.oracle.truffle.api.nodes.Node.UNCACHED_CONTEXT_REFERENCES:Ljava/util/Map;
            aload 0 /* language */
            aload 1 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 854
      StackMap locals: com.oracle.truffle.api.TruffleLanguage$ContextReference
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 1 // com.oracle.truffle.api.TruffleLanguage$ContextReference result
        end local 0 // java.lang.Class language
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0  language  Ljava/lang/Class<TT;>;
            1    5     1    result  Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<*>;
    Signature: <T:Lcom/oracle/truffle/api/TruffleLanguage<TC;>;C:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)Lcom/oracle/truffle/api/TruffleLanguage$ContextReference<TC;>;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
          Name  Flags
      language  

  private boolean inAtomicBlock();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node this
         0: .line 860
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.nodes.Node.getLock:()Ljava/util/concurrent/locks/Lock;
            checkcast java.util.concurrent.locks.ReentrantLock
            invokevirtual java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread:()Z
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/nodes/Node;
}
SourceFile: "Node.java"
NestMembers:
  com.oracle.truffle.api.nodes.Node$1  com.oracle.truffle.api.nodes.Node$2  com.oracle.truffle.api.nodes.Node$3  com.oracle.truffle.api.nodes.Node$4  com.oracle.truffle.api.nodes.Node$5  com.oracle.truffle.api.nodes.Node$Child  com.oracle.truffle.api.nodes.Node$Children
InnerClasses:
  public abstract CompilationFinal = com.oracle.truffle.api.CompilerDirectives$CompilationFinal of com.oracle.truffle.api.CompilerDirectives
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public abstract ContextReference = com.oracle.truffle.api.TruffleLanguage$ContextReference of com.oracle.truffle.api.TruffleLanguage
  public abstract LanguageReference = com.oracle.truffle.api.TruffleLanguage$LanguageReference of com.oracle.truffle.api.TruffleLanguage
  public abstract EngineSupport = com.oracle.truffle.api.impl.Accessor$EngineSupport of com.oracle.truffle.api.impl.Accessor
  public abstract InstrumentSupport = com.oracle.truffle.api.impl.Accessor$InstrumentSupport of com.oracle.truffle.api.impl.Accessor
  public abstract RuntimeSupport = com.oracle.truffle.api.impl.Accessor$RuntimeSupport of com.oracle.truffle.api.impl.Accessor
  final ReferenceCache = com.oracle.truffle.api.nodes.ExecutableNode$ReferenceCache of com.oracle.truffle.api.nodes.ExecutableNode
  com.oracle.truffle.api.nodes.Node$1
  com.oracle.truffle.api.nodes.Node$2
  com.oracle.truffle.api.nodes.Node$3
  com.oracle.truffle.api.nodes.Node$4
  com.oracle.truffle.api.nodes.Node$5
  public abstract Child = com.oracle.truffle.api.nodes.Node$Child of com.oracle.truffle.api.nodes.Node
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
  public abstract Entry = java.util.Map$Entry of java.util.Map