public final class com.oracle.truffle.api.nodes.NodeUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.nodes.NodeUtil
  super_class: java.lang.Object
{
  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 64
            ldc Lcom/oracle/truffle/api/nodes/NodeUtil;
            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.NodeUtil.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.NodeUtil this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            return
        end local 0 // com.oracle.truffle.api.nodes.NodeUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/nodes/NodeUtil;

  public static <T extends com.oracle.truffle.api.nodes.Node> T cloneNode();
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node orig
         0: .line 72
            aload 0 /* orig */
            invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node orig
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  orig  TT;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(TT;)TT;
    MethodParameters:
      Name  Flags
      orig  

  static com.oracle.truffle.api.nodes.Node deepCopyImpl(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=11, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node orig
         0: .line 76
            ldc "do not call Node.deepCopyImpl from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 77
            aload 0 /* orig */
            invokevirtual com.oracle.truffle.api.nodes.Node.copy:()Lcom/oracle/truffle/api/nodes/Node;
            astore 1 /* clone */
        start local 1 // com.oracle.truffle.api.nodes.Node clone
         2: .line 78
            aload 1 /* clone */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* nodeClass */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         3: .line 80
            aload 1 /* clone */
            aconst_null
            invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
         4: .line 82
            aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 38
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         5: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.Object field
         6: .line 83
            aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 13
         7: .line 84
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* orig */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 7 /* child */
        start local 7 // com.oracle.truffle.api.nodes.Node child
         8: .line 85
            aload 7 /* child */
            ifnull 37
         9: .line 86
            aload 7 /* child */
            invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
            astore 8 /* clonedChild */
        start local 8 // com.oracle.truffle.api.nodes.Node clonedChild
        10: .line 87
            aload 8 /* clonedChild */
            aload 1 /* clone */
            invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
        11: .line 88
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 1 /* clone */
            aload 8 /* clonedChild */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        end local 8 // com.oracle.truffle.api.nodes.Node clonedChild
        end local 7 // com.oracle.truffle.api.nodes.Node child
        12: .line 90
            goto 37
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        13: aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 30
        14: .line 91
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* orig */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 7 /* children */
        start local 7 // java.lang.Object[] children
        15: .line 92
            aload 7 /* children */
            ifnull 37
        16: .line 94
            aload 7 /* children */
            arraylength
            ifle 27
        17: .line 95
            aload 7 /* children */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            aload 7 /* children */
            arraylength
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 8 /* clonedChildren */
        start local 8 // java.lang.Object[] clonedChildren
        18: .line 96
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        19: goto 25
        20: .line 97
      StackMap locals: java.lang.Object[] java.lang.Object[] int
      StackMap stack:
            aload 7 /* children */
            iload 9 /* i */
            aaload
            ifnull 24
        21: .line 98
            aload 7 /* children */
            iload 9 /* i */
            aaload
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.deepCopy:()Lcom/oracle/truffle/api/nodes/Node;
            astore 10 /* clonedChild */
        start local 10 // com.oracle.truffle.api.nodes.Node clonedChild
        22: .line 99
            aload 10 /* clonedChild */
            aload 1 /* clone */
            invokevirtual com.oracle.truffle.api.nodes.Node.setParent:(Lcom/oracle/truffle/api/nodes/Node;)V
        23: .line 100
            aload 8 /* clonedChildren */
            iload 9 /* i */
            aload 10 /* clonedChild */
            aastore
        end local 10 // com.oracle.truffle.api.nodes.Node clonedChild
        24: .line 96
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 9 /* i */
            aload 7 /* children */
            arraylength
            if_icmplt 20
        end local 9 // int i
        26: .line 103
            goto 28
        end local 8 // java.lang.Object[] clonedChildren
        27: .line 104
      StackMap locals:
      StackMap stack:
            aload 7 /* children */
            astore 8 /* clonedChildren */
        start local 8 // java.lang.Object[] clonedChildren
        28: .line 106
      StackMap locals: java.lang.Object[]
      StackMap stack:
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 1 /* clone */
            aload 8 /* clonedChildren */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        end local 8 // java.lang.Object[] clonedChildren
        end local 7 // java.lang.Object[] children
        29: .line 108
            goto 37
      StackMap locals:
      StackMap stack:
        30: aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isCloneableField:(Ljava/lang/Object;)Z
            ifeq 35
        31: .line 109
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 1 /* clone */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* cloneable */
        start local 7 // java.lang.Object cloneable
        32: .line 110
            aload 7 /* cloneable */
            ifnull 37
            aload 7 /* cloneable */
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* orig */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            if_acmpne 37
        33: .line 111
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 1 /* clone */
            aload 7 /* cloneable */
            checkcast com.oracle.truffle.api.nodes.NodeCloneable
            invokevirtual com.oracle.truffle.api.nodes.NodeCloneable.clone:()Ljava/lang/Object;
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
        end local 7 // java.lang.Object cloneable
        34: .line 113
            goto 37
      StackMap locals:
      StackMap stack:
        35: aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 37
        36: .line 114
            goto 39
        end local 3 // java.lang.Object field
        37: .line 82
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        38: iload 4
            iload 5
            if_icmplt 5
        39: .line 117
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            aload 1 /* clone */
            areturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 1 // com.oracle.truffle.api.nodes.Node clone
        end local 0 // com.oracle.truffle.api.nodes.Node orig
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   40     0            orig  Lcom/oracle/truffle/api/nodes/Node;
            2   40     1           clone  Lcom/oracle/truffle/api/nodes/Node;
            3   40     2       nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            6   37     3           field  Ljava/lang/Object;
            8   12     7           child  Lcom/oracle/truffle/api/nodes/Node;
           10   12     8     clonedChild  Lcom/oracle/truffle/api/nodes/Node;
           15   29     7        children  [Ljava/lang/Object;
           18   27     8  clonedChildren  [Ljava/lang/Object;
           28   29     8  clonedChildren  [Ljava/lang/Object;
           19   26     9               i  I
           22   24    10     clonedChild  Lcom/oracle/truffle/api/nodes/Node;
           32   34     7       cloneable  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      orig  

  public static java.util.List<com.oracle.truffle.api.nodes.Node> findNodeChildren(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=12, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 122
            ldc "do not call Node.findNodeChildren from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 123
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* nodes */
        start local 1 // java.util.List nodes
         2: .line 124
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* nodeClass */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         3: .line 126
            aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 23
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* nodeField */
        start local 3 // java.lang.Object nodeField
         5: .line 127
            aload 2 /* nodeClass */
            aload 3 /* nodeField */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 128
            aload 2 /* nodeClass */
            aload 3 /* nodeField */
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* child */
        start local 7 // java.lang.Object child
         7: .line 129
            aload 7 /* child */
            ifnull 22
         8: .line 130
            aload 1 /* nodes */
            aload 7 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // java.lang.Object child
         9: .line 132
            goto 22
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        10: aload 2 /* nodeClass */
            aload 3 /* nodeField */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 20
        11: .line 133
            aload 2 /* nodeClass */
            aload 3 /* nodeField */
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 7 /* children */
        start local 7 // java.lang.Object[] children
        12: .line 134
            aload 7 /* children */
            ifnull 22
        13: .line 135
            aload 7 /* children */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 18
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
        14: aload 11
            iload 9
            aaload
            astore 8 /* child */
        start local 8 // java.lang.Object child
        15: .line 136
            aload 8 /* child */
            ifnull 17
        16: .line 137
            aload 1 /* nodes */
            aload 8 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.lang.Object child
        17: .line 135
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        18: iload 9
            iload 10
            if_icmplt 14
        end local 7 // java.lang.Object[] children
        19: .line 141
            goto 22
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        20: aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 22
        21: .line 142
            goto 24
        end local 3 // java.lang.Object nodeField
        22: .line 126
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        23: iload 4
            iload 5
            if_icmplt 4
        24: .line 145
      StackMap locals: com.oracle.truffle.api.nodes.Node java.util.List com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            aload 1 /* nodes */
            areturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 1 // java.util.List nodes
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       node  Lcom/oracle/truffle/api/nodes/Node;
            2   25     1      nodes  Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
            3   25     2  nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            5   22     3  nodeField  Ljava/lang/Object;
            7    9     7      child  Ljava/lang/Object;
           12   19     7   children  [Ljava/lang/Object;
           15   17     8      child  Ljava/lang/Object;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
    MethodParameters:
      Name  Flags
      node  

  public static <T extends com.oracle.truffle.api.nodes.Node> T nonAtomicReplace(com.oracle.truffle.api.nodes.Node, T, java.lang.CharSequence);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node oldNode
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
        start local 2 // java.lang.CharSequence reason
         0: .line 150
            aload 0 /* oldNode */
            aload 1 /* newNode */
            aload 2 /* reason */
            invokevirtual com.oracle.truffle.api.nodes.Node.replaceHelper:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/CharSequence;)V
         1: .line 151
            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 oldNode
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  oldNode  Lcom/oracle/truffle/api/nodes/Node;
            0    2     1  newNode  TT;
            0    2     2   reason  Ljava/lang/CharSequence;
    Signature: <T:Lcom/oracle/truffle/api/nodes/Node;>(Lcom/oracle/truffle/api/nodes/Node;TT;Ljava/lang/CharSequence;)TT;
    MethodParameters:
         Name  Flags
      oldNode  
      newNode  
      reason   

  public static boolean replaceChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node oldChild
        start local 2 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 156
            aload 0 /* parent */
            aload 1 /* oldChild */
            aload 2 /* newChild */
            iconst_0
            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
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.Node newChild
        end local 1 // com.oracle.truffle.api.nodes.Node oldChild
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0    parent  Lcom/oracle/truffle/api/nodes/Node;
            0    1     1  oldChild  Lcom/oracle/truffle/api/nodes/Node;
            0    1     2  newChild  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
          Name  Flags
      parent    
      oldChild  
      newChild  

  public static com.oracle.truffle.api.nodes.Node getCurrentEncapsulatingNode();
    descriptor: ()Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 167
            invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
            invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.get:()Lcom/oracle/truffle/api/nodes/Node;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()

  public static com.oracle.truffle.api.nodes.Node pushEncapsulatingNode(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 178
            invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.set:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      node  

  public static void popEncapsulatingNode(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node prev
         0: .line 189
            invokestatic com.oracle.truffle.api.nodes.EncapsulatingNodeReference.getCurrent:()Lcom/oracle/truffle/api/nodes/EncapsulatingNodeReference;
            aload 0 /* prev */
            invokevirtual com.oracle.truffle.api.nodes.EncapsulatingNodeReference.set:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/Node;
            pop
         1: .line 190
            return
        end local 0 // com.oracle.truffle.api.nodes.Node prev
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  prev  Lcom/oracle/truffle/api/nodes/Node;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
      com.oracle.truffle.api.CompilerDirectives$TruffleBoundary()
    MethodParameters:
      Name  Flags
      prev  

  static void adoptChildrenHelper(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=11, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node currentNode
         0: .line 196
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 1 /* clazz */
        start local 1 // com.oracle.truffle.api.nodes.NodeClass clazz
         1: .line 197
            aload 1 /* clazz */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 28
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* field */
        start local 2 // java.lang.Object field
         3: .line 198
            aload 1 /* clazz */
            aload 2 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 10
         4: .line 199
            aload 1 /* clazz */
            aload 2 /* field */
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 6 /* child */
        start local 6 // java.lang.Object child
         5: .line 200
            aload 6 /* child */
            ifnull 27
         6: .line 201
            aload 6 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            astore 7 /* node */
        start local 7 // com.oracle.truffle.api.nodes.Node node
         7: .line 202
            aload 7 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* currentNode */
            if_acmpeq 27
         8: .line 203
            aload 0 /* currentNode */
            aload 7 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
        end local 7 // com.oracle.truffle.api.nodes.Node node
        end local 6 // java.lang.Object child
         9: .line 206
            goto 27
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        10: aload 1 /* clazz */
            aload 2 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 25
        11: .line 207
            aload 1 /* clazz */
            aload 2 /* field */
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 6 /* arrayObject */
        start local 6 // java.lang.Object arrayObject
        12: .line 208
            aload 6 /* arrayObject */
            ifnonnull 14
        13: .line 209
            goto 27
        14: .line 211
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 6 /* arrayObject */
            checkcast java.lang.Object[]
            astore 7 /* array */
        start local 7 // java.lang.Object[] array
        15: .line 212
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: goto 23
        17: .line 213
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 7 /* array */
            iload 8 /* i */
            aaload
            astore 9 /* child */
        start local 9 // java.lang.Object child
        18: .line 214
            aload 9 /* child */
            ifnull 22
        19: .line 215
            aload 9 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            astore 10 /* node */
        start local 10 // com.oracle.truffle.api.nodes.Node node
        20: .line 216
            aload 10 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* currentNode */
            if_acmpeq 22
        21: .line 217
            aload 0 /* currentNode */
            aload 10 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
        end local 10 // com.oracle.truffle.api.nodes.Node node
        end local 9 // java.lang.Object child
        22: .line 212
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 8 /* i */
            aload 7 /* array */
            arraylength
            if_icmplt 17
        end local 8 // int i
        end local 7 // java.lang.Object[] array
        end local 6 // java.lang.Object arrayObject
        24: .line 221
            goto 27
      StackMap locals:
      StackMap stack:
        25: aload 1 /* clazz */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 27
        26: .line 222
            goto 29
        end local 2 // java.lang.Object field
        27: .line 197
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
        28: iload 3
            iload 4
            if_icmplt 2
        29: .line 226
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            return
        end local 1 // com.oracle.truffle.api.nodes.NodeClass clazz
        end local 0 // com.oracle.truffle.api.nodes.Node currentNode
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   30     0  currentNode  Lcom/oracle/truffle/api/nodes/Node;
            1   30     1        clazz  Lcom/oracle/truffle/api/nodes/NodeClass;
            3   27     2        field  Ljava/lang/Object;
            5    9     6        child  Ljava/lang/Object;
            7    9     7         node  Lcom/oracle/truffle/api/nodes/Node;
           12   24     6  arrayObject  Ljava/lang/Object;
           15   24     7        array  [Ljava/lang/Object;
           16   24     8            i  I
           18   22     9        child  Ljava/lang/Object;
           20   22    10         node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
             Name  Flags
      currentNode  

  static int adoptChildrenAndCountHelper(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=12, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node currentNode
         0: .line 233
            iconst_0
            istore 1 /* count */
        start local 1 // int count
         1: .line 234
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* clazz */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass clazz
         2: .line 235
            aload 2 /* clazz */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 27
      StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.Object field
         4: .line 236
            aload 2 /* clazz */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 10
         5: .line 237
            aload 2 /* clazz */
            aload 3 /* field */
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* child */
        start local 7 // java.lang.Object child
         6: .line 238
            aload 7 /* child */
            ifnull 26
         7: .line 239
            aload 7 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            astore 8 /* node */
        start local 8 // com.oracle.truffle.api.nodes.Node node
         8: .line 240
            iload 1 /* count */
            aload 0 /* currentNode */
            aload 8 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
            iadd
            istore 1 /* count */
        end local 8 // com.oracle.truffle.api.nodes.Node node
        end local 7 // java.lang.Object child
         9: .line 242
            goto 26
      StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        10: aload 2 /* clazz */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 24
        11: .line 243
            aload 2 /* clazz */
            aload 3 /* field */
            aload 0 /* currentNode */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* arrayObject */
        start local 7 // java.lang.Object arrayObject
        12: .line 244
            aload 7 /* arrayObject */
            ifnonnull 14
        13: .line 245
            goto 26
        14: .line 247
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* arrayObject */
            checkcast java.lang.Object[]
            astore 8 /* array */
        start local 8 // java.lang.Object[] array
        15: .line 248
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        16: goto 22
        17: .line 249
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 8 /* array */
            iload 9 /* i */
            aaload
            astore 10 /* child */
        start local 10 // java.lang.Object child
        18: .line 250
            aload 10 /* child */
            ifnull 21
        19: .line 251
            aload 10 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            astore 11 /* node */
        start local 11 // com.oracle.truffle.api.nodes.Node node
        20: .line 252
            iload 1 /* count */
            aload 0 /* currentNode */
            aload 11 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptAndCountHelper:(Lcom/oracle/truffle/api/nodes/Node;)I
            iadd
            istore 1 /* count */
        end local 11 // com.oracle.truffle.api.nodes.Node node
        end local 10 // java.lang.Object child
        21: .line 248
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 9 /* i */
            aload 8 /* array */
            arraylength
            if_icmplt 17
        end local 9 // int i
        end local 8 // java.lang.Object[] array
        end local 7 // java.lang.Object arrayObject
        23: .line 255
            goto 26
      StackMap locals:
      StackMap stack:
        24: aload 2 /* clazz */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 26
        25: .line 256
            goto 28
        end local 3 // java.lang.Object field
        26: .line 235
      StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        27: iload 4
            iload 5
            if_icmplt 3
        28: .line 259
      StackMap locals: com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            iload 1 /* count */
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass clazz
        end local 1 // int count
        end local 0 // com.oracle.truffle.api.nodes.Node currentNode
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0  currentNode  Lcom/oracle/truffle/api/nodes/Node;
            1   29     1        count  I
            2   29     2        clazz  Lcom/oracle/truffle/api/nodes/NodeClass;
            4   26     3        field  Ljava/lang/Object;
            6    9     7        child  Ljava/lang/Object;
            8    9     8         node  Lcom/oracle/truffle/api/nodes/Node;
           12   23     7  arrayObject  Ljava/lang/Object;
           15   23     8        array  [Ljava/lang/Object;
           16   23     9            i  I
           18   21    10        child  Ljava/lang/Object;
           20   21    11         node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
             Name  Flags
      currentNode  

  static boolean replaceChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, boolean);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Z)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=12, args_size=4
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node oldChild
        start local 2 // com.oracle.truffle.api.nodes.Node newChild
        start local 3 // boolean adopt
         0: .line 263
            ldc "do not replace Node child from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 264
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 4 /* nodeClass */
        start local 4 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         2: .line 266
            aload 4 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 30
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* nodeField */
        start local 5 // java.lang.Object nodeField
         4: .line 267
            aload 4 /* nodeClass */
            aload 5 /* nodeField */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 10
         5: .line 268
            aload 4 /* nodeClass */
            aload 5 /* nodeField */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            aload 1 /* oldChild */
            if_acmpne 29
         6: .line 269
            iload 3 /* adopt */
            ifeq 8
         7: .line 270
            aload 0 /* parent */
            aload 2 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
         8: .line 272
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 4 /* nodeClass */
            aload 5 /* nodeField */
            aload 0 /* parent */
            aload 2 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.putFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Object;)V
         9: .line 273
            iconst_1
            ireturn
        10: .line 275
      StackMap locals:
      StackMap stack:
            aload 4 /* nodeClass */
            aload 5 /* nodeField */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 27
        11: .line 276
            aload 4 /* nodeClass */
            aload 5 /* nodeField */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 9 /* arrayObject */
        start local 9 // java.lang.Object arrayObject
        12: .line 277
            aload 9 /* arrayObject */
            ifnull 29
        13: .line 278
            aload 9 /* arrayObject */
            checkcast java.lang.Object[]
            astore 10 /* array */
        start local 10 // java.lang.Object[] array
        14: .line 279
            iconst_0
            istore 11 /* i */
        start local 11 // int i
        15: goto 25
        16: .line 280
      StackMap locals: java.lang.Object java.lang.Object[] int
      StackMap stack:
            aload 10 /* array */
            iload 11 /* i */
            aaload
            aload 1 /* oldChild */
            if_acmpne 24
        17: .line 281
            iload 3 /* adopt */
            ifeq 19
        18: .line 282
            aload 0 /* parent */
            aload 2 /* newChild */
            invokevirtual com.oracle.truffle.api.nodes.Node.adoptHelper:(Lcom/oracle/truffle/api/nodes/Node;)V
        19: .line 285
      StackMap locals:
      StackMap stack:
            aload 10 /* array */
            iload 11 /* i */
            aload 2 /* newChild */
            aastore
        20: .line 286
            goto 23
      StackMap locals:
      StackMap stack: java.lang.ArrayStoreException
        21: pop
        22: .line 287
            aload 5 /* nodeField */
            aload 10 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 2 /* newChild */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.replaceChildIllegalArgumentException:(Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
            athrow
        23: .line 289
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        24: .line 279
      StackMap locals:
      StackMap stack:
            iinc 11 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 11 /* i */
            aload 10 /* array */
            arraylength
            if_icmplt 16
        end local 11 // int i
        end local 10 // java.lang.Object[] array
        end local 9 // java.lang.Object arrayObject
        26: .line 293
            goto 29
      StackMap locals:
      StackMap stack:
        27: aload 4 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 29
        28: .line 294
            goto 31
        end local 5 // java.lang.Object nodeField
        29: .line 266
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        30: iload 6
            iload 7
            if_icmplt 3
        31: .line 298
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 3 // boolean adopt
        end local 2 // com.oracle.truffle.api.nodes.Node newChild
        end local 1 // com.oracle.truffle.api.nodes.Node oldChild
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0       parent  Lcom/oracle/truffle/api/nodes/Node;
            0   32     1     oldChild  Lcom/oracle/truffle/api/nodes/Node;
            0   32     2     newChild  Lcom/oracle/truffle/api/nodes/Node;
            0   32     3        adopt  Z
            2   32     4    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            4   29     5    nodeField  Ljava/lang/Object;
           12   26     9  arrayObject  Ljava/lang/Object;
           14   26    10        array  [Ljava/lang/Object;
           15   26    11            i  I
      Exception table:
        from    to  target  type
          19    20      21  Class java.lang.ArrayStoreException
    MethodParameters:
          Name  Flags
      parent    
      oldChild  
      newChild  
      adopt     

  private static java.lang.IllegalArgumentException replaceChildIllegalArgumentException(, java.lang.Class<?>, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/lang/Object;Ljava/lang/Class;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // java.lang.Object nodeField
        start local 1 // java.lang.Class fieldType
        start local 2 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 302
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cannot set element of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* fieldType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " field "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* nodeField */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* newChild */
            ifnonnull 1
            ldc "null"
            goto 2
      StackMap locals: java.lang.Object java.lang.Class com.oracle.truffle.api.nodes.Node
      StackMap stack: new 0 new 0 java.lang.StringBuilder
         1: aload 2 /* newChild */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
      StackMap locals: java.lang.Object java.lang.Class com.oracle.truffle.api.nodes.Node
      StackMap stack: new 0 new 0 java.lang.StringBuilder java.lang.String
         2: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            areturn
        end local 2 // com.oracle.truffle.api.nodes.Node newChild
        end local 1 // java.lang.Class fieldType
        end local 0 // java.lang.Object nodeField
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  nodeField  Ljava/lang/Object;
            0    3     1  fieldType  Ljava/lang/Class<*>;
            0    3     2   newChild  Lcom/oracle/truffle/api/nodes/Node;
    Signature: (Ljava/lang/Object;Ljava/lang/Class<*>;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/IllegalArgumentException;
    MethodParameters:
           Name  Flags
      nodeField  
      fieldType  
      newChild   

  public static com.oracle.truffle.api.nodes.NodeFieldAccessor findChildField(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=10, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node child
         0: .line 314
            getstatic com.oracle.truffle.api.nodes.NodeUtil.$assertionsDisabled:Z
            ifne 1
            aload 1 /* child */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 315
      StackMap locals:
      StackMap stack:
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* parentNodeClass */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass parentNodeClass
         2: .line 317
            aload 2 /* parentNodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFields:()[Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 18
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
      StackMap stack:
         3: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // com.oracle.truffle.api.nodes.NodeFieldAccessor field
         4: .line 318
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
            getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILD:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
            if_acmpne 7
         5: .line 319
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            aload 1 /* child */
            if_acmpne 17
         6: .line 320
            aload 3 /* field */
            areturn
         7: .line 322
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass com.oracle.truffle.api.nodes.NodeFieldAccessor int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
      StackMap stack:
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getKind:()Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
            getstatic com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind.CHILDREN:Lcom/oracle/truffle/api/nodes/NodeFieldAccessor$NodeFieldKind;
            if_acmpne 17
         8: .line 323
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeFieldAccessor.getObject:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* arrayObject */
        start local 7 // java.lang.Object arrayObject
         9: .line 324
            aload 7 /* arrayObject */
            ifnull 17
        10: .line 325
            aload 7 /* arrayObject */
            checkcast java.lang.Object[]
            astore 8 /* array */
        start local 8 // java.lang.Object[] array
        11: .line 326
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: goto 16
        13: .line 327
      StackMap locals: java.lang.Object java.lang.Object[] int
      StackMap stack:
            aload 8 /* array */
            iload 9 /* i */
            aaload
            aload 1 /* child */
            if_acmpne 15
        14: .line 328
            aload 3 /* field */
            areturn
        15: .line 326
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            aload 8 /* array */
            arraylength
            if_icmplt 13
        end local 9 // int i
        end local 8 // java.lang.Object[] array
        end local 7 // java.lang.Object arrayObject
        end local 3 // com.oracle.truffle.api.nodes.NodeFieldAccessor field
        17: .line 317
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int com.oracle.truffle.api.nodes.NodeFieldAccessor[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        18: iload 4
            iload 5
            if_icmplt 3
        19: .line 334
            aconst_null
            areturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass parentNodeClass
        end local 1 // com.oracle.truffle.api.nodes.Node child
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0           parent  Lcom/oracle/truffle/api/nodes/Node;
            0   20     1            child  Lcom/oracle/truffle/api/nodes/Node;
            2   20     2  parentNodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            4   17     3            field  Lcom/oracle/truffle/api/nodes/NodeFieldAccessor;
            9   17     7      arrayObject  Ljava/lang/Object;
           11   17     8            array  [Ljava/lang/Object;
           12   17     9                i  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      parent  
      child   

  public static boolean isReplacementSafe(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node oldChild
        start local 2 // com.oracle.truffle.api.nodes.Node newChild
         0: .line 343
            aload 0 /* parent */
            ifnull 25
         1: .line 344
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.isAdoptable:()Z
            ifne 3
         2: .line 345
            iconst_0
            ireturn
         3: .line 347
      StackMap locals:
      StackMap stack:
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 3 /* nodeClass */
        start local 3 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         4: .line 348
            aload 3 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 23
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // java.lang.Object field
         6: .line 349
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 350
            aload 3 /* nodeClass */
            aload 4 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            aload 1 /* oldChild */
            if_acmpne 22
         8: .line 351
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
            aload 2 /* newChild */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
         9: .line 353
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 20
        10: .line 354
            aload 3 /* nodeClass */
            aload 4 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 8 /* arrayObject */
        start local 8 // java.lang.Object arrayObject
        11: .line 355
            aload 8 /* arrayObject */
            ifnull 22
        12: .line 356
            aload 8 /* arrayObject */
            checkcast java.lang.Object[]
            astore 9 /* array */
        start local 9 // java.lang.Object[] array
        13: .line 357
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        14: goto 18
        15: .line 358
      StackMap locals: java.lang.Object java.lang.Object[] int
      StackMap stack:
            aload 9 /* array */
            iload 10 /* i */
            aaload
            aload 1 /* oldChild */
            if_acmpne 17
        16: .line 359
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldType:(Ljava/lang/Object;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            aload 2 /* newChild */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ireturn
        17: .line 357
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 10 /* i */
            aload 9 /* array */
            arraylength
            if_icmplt 15
        end local 10 // int i
        end local 9 // java.lang.Object[] array
        end local 8 // java.lang.Object arrayObject
        19: .line 363
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 3 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 22
        21: .line 364
            goto 24
        end local 4 // java.lang.Object field
        22: .line 348
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        23: iload 5
            iload 6
            if_icmplt 5
        24: .line 367
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        25: .line 370
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.Node newChild
        end local 1 // com.oracle.truffle.api.nodes.Node oldChild
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   26     0       parent  Lcom/oracle/truffle/api/nodes/Node;
            0   26     1     oldChild  Lcom/oracle/truffle/api/nodes/Node;
            0   26     2     newChild  Lcom/oracle/truffle/api/nodes/Node;
            4   25     3    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            6   22     4        field  Ljava/lang/Object;
           11   19     8  arrayObject  Ljava/lang/Object;
           13   19     9        array  [Ljava/lang/Object;
           14   19    10            i  I
    MethodParameters:
          Name  Flags
      parent    
      oldChild  
      newChild  

  public static boolean forEachChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
         0: .line 380
            ldc "do not iterate over Node children from compiled code"
            invokestatic com.oracle.truffle.api.CompilerAsserts.neverPartOfCompilation:(Ljava/lang/String;)V
         1: .line 381
            aload 1 /* visitor */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 382
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* nodeClass */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         3: .line 384
            aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 26
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         4: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.Object field
         5: .line 385
            aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 10
         6: .line 386
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* child */
        start local 7 // java.lang.Object child
         7: .line 387
            aload 7 /* child */
            ifnull 25
         8: .line 388
            aload 1 /* visitor */
            aload 7 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 25
         9: .line 389
            iconst_0
            ireturn
        end local 7 // java.lang.Object child
        10: .line 392
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 23
        11: .line 393
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* arrayObject */
        start local 7 // java.lang.Object arrayObject
        12: .line 394
            aload 7 /* arrayObject */
            ifnull 25
        13: .line 395
            aload 7 /* arrayObject */
            checkcast java.lang.Object[]
            astore 8 /* array */
        start local 8 // java.lang.Object[] array
        14: .line 396
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        15: goto 21
        16: .line 397
      StackMap locals: java.lang.Object java.lang.Object[] int
      StackMap stack:
            aload 8 /* array */
            iload 9 /* i */
            aaload
            astore 10 /* child */
        start local 10 // java.lang.Object child
        17: .line 398
            aload 10 /* child */
            ifnull 20
        18: .line 399
            aload 1 /* visitor */
            aload 10 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 20
        19: .line 400
            iconst_0
            ireturn
        end local 10 // java.lang.Object child
        20: .line 396
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 9 /* i */
            aload 8 /* array */
            arraylength
            if_icmplt 16
        end local 9 // int i
        end local 8 // java.lang.Object[] array
        end local 7 // java.lang.Object arrayObject
        22: .line 405
            goto 25
      StackMap locals:
      StackMap stack:
        23: aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 25
        24: .line 406
            goto 27
        end local 3 // java.lang.Object field
        25: .line 384
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        26: iload 4
            iload 5
            if_icmplt 4
        27: .line 410
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0       parent  Lcom/oracle/truffle/api/nodes/Node;
            0   28     1      visitor  Lcom/oracle/truffle/api/nodes/NodeVisitor;
            3   28     2    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            5   25     3        field  Ljava/lang/Object;
            7   10     7        child  Ljava/lang/Object;
           12   22     7  arrayObject  Ljava/lang/Object;
           14   22     8        array  [Ljava/lang/Object;
           15   22     9            i  I
           17   20    10        child  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      parent   
      visitor  

  static boolean forEachChildRecursive(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
         0: .line 414
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 2 /* nodeClass */
        start local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         1: .line 416
            aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 21
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* field */
        start local 3 // java.lang.Object field
         3: .line 417
            aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 418
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            aload 1 /* visitor */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.visitChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            ifne 20
         5: .line 419
            iconst_0
            ireturn
         6: .line 421
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 2 /* nodeClass */
            aload 3 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 18
         7: .line 422
            aload 2 /* nodeClass */
            aload 3 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 7 /* arrayObject */
        start local 7 // java.lang.Object arrayObject
         8: .line 423
            aload 7 /* arrayObject */
            ifnonnull 10
         9: .line 424
            goto 20
        10: .line 426
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 7 /* arrayObject */
            checkcast java.lang.Object[]
            astore 8 /* array */
        start local 8 // java.lang.Object[] array
        11: .line 427
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        12: goto 16
        13: .line 428
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            aload 8 /* array */
            iload 9 /* i */
            aaload
            checkcast com.oracle.truffle.api.nodes.Node
            aload 1 /* visitor */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.visitChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            ifne 15
        14: .line 429
            iconst_0
            ireturn
        15: .line 427
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 9 /* i */
            aload 8 /* array */
            arraylength
            if_icmplt 13
        end local 9 // int i
        end local 8 // java.lang.Object[] array
        end local 7 // java.lang.Object arrayObject
        17: .line 432
            goto 20
      StackMap locals:
      StackMap stack:
        18: aload 2 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 20
        19: .line 433
            goto 22
        end local 3 // java.lang.Object field
        20: .line 416
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        21: iload 4
            iload 5
            if_icmplt 2
        22: .line 437
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.NodeVisitor com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0       parent  Lcom/oracle/truffle/api/nodes/Node;
            0   23     1      visitor  Lcom/oracle/truffle/api/nodes/NodeVisitor;
            1   23     2    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            3   20     3        field  Ljava/lang/Object;
            8   17     7  arrayObject  Ljava/lang/Object;
           11   17     8        array  [Ljava/lang/Object;
           12   17     9            i  I
    MethodParameters:
         Name  Flags
      parent   
      visitor  

  private static boolean visitChild(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeVisitor);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node child
        start local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
         0: .line 441
            aload 0 /* child */
            ifnonnull 2
         1: .line 442
            iconst_1
            ireturn
         2: .line 444
      StackMap locals:
      StackMap stack:
            aload 1 /* visitor */
            aload 0 /* child */
            invokeinterface com.oracle.truffle.api.nodes.NodeVisitor.visit:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 4
         3: .line 445
            iconst_0
            ireturn
         4: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* child */
            aload 1 /* visitor */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChildRecursive:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            ifne 6
         5: .line 448
            iconst_0
            ireturn
         6: .line 450
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.NodeVisitor visitor
        end local 0 // com.oracle.truffle.api.nodes.Node child
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    child  Lcom/oracle/truffle/api/nodes/Node;
            0    7     1  visitor  Lcom/oracle/truffle/api/nodes/NodeVisitor;
    MethodParameters:
         Name  Flags
      child    
      visitor  

  public static <T> T[] concat(T[], );
    descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;)[Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // java.lang.Object[] first
        start local 1 // java.lang.Object[] second
         0: .line 455
            aload 0 /* first */
            aload 0 /* first */
            arraylength
            aload 1 /* second */
            arraylength
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            astore 2 /* result */
        start local 2 // java.lang.Object[] result
         1: .line 456
            aload 1 /* second */
            iconst_0
            aload 2 /* result */
            aload 0 /* first */
            arraylength
            aload 1 /* second */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 457
            aload 2 /* result */
            areturn
        end local 2 // java.lang.Object[] result
        end local 1 // java.lang.Object[] second
        end local 0 // java.lang.Object[] first
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   first  [Ljava/lang/Object;
            0    3     1  second  [Ljava/lang/Object;
            1    3     2  result  [Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>([TT;[TT;)[TT;
    MethodParameters:
        Name  Flags
      first   
      second  

  public static com.oracle.truffle.api.nodes.Node getNthParent(com.oracle.truffle.api.nodes.Node, int);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;I)Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node node
        start local 1 // int n
         0: .line 467
            aload 0 /* node */
            astore 2 /* parent */
        start local 2 // com.oracle.truffle.api.nodes.Node parent
         1: .line 469
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 470
      StackMap locals: com.oracle.truffle.api.nodes.Node int
      StackMap stack:
            aload 2 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* parent */
         4: .line 472
            aload 2 /* parent */
            ifnonnull 6
         5: .line 473
            aconst_null
            areturn
         6: .line 469
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            iload 1 /* n */
            if_icmplt 3
        end local 3 // int i
         8: .line 477
            aload 2 /* parent */
            areturn
        end local 2 // com.oracle.truffle.api.nodes.Node parent
        end local 1 // int n
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    node  Lcom/oracle/truffle/api/nodes/Node;
            0    9     1       n  I
            1    9     2  parent  Lcom/oracle/truffle/api/nodes/Node;
            2    8     3       i  I
    MethodParameters:
      Name  Flags
      node  
      n     

  public static <T extends java.lang.annotation.Annotation> T findAnnotation(java.lang.Class<?>, java.lang.Class<T>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.Class annotationClass
         0: .line 486
            aload 0 /* clazz */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 2
         1: .line 487
            aload 0 /* clazz */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
         2: .line 489
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleOptions.AOT:Z
            ifne 9
         3: .line 490
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: java.lang.Class java.lang.Class top int int java.lang.Class[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* intf */
        start local 2 // java.lang.Class intf
         5: .line 491
            aload 2 /* intf */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 7
         6: .line 492
            aload 2 /* intf */
            aload 1 /* annotationClass */
            invokevirtual java.lang.Class.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 2 // java.lang.Class intf
         7: .line 490
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 4
         9: .line 496
      StackMap locals: java.lang.Class java.lang.Class
      StackMap stack:
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            ifnull 11
        10: .line 497
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            aload 1 /* annotationClass */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findAnnotation:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        11: .line 500
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Class annotationClass
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   12     0            clazz  Ljava/lang/Class<*>;
            0   12     1  annotationClass  Ljava/lang/Class<TT;>;
            5    7     2             intf  Ljava/lang/Class<*>;
    Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<*>;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
                 Name  Flags
      clazz            
      annotationClass  

  public static <T> T findParent(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node start
        start local 1 // java.lang.Class clazz
         0: .line 505
            aload 0 /* start */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 2 /* parent */
        start local 2 // com.oracle.truffle.api.nodes.Node parent
         1: .line 506
            aload 2 /* parent */
            ifnonnull 3
         2: .line 507
            aconst_null
            areturn
         3: .line 508
      StackMap locals: com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 1 /* clazz */
            aload 2 /* parent */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 509
            aload 1 /* clazz */
            aload 2 /* parent */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         5: .line 511
      StackMap locals:
      StackMap stack:
            aload 2 /* parent */
            aload 1 /* clazz */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
            areturn
        end local 2 // com.oracle.truffle.api.nodes.Node parent
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.api.nodes.Node start
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0   start  Lcom/oracle/truffle/api/nodes/Node;
            0    6     1   clazz  Ljava/lang/Class<TT;>;
            1    6     2  parent  Lcom/oracle/truffle/api/nodes/Node;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      start  
      clazz  

  public static <T> java.util.List<T> findAllParents(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node start
        start local 1 // java.lang.Class clazz
         0: .line 517
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* parents */
        start local 2 // java.util.List parents
         1: .line 518
            aload 0 /* start */
            aload 1 /* clazz */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* parent */
        start local 3 // java.lang.Object parent
         2: .line 519
            goto 5
         3: .line 520
      StackMap locals: java.util.List java.lang.Object
      StackMap stack:
            aload 2 /* parents */
            aload 3 /* parent */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 521
            aload 3 /* parent */
            checkcast com.oracle.truffle.api.nodes.Node
            aload 1 /* clazz */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findParent:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
            astore 3 /* parent */
         5: .line 519
      StackMap locals:
      StackMap stack:
            aload 3 /* parent */
            ifnonnull 3
         6: .line 523
            aload 2 /* parents */
            areturn
        end local 3 // java.lang.Object parent
        end local 2 // java.util.List parents
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.api.nodes.Node start
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0    start  Lcom/oracle/truffle/api/nodes/Node;
            0    7     1    clazz  Ljava/lang/Class<TT;>;
            1    7     2  parents  Ljava/util/List<TT;>;
            2    7     3   parent  TT;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
       Name  Flags
      start  
      clazz  

  public static java.util.List<com.oracle.truffle.api.nodes.Node> collectNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node child
         0: .line 528
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* nodes */
        start local 2 // java.util.List nodes
         1: .line 529
            aload 1 /* child */
            astore 3 /* current */
        start local 3 // com.oracle.truffle.api.nodes.Node current
         2: .line 530
            goto 7
         3: .line 531
      StackMap locals: java.util.List com.oracle.truffle.api.nodes.Node
      StackMap stack:
            aload 2 /* nodes */
            aload 3 /* current */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 532
            aload 3 /* current */
            aload 0 /* parent */
            if_acmpne 6
         5: .line 533
            aload 2 /* nodes */
            areturn
         6: .line 535
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            astore 3 /* current */
         7: .line 530
      StackMap locals:
      StackMap stack:
            aload 3 /* current */
            ifnonnull 3
         8: .line 537
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Node "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* parent */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " is not a parent of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* child */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // com.oracle.truffle.api.nodes.Node current
        end local 2 // java.util.List nodes
        end local 1 // com.oracle.truffle.api.nodes.Node child
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0   parent  Lcom/oracle/truffle/api/nodes/Node;
            0    9     1    child  Lcom/oracle/truffle/api/nodes/Node;
            1    9     2    nodes  Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
            2    9     3  current  Lcom/oracle/truffle/api/nodes/Node;
    Signature: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;)Ljava/util/List<Lcom/oracle/truffle/api/nodes/Node;>;
    MethodParameters:
        Name  Flags
      parent  
      child   

  public static <T> T findFirstNodeInstance(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node root
        start local 1 // java.lang.Class clazz
         0: .line 542
            aload 1 /* clazz */
            aload 0 /* root */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 543
            aload 1 /* clazz */
            aload 0 /* root */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* root */
            invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Class top java.util.Iterator
      StackMap stack:
         3: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 2 /* child */
        start local 2 // com.oracle.truffle.api.nodes.Node child
         4: .line 546
            aload 2 /* child */
            aload 1 /* clazz */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.findFirstNodeInstance:(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/lang/Object;
            astore 4 /* node */
        start local 4 // java.lang.Object node
         5: .line 547
            aload 4 /* node */
            ifnull 7
         6: .line 548
            aload 4 /* node */
            areturn
        end local 4 // java.lang.Object node
        end local 2 // com.oracle.truffle.api.nodes.Node child
         7: .line 545
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 551
            aconst_null
            areturn
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.api.nodes.Node root
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   root  Lcom/oracle/truffle/api/nodes/Node;
            0    9     1  clazz  Ljava/lang/Class<TT;>;
            4    7     2  child  Lcom/oracle/truffle/api/nodes/Node;
            5    7     4   node  TT;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)TT;
    MethodParameters:
       Name  Flags
      root   
      clazz  

  public static <T> java.util.List<T> findAllNodeInstances(com.oracle.truffle.api.nodes.Node, java.lang.Class<T>);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node root
        start local 1 // java.lang.Class clazz
         0: .line 556
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* nodeList */
        start local 2 // java.util.List nodeList
         1: .line 557
            aload 0 /* root */
            new com.oracle.truffle.api.nodes.NodeUtil$1
            dup
            aload 1 /* clazz */
            aload 2 /* nodeList */
            invokespecial com.oracle.truffle.api.nodes.NodeUtil$1.<init>:(Ljava/lang/Class;Ljava/util/List;)V
            invokevirtual com.oracle.truffle.api.nodes.Node.accept:(Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
         2: .line 565
            aload 2 /* nodeList */
            areturn
        end local 2 // java.util.List nodeList
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.truffle.api.nodes.Node root
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      root  Lcom/oracle/truffle/api/nodes/Node;
            0    3     1     clazz  Ljava/lang/Class<TT;>;
            1    3     2  nodeList  Ljava/util/List<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/Class<TT;>;)Ljava/util/List<TT;>;
    MethodParameters:
       Name  Flags
      root   final
      clazz  final

  public static int countNodes(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node root
         0: .line 570
            aload 0 /* root */
            getstatic com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter.NO_FILTER:Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.countNodes:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)I
            ireturn
        end local 0 // com.oracle.truffle.api.nodes.Node root
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  root  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      root  

  public static int countNodes(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node root
        start local 1 // com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter filter
         0: .line 575
            new com.oracle.truffle.api.nodes.NodeUtil$NodeCounter
            dup
            aload 1 /* filter */
            invokespecial com.oracle.truffle.api.nodes.NodeUtil$NodeCounter.<init>:(Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;)V
            astore 2 /* counter */
        start local 2 // com.oracle.truffle.api.nodes.NodeUtil$NodeCounter counter
         1: .line 576
            aload 0 /* root */
            aload 2 /* counter */
            invokevirtual com.oracle.truffle.api.nodes.Node.accept:(Lcom/oracle/truffle/api/nodes/NodeVisitor;)V
         2: .line 577
            aload 2 /* counter */
            getfield com.oracle.truffle.api.nodes.NodeUtil$NodeCounter.count:I
            ireturn
        end local 2 // com.oracle.truffle.api.nodes.NodeUtil$NodeCounter counter
        end local 1 // com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter filter
        end local 0 // com.oracle.truffle.api.nodes.Node root
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     root  Lcom/oracle/truffle/api/nodes/Node;
            0    3     1   filter  Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCountFilter;
            1    3     2  counter  Lcom/oracle/truffle/api/nodes/NodeUtil$NodeCounter;
    MethodParameters:
        Name  Flags
      root    
      filter  

  public static java.lang.String printCompactTreeToString(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 597
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 1 /* out */
        start local 1 // java.io.StringWriter out
         1: .line 598
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            aconst_null
            aload 0 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
         2: .line 599
            aload 1 /* out */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.io.StringWriter out
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Lcom/oracle/truffle/api/nodes/Node;
            1    3     1   out  Ljava/io/StringWriter;
    MethodParameters:
      Name  Flags
      node  

  public static void printCompactTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.OutputStream out
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 604
            new java.io.PrintWriter
            dup
            aload 0 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            aconst_null
            aload 1 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
         1: .line 605
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.OutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   out  Ljava/io/OutputStream;
            0    2     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      out   
      node  

  private static void printCompactTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, int);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // java.io.PrintWriter p
        start local 1 // com.oracle.truffle.api.nodes.Node parent
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // int level
         0: .line 608
            aload 2 /* node */
            ifnonnull 2
         1: .line 609
            return
         2: .line 611
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 612
      StackMap locals: int
      StackMap stack:
            aload 0 /* p */
            ldc "  "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         5: .line 611
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            iload 3 /* level */
            if_icmplt 4
        end local 4 // int i
         7: .line 614
            aload 1 /* parent */
            ifnonnull 10
         8: .line 615
            aload 0 /* p */
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         9: .line 616
            goto 13
        10: .line 617
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 1 /* parent */
            aload 2 /* node */
            ldc "unknownField"
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.getNodeFieldName:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        11: .line 618
            aload 0 /* p */
            ldc " = "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        12: .line 619
            aload 0 /* p */
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        13: .line 622
      StackMap locals:
      StackMap stack:
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 5
            goto 16
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int top java.util.Iterator
      StackMap stack:
        14: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 4 /* child */
        start local 4 // com.oracle.truffle.api.nodes.Node child
        15: .line 623
            aload 0 /* p */
            aload 2 /* node */
            aload 4 /* child */
            iload 3 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printCompactTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
        end local 4 // com.oracle.truffle.api.nodes.Node child
        16: .line 622
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 625
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.flush:()V
        18: .line 626
            return
        end local 3 // int level
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.nodes.Node parent
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   19     0       p  Ljava/io/PrintWriter;
            0   19     1  parent  Lcom/oracle/truffle/api/nodes/Node;
            0   19     2    node  Lcom/oracle/truffle/api/nodes/Node;
            0   19     3   level  I
            3    7     4       i  I
           15   16     4   child  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
        Name  Flags
      p       
      parent  
      node    
      level   

  public static java.lang.String printSourceAttributionTree(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 630
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 1 /* out */
        start local 1 // java.io.StringWriter out
         1: .line 631
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            aconst_null
            aload 0 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
         2: .line 632
            aload 1 /* out */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.io.StringWriter out
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Lcom/oracle/truffle/api/nodes/Node;
            1    3     1   out  Ljava/io/StringWriter;
    MethodParameters:
      Name  Flags
      node  

  public static void printSourceAttributionTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.OutputStream out
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 637
            new java.io.PrintWriter
            dup
            aload 0 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            aconst_null
            aload 1 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
         1: .line 638
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.OutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   out  Ljava/io/OutputStream;
            0    2     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      out   
      node  

  public static void printSourceAttributionTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.io.PrintWriter out
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 642
            aload 0 /* out */
            aconst_null
            aload 1 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
         1: .line 643
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.PrintWriter out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   out  Ljava/io/PrintWriter;
            0    2     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      out   
      node  

  private static void printSourceAttributionTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, int);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.io.PrintWriter p
        start local 1 // com.oracle.truffle.api.nodes.Node parent
        start local 2 // com.oracle.truffle.api.nodes.Node node
        start local 3 // int level
         0: .line 646
            aload 2 /* node */
            ifnonnull 2
         1: .line 647
            return
         2: .line 649
      StackMap locals:
      StackMap stack:
            aload 1 /* parent */
            ifnonnull 8
         3: .line 651
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 4 /* sourceSection */
        start local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
         4: .line 652
            aload 4 /* sourceSection */
            ifnull 8
         5: .line 653
            aload 4 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 5 /* txt */
        start local 5 // java.lang.String txt
         6: .line 654
            aload 0 /* p */
            new java.lang.StringBuilder
            dup
            ldc "Full source len=("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* txt */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")  ___"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* txt */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "___"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
         7: .line 655
            aload 0 /* p */
            ldc "AST source attribution:"
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 5 // java.lang.String txt
        end local 4 // com.oracle.truffle.api.source.SourceSection sourceSection
         8: .line 658
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         9: .line 659
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 660
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 4 /* sb */
            ldc "| "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 659
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 3 /* level */
            if_icmplt 11
        end local 5 // int i
        14: .line 663
            aload 1 /* parent */
            ifnull 16
        15: .line 664
            aload 4 /* sb */
            aload 1 /* parent */
            aload 2 /* node */
            ldc ""
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.getNodeFieldName:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 667
      StackMap locals:
      StackMap stack:
            aload 4 /* sb */
            new java.lang.StringBuilder
            dup
            ldc "  ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 669
            aload 4 /* sb */
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSyntaxTags:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 671
            aload 4 /* sb */
            aload 2 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.displaySourceAttribution:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 672
            aload 0 /* p */
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        20: .line 674
            aload 2 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 23
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node int java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
        21: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 5 /* child */
        start local 5 // com.oracle.truffle.api.nodes.Node child
        22: .line 675
            aload 0 /* p */
            aload 2 /* node */
            aload 5 /* child */
            iload 3 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printSourceAttributionTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;I)V
        end local 5 // com.oracle.truffle.api.nodes.Node child
        23: .line 674
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 21
        24: .line 677
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.flush:()V
        25: .line 678
            return
        end local 4 // java.lang.StringBuilder sb
        end local 3 // int level
        end local 2 // com.oracle.truffle.api.nodes.Node node
        end local 1 // com.oracle.truffle.api.nodes.Node parent
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0              p  Ljava/io/PrintWriter;
            0   26     1         parent  Lcom/oracle/truffle/api/nodes/Node;
            0   26     2           node  Lcom/oracle/truffle/api/nodes/Node;
            0   26     3          level  I
            4    8     4  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
            6    8     5            txt  Ljava/lang/String;
            9   26     4             sb  Ljava/lang/StringBuilder;
           10   14     5              i  I
           22   23     5          child  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
        Name  Flags
      p       
      parent  
      node    
      level   

  private static java.lang.String getNodeFieldName(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.Node, java.lang.String);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/Node;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=14, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node parent
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // java.lang.String defaultName
         0: .line 681
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.Node.getNodeClass:()Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 3 /* nodeClass */
        start local 3 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         1: .line 682
            aload 3 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 21
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // java.lang.Object field
         3: .line 683
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 684
            aload 3 /* nodeClass */
            aload 4 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            aload 1 /* node */
            if_acmpne 20
         5: .line 685
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
         6: .line 687
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 18
         7: .line 688
            aload 3 /* nodeClass */
            aload 4 /* field */
            aload 0 /* parent */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldObject:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            checkcast java.lang.Object[]
            astore 8 /* arrayNodes */
        start local 8 // java.lang.Object[] arrayNodes
         8: .line 689
            aload 8 /* arrayNodes */
            ifnull 20
         9: .line 690
            iconst_0
            istore 9 /* index */
        start local 9 // int index
        10: .line 691
            aload 8 /* arrayNodes */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 16
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int top int int java.lang.Object[]
      StackMap stack:
        11: aload 13
            iload 11
            aaload
            astore 10 /* arrayNode */
        start local 10 // java.lang.Object arrayNode
        12: .line 692
            aload 10 /* arrayNode */
            aload 1 /* node */
            if_acmpne 14
        13: .line 693
            new java.lang.StringBuilder
            dup
            aload 3 /* nodeClass */
            aload 4 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        14: .line 695
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int java.lang.Object int int java.lang.Object[]
      StackMap stack:
            iinc 9 /* index */ 1
        end local 10 // java.lang.Object arrayNode
        15: .line 691
            iinc 11 1
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object[] int top int int java.lang.Object[]
      StackMap stack:
        16: iload 11
            iload 12
            if_icmplt 11
        end local 9 // int index
        end local 8 // java.lang.Object[] arrayNodes
        17: .line 698
            goto 20
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
        18: aload 3 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.nodeFieldsOrderedByKind:()Z
            ifeq 20
        19: .line 699
            goto 22
        end local 4 // java.lang.Object field
        20: .line 682
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        21: iload 5
            iload 6
            if_icmplt 2
        22: .line 702
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.String com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            aload 2 /* defaultName */
            areturn
        end local 3 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 2 // java.lang.String defaultName
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.nodes.Node parent
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0       parent  Lcom/oracle/truffle/api/nodes/Node;
            0   23     1         node  Lcom/oracle/truffle/api/nodes/Node;
            0   23     2  defaultName  Ljava/lang/String;
            1   23     3    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
            3   20     4        field  Ljava/lang/Object;
            8   17     8   arrayNodes  [Ljava/lang/Object;
           10   17     9        index  I
           12   15    10    arrayNode  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      parent       
      node         
      defaultName  

  public static java.lang.String printSyntaxTags(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object node
         0: .line 711
            aload 0 /* node */
            instanceof com.oracle.truffle.api.nodes.Node
            ifeq 2
            aload 0 /* node */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            ifnull 2
         1: .line 712
            aload 0 /* node */
            checkcast com.oracle.truffle.api.nodes.Node
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.toString:()Ljava/lang/String;
            areturn
         2: .line 714
      StackMap locals:
      StackMap stack:
            ldc ""
            areturn
        end local 0 // java.lang.Object node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      node  final

  public static void printTree(java.io.OutputStream, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/io/OutputStream;Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.io.OutputStream out
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 726
            new java.io.PrintWriter
            dup
            aload 0 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
         1: .line 727
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.OutputStream out
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   out  Ljava/io/OutputStream;
            0    2     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      out   
      node  

  public static java.lang.String printTreeToString(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 731
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 1 /* out */
        start local 1 // java.io.StringWriter out
         1: .line 732
            new java.io.PrintWriter
            dup
            aload 1 /* out */
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;)V
            aload 0 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
         2: .line 733
            aload 1 /* out */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.io.StringWriter out
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  node  Lcom/oracle/truffle/api/nodes/Node;
            1    3     1   out  Ljava/io/StringWriter;
    MethodParameters:
      Name  Flags
      node  

  public static void printTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.io.PrintWriter p
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 738
            aload 0 /* p */
            aload 1 /* node */
            iconst_1
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
         1: .line 739
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.println:()V
         2: .line 740
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.flush:()V
         3: .line 741
            return
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     p  Ljava/io/PrintWriter;
            0    4     1  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      p     
      node  

  private static void printTree(java.io.PrintWriter, com.oracle.truffle.api.nodes.Node, int);
    descriptor: (Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // java.io.PrintWriter p
        start local 1 // com.oracle.truffle.api.nodes.Node node
        start local 2 // int level
         0: .line 744
            aload 1 /* node */
            ifnonnull 3
         1: .line 745
            aload 0 /* p */
            ldc "null"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         2: .line 746
            return
         3: .line 749
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         4: .line 751
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* childFields */
        start local 3 // java.util.ArrayList childFields
         5: .line 752
            ldc ""
            astore 4 /* sep */
        start local 4 // java.lang.String sep
         6: .line 753
            aload 0 /* p */
            ldc "("
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         7: .line 754
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeClass.get:(Lcom/oracle/truffle/api/nodes/Node;)Lcom/oracle/truffle/api/nodes/NodeClass;
            astore 5 /* nodeClass */
        start local 5 // com.oracle.truffle.api.nodes.NodeClass nodeClass
         8: .line 755
            aload 5 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 19
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
         9: aload 9
            iload 7
            aaload
            astore 6 /* field */
        start local 6 // java.lang.Object field
        10: .line 756
            aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifne 11
            aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 13
        11: .line 757
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[]
      StackMap stack:
            aload 3 /* childFields */
            aload 6 /* field */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        12: .line 758
            goto 18
        13: .line 759
      StackMap locals:
      StackMap stack:
            aload 0 /* p */
            aload 4 /* sep */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        14: .line 760
            ldc ", "
            astore 4 /* sep */
        15: .line 762
            aload 0 /* p */
            aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        16: .line 763
            aload 0 /* p */
            ldc " = "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        17: .line 764
            aload 0 /* p */
            aload 5 /* nodeClass */
            aload 6 /* field */
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldValue:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/Object;)V
        end local 6 // java.lang.Object field
        18: .line 755
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        19: iload 7
            iload 8
            if_icmplt 9
        20: .line 767
            aload 0 /* p */
            ldc ")"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        21: .line 769
            aload 3 /* childFields */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 41
        22: .line 770
            aload 0 /* p */
            ldc " {"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        23: .line 771
            aload 5 /* nodeClass */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getNodeFieldArray:()[Ljava/lang/Object;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 38
      StackMap locals:
      StackMap stack:
        24: aload 9
            iload 7
            aaload
            astore 6 /* field */
        start local 6 // java.lang.Object field
        25: .line 772
            aload 0 /* p */
            iload 2 /* level */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printNewLine:(Ljava/io/PrintWriter;I)V
        26: .line 773
            aload 0 /* p */
            aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldName:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        27: .line 775
            aload 5 /* nodeClass */
            aload 6 /* field */
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.getFieldValue:(Ljava/lang/Object;Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/Object;
            astore 10 /* value */
        start local 10 // java.lang.Object value
        28: .line 776
            aload 10 /* value */
            ifnonnull 31
        29: .line 777
            aload 0 /* p */
            ldc " = null "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        30: .line 778
            goto 37
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass java.lang.Object int int java.lang.Object[] java.lang.Object
      StackMap stack:
        31: aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildField:(Ljava/lang/Object;)Z
            ifeq 35
        32: .line 779
            aload 0 /* p */
            ldc " = "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        33: .line 780
            aload 0 /* p */
            aload 10 /* value */
            checkcast com.oracle.truffle.api.nodes.Node
            iload 2 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
        34: .line 781
            goto 37
      StackMap locals:
      StackMap stack:
        35: aload 5 /* nodeClass */
            aload 6 /* field */
            invokevirtual com.oracle.truffle.api.nodes.NodeClass.isChildrenField:(Ljava/lang/Object;)Z
            ifeq 37
        36: .line 782
            aload 0 /* p */
            iload 2 /* level */
            aload 10 /* value */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printChildren:(Ljava/io/PrintWriter;ILjava/lang/Object;)V
        end local 10 // java.lang.Object value
        end local 6 // java.lang.Object field
        37: .line 771
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass top int int java.lang.Object[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        38: iload 7
            iload 8
            if_icmplt 24
        39: .line 785
            aload 0 /* p */
            iload 2 /* level */
            iconst_1
            isub
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printNewLine:(Ljava/io/PrintWriter;I)V
        40: .line 786
            aload 0 /* p */
            ldc "}"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        41: .line 788
      StackMap locals: java.io.PrintWriter com.oracle.truffle.api.nodes.Node int java.util.ArrayList java.lang.String com.oracle.truffle.api.nodes.NodeClass
      StackMap stack:
            return
        end local 5 // com.oracle.truffle.api.nodes.NodeClass nodeClass
        end local 4 // java.lang.String sep
        end local 3 // java.util.ArrayList childFields
        end local 2 // int level
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0            p  Ljava/io/PrintWriter;
            0   42     1         node  Lcom/oracle/truffle/api/nodes/Node;
            0   42     2        level  I
            5   42     3  childFields  Ljava/util/ArrayList<Ljava/lang/Object;>;
            6   42     4          sep  Ljava/lang/String;
            8   42     5    nodeClass  Lcom/oracle/truffle/api/nodes/NodeClass;
           10   18     6        field  Ljava/lang/Object;
           25   37     6        field  Ljava/lang/Object;
           28   37    10        value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      p      
      node   
      level  

  private static void printChildren(java.io.PrintWriter, int, java.lang.Object);
    descriptor: (Ljava/io/PrintWriter;ILjava/lang/Object;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // java.io.PrintWriter p
        start local 1 // int level
        start local 2 // java.lang.Object value
         0: .line 792
            aload 2 /* value */
            checkcast java.lang.Object[]
            astore 4 /* children */
        start local 4 // java.lang.Object[] children
         1: .line 793
            aload 0 /* p */
            ldc " = ["
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         2: .line 794
            ldc ""
            astore 3 /* sep */
        start local 3 // java.lang.String sep
         3: .line 795
            aload 4 /* children */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 9
      StackMap locals: java.io.PrintWriter int java.lang.Object java.lang.String java.lang.Object[] top int int java.lang.Object[]
      StackMap stack:
         4: aload 8
            iload 6
            aaload
            astore 5 /* child */
        start local 5 // java.lang.Object child
         5: .line 796
            aload 0 /* p */
            aload 3 /* sep */
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         6: .line 797
            ldc ", "
            astore 3 /* sep */
         7: .line 798
            aload 0 /* p */
            aload 5 /* child */
            checkcast com.oracle.truffle.api.nodes.Node
            iload 1 /* level */
            iconst_1
            iadd
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.printTree:(Ljava/io/PrintWriter;Lcom/oracle/truffle/api/nodes/Node;I)V
        end local 5 // java.lang.Object child
         8: .line 795
            iinc 6 1
      StackMap locals:
      StackMap stack:
         9: iload 6
            iload 7
            if_icmplt 4
        10: .line 800
            aload 0 /* p */
            ldc "]"
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
        11: .line 801
            return
        end local 4 // java.lang.Object[] children
        end local 3 // java.lang.String sep
        end local 2 // java.lang.Object value
        end local 1 // int level
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0         p  Ljava/io/PrintWriter;
            0   12     1     level  I
            0   12     2     value  Ljava/lang/Object;
            3   12     3       sep  Ljava/lang/String;
            1   12     4  children  [Ljava/lang/Object;
            5    8     5     child  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      p      
      level  
      value  

  private static void printNewLine(java.io.PrintWriter, int);
    descriptor: (Ljava/io/PrintWriter;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.io.PrintWriter p
        start local 1 // int level
         0: .line 804
            aload 0 /* p */
            invokevirtual java.io.PrintWriter.println:()V
         1: .line 805
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 806
      StackMap locals: int
      StackMap stack:
            aload 0 /* p */
            ldc "    "
            invokevirtual java.io.PrintWriter.print:(Ljava/lang/String;)V
         4: .line 805
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            iload 1 /* level */
            if_icmplt 3
        end local 2 // int i
         6: .line 808
            return
        end local 1 // int level
        end local 0 // java.io.PrintWriter p
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0      p  Ljava/io/PrintWriter;
            0    7     1  level  I
            2    6     2      i  I
    MethodParameters:
       Name  Flags
      p      
      level  

  private static java.lang.String nodeName(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)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.Node node
         0: .line 811
            aload 0 /* node */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.className:(Ljava/lang/Class;)Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  node  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      node  

  static java.lang.String className(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 815
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* name */
        start local 1 // java.lang.String name
         1: .line 816
            aload 1 /* name */
            aload 1 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  clazz  Ljava/lang/Class<*>;
            1    2     1   name  Ljava/lang/String;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      clazz  

  private static java.lang.String displaySourceAttribution(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 820
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 1 /* section */
        start local 1 // com.oracle.truffle.api.source.SourceSection section
         1: .line 821
            aload 1 /* section */
            ifnonnull 3
         2: .line 822
            ldc ""
            areturn
         3: .line 824
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            ifnonnull 5
         4: .line 827
            ldc "source: <unknown>"
            areturn
         5: .line 829
      StackMap locals:
      StackMap stack:
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharacters:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            astore 2 /* srcText */
        start local 2 // java.lang.String srcText
         6: .line 830
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* sb */
        start local 3 // java.lang.StringBuilder sb
         7: .line 831
            aload 3 /* sb */
            ldc "source:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 832
            aload 3 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharIndex:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getCharEndIndex:()I
            iconst_1
            isub
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 833
            aload 3 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " line="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* section */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 834
            aload 3 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " len="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* srcText */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 835
            aload 3 /* sb */
            new java.lang.StringBuilder
            dup
            ldc " text=\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* srcText */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 836
            aload 3 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder sb
        end local 2 // java.lang.String srcText
        end local 1 // com.oracle.truffle.api.source.SourceSection section
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     node  Lcom/oracle/truffle/api/nodes/Node;
            1   13     1  section  Lcom/oracle/truffle/api/source/SourceSection;
            6   13     2  srcText  Ljava/lang/String;
            7   13     3       sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      node  

  public static boolean verify(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node root
         0: .line 841
            aload 0 /* root */
            invokevirtual com.oracle.truffle.api.nodes.Node.getChildren:()Ljava/lang/Iterable;
            astore 1 /* children */
        start local 1 // java.lang.Iterable children
         1: .line 842
            aload 1 /* children */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 7
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.nodes.Node
            astore 2 /* child */
        start local 2 // com.oracle.truffle.api.nodes.Node child
         3: .line 843
            aload 2 /* child */
            ifnull 7
         4: .line 844
            aload 2 /* child */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* root */
            if_acmpeq 6
         5: .line 845
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            aload 2 /* child */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ": actual parent="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* child */
            invokevirtual com.oracle.truffle.api.nodes.Node.getParent:()Lcom/oracle/truffle/api/nodes/Node;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " expected parent="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* root */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.toStringWithClass:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 847
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable com.oracle.truffle.api.nodes.Node java.util.Iterator
      StackMap stack:
            aload 2 /* child */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.verify:(Lcom/oracle/truffle/api/nodes/Node;)Z
            pop
        end local 2 // com.oracle.truffle.api.nodes.Node child
         7: .line 842
      StackMap locals: com.oracle.truffle.api.nodes.Node java.lang.Iterable top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 850
            iconst_1
            ireturn
        end local 1 // java.lang.Iterable children
        end local 0 // com.oracle.truffle.api.nodes.Node root
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      root  Lcom/oracle/truffle/api/nodes/Node;
            1    9     1  children  Ljava/lang/Iterable<Lcom/oracle/truffle/api/nodes/Node;>;
            3    7     2     child  Lcom/oracle/truffle/api/nodes/Node;
    MethodParameters:
      Name  Flags
      root  

  private static java.lang.String toStringWithClass(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 854
            aload 0 /* obj */
            ifnonnull 1
            ldc "null"
            goto 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* obj */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  static void traceRewrite(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: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node oldNode
        start local 1 // com.oracle.truffle.api.nodes.Node newNode
        start local 2 // java.lang.CharSequence reason
         0: .line 858
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterFromCost:Lcom/oracle/truffle/api/nodes/NodeCost;
            ifnull 3
         1: .line 859
            aload 0 /* oldNode */
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterFromCost:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByKind:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
            ifeq 3
         2: .line 860
            return
         3: .line 864
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterToCost:Lcom/oracle/truffle/api/nodes/NodeCost;
            ifnull 6
         4: .line 865
            aload 1 /* newNode */
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterToCost:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByKind:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
            ifeq 6
         5: .line 866
            return
         6: .line 870
      StackMap locals:
      StackMap stack:
            getstatic com.oracle.truffle.api.TruffleOptions.TraceRewritesFilterClass:Ljava/lang/String;
            astore 3 /* filter */
        start local 3 // java.lang.String filter
         7: .line 871
            aload 0 /* oldNode */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 4 /* from */
        start local 4 // java.lang.Class from
         8: .line 872
            aload 1 /* newNode */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 5 /* to */
        start local 5 // java.lang.Class to
         9: .line 873
            aload 3 /* filter */
            ifnull 11
            aload 4 /* from */
            aload 3 /* filter */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByContainsClassName:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifne 10
            aload 5 /* to */
            aload 3 /* filter */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.filterByContainsClassName:(Ljava/lang/Class;Ljava/lang/String;)Z
            ifeq 11
        10: .line 874
      StackMap locals: java.lang.String java.lang.Class java.lang.Class
      StackMap stack:
            return
        11: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* oldNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.getEncapsulatingSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 6 /* reportedSourceSection */
        start local 6 // com.oracle.truffle.api.source.SourceSection reportedSourceSection
        12: .line 879
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            astore 7 /* out */
        start local 7 // java.io.PrintStream out
        13: .line 880
            aload 7 /* out */
            ldc "[truffle]   rewrite %-50s |From %-40s |To %-40s |Reason %s %s%n"
            iconst_5
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* oldNode */
            invokevirtual com.oracle.truffle.api.nodes.Node.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* oldNode */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatNodeInfo:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 1 /* newNode */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatNodeInfo:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            aastore
            dup
            iconst_3
        14: .line 881
            aload 2 /* reason */
            ifnull 15
            aload 2 /* reason */
            invokeinterface java.lang.CharSequence.length:()I
            ifle 15
            aload 2 /* reason */
            goto 16
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.CharSequence java.lang.String java.lang.Class java.lang.Class com.oracle.truffle.api.source.SourceSection java.io.PrintStream
      StackMap stack: java.io.PrintStream java.lang.String java.lang.Object[] java.lang.Object[] int
        15: ldc "unknown"
      StackMap locals: com.oracle.truffle.api.nodes.Node com.oracle.truffle.api.nodes.Node java.lang.CharSequence java.lang.String java.lang.Class java.lang.Class com.oracle.truffle.api.source.SourceSection java.io.PrintStream
      StackMap stack: java.io.PrintStream java.lang.String java.lang.Object[] java.lang.Object[] int java.lang.CharSequence
        16: aastore
            dup
            iconst_4
            aload 6 /* reportedSourceSection */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.formatLocation:(Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
            aastore
        17: .line 880
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        18: .line 882
            return
        end local 7 // java.io.PrintStream out
        end local 6 // com.oracle.truffle.api.source.SourceSection reportedSourceSection
        end local 5 // java.lang.Class to
        end local 4 // java.lang.Class from
        end local 3 // java.lang.String filter
        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 oldNode
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   19     0                oldNode  Lcom/oracle/truffle/api/nodes/Node;
            0   19     1                newNode  Lcom/oracle/truffle/api/nodes/Node;
            0   19     2                 reason  Ljava/lang/CharSequence;
            7   19     3                 filter  Ljava/lang/String;
            8   19     4                   from  Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
            9   19     5                     to  Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
           12   19     6  reportedSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
           13   19     7                    out  Ljava/io/PrintStream;
    MethodParameters:
         Name  Flags
      oldNode  
      newNode  
      reason   

  private static java.lang.String formatLocation(com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/source/SourceSection;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.source.SourceSection sourceSection
         0: .line 885
            aload 0 /* sourceSection */
            ifnonnull 2
         1: .line 886
            ldc ""
            areturn
         2: .line 889
      StackMap locals:
      StackMap stack:
            aload 0 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            ifnonnull 4
         3: .line 892
            ldc "at <Unknown>"
            areturn
         4: .line 894
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "at "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "%s:%d"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            invokevirtual com.oracle.truffle.api.source.Source.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         5: .line 895
            aload 0 /* sourceSection */
            invokevirtual com.oracle.truffle.api.source.SourceSection.getStartLine:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         6: .line 894
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.oracle.truffle.api.source.SourceSection sourceSection
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
               Name  Flags
      sourceSection  

  private static java.lang.String formatNodeInfo(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.oracle.truffle.api.nodes.Node node
         0: .line 900
            ldc "?"
            astore 1 /* cost */
        start local 1 // java.lang.String cost
         1: .line 901
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:()[I
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getCost:()Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 2
                    2: 10
                    3: 4
                    4: 6
                    5: 8
              default: 10
          }
         2: .line 903
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "G"
            astore 1 /* cost */
         3: .line 904
            goto 11
         4: .line 906
      StackMap locals:
      StackMap stack:
            ldc "M"
            astore 1 /* cost */
         5: .line 907
            goto 11
         6: .line 909
      StackMap locals:
      StackMap stack:
            ldc "P"
            astore 1 /* cost */
         7: .line 910
            goto 11
         8: .line 912
      StackMap locals:
      StackMap stack:
            ldc "G"
            astore 1 /* cost */
         9: .line 913
            goto 11
        10: .line 915
      StackMap locals:
      StackMap stack:
            ldc "?"
            astore 1 /* cost */
        11: .line 916
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
        12: .line 918
            aload 1 /* cost */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* node */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.nodeName:(Lcom/oracle/truffle/api/nodes/Node;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.String cost
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  node  Lcom/oracle/truffle/api/nodes/Node;
            1   13     1  cost  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      node  

  private static boolean filterByKind(com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.nodes.NodeCost);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeCost;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.nodes.Node node
        start local 1 // com.oracle.truffle.api.nodes.NodeCost cost
         0: .line 922
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getCost:()Lcom/oracle/truffle/api/nodes/NodeCost;
            aload 1 /* cost */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.oracle.truffle.api.nodes.NodeCost cost
        end local 0 // com.oracle.truffle.api.nodes.Node node
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  node  Lcom/oracle/truffle/api/nodes/Node;
            0    2     1  cost  Lcom/oracle/truffle/api/nodes/NodeCost;
    MethodParameters:
      Name  Flags
      node  
      cost  

  private static boolean filterByContainsClassName(java.lang.Class<? extends com.oracle.truffle.api.nodes.Node>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class from
        start local 1 // java.lang.String filter
         0: .line 926
            aload 0 /* from */
            astore 2 /* currentFrom */
        start local 2 // java.lang.Class currentFrom
         1: .line 927
            goto 5
         2: .line 928
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* currentFrom */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* filter */
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 4
         3: .line 929
            iconst_0
            ireturn
         4: .line 931
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFrom */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* currentFrom */
         5: .line 927
      StackMap locals:
      StackMap stack:
            aload 2 /* currentFrom */
            ifnonnull 2
         6: .line 933
            iconst_1
            ireturn
        end local 2 // java.lang.Class currentFrom
        end local 1 // java.lang.String filter
        end local 0 // java.lang.Class from
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         from  Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;
            0    7     1       filter  Ljava/lang/String;
            1    7     2  currentFrom  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/nodes/Node;>;Ljava/lang/String;)Z
    MethodParameters:
        Name  Flags
      from    
      filter  

  static int[] $SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 64
            getstatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.oracle.truffle.api.nodes.NodeCost.values:()[Lcom/oracle/truffle/api/nodes/NodeCost;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.oracle.truffle.api.nodes.NodeCost.MEGAMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iconst_5
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.oracle.truffle.api.nodes.NodeCost.MONOMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.oracle.truffle.api.nodes.NodeCost.NONE:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.oracle.truffle.api.nodes.NodeCost.POLYMORPHIC:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.oracle.truffle.api.nodes.NodeCost.UNINITIALIZED:Lcom/oracle/truffle/api/nodes/NodeCost;
            invokevirtual com.oracle.truffle.api.nodes.NodeCost.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic com.oracle.truffle.api.nodes.NodeUtil.$SWITCH_TABLE$com$oracle$truffle$api$nodes$NodeCost:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "NodeUtil.java"
NestMembers:
  com.oracle.truffle.api.nodes.NodeUtil$1  com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter  com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter$1  com.oracle.truffle.api.nodes.NodeUtil$NodeCounter
InnerClasses:
  public abstract TruffleBoundary = com.oracle.truffle.api.CompilerDirectives$TruffleBoundary of com.oracle.truffle.api.CompilerDirectives
  public final NodeFieldKind = com.oracle.truffle.api.nodes.NodeFieldAccessor$NodeFieldKind of com.oracle.truffle.api.nodes.NodeFieldAccessor
  com.oracle.truffle.api.nodes.NodeUtil$1
  public abstract NodeCountFilter = com.oracle.truffle.api.nodes.NodeUtil$NodeCountFilter of com.oracle.truffle.api.nodes.NodeUtil
  private final NodeCounter = com.oracle.truffle.api.nodes.NodeUtil$NodeCounter of com.oracle.truffle.api.nodes.NodeUtil