class com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode extends com.oracle.truffle.api.nodes.Node implements com.oracle.truffle.api.instrumentation.InstrumentableNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode
  super_class: com.oracle.truffle.api.nodes.Node
{
  private final com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage language;
    descriptor: Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.source.SourceSection sourceSection;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int depth;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean materialized;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  protected com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] children;
    descriptor: [Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.Node$Children()

  void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage, com.oracle.truffle.api.source.Source, int);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;Lcom/oracle/truffle/api/source/Source;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage language
        start local 2 // com.oracle.truffle.api.source.Source source
        start local 3 // int depth
         0: .line 401
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
         1: .line 402
            aload 0 /* this */
            aload 1 /* language */
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
         2: .line 403
            aload 0 /* this */
            iload 3 /* depth */
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.depth:I
         3: .line 404
            aload 0 /* this */
            aload 2 /* source */
            iconst_1
            invokevirtual com.oracle.truffle.api.source.Source.createSection:(I)Lcom/oracle/truffle/api/source/SourceSection;
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
         4: .line 405
            aload 0 /* this */
            aload 1 /* language */
            aload 2 /* source */
            iload 3 /* depth */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.createChildren:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;Lcom/oracle/truffle/api/source/Source;I)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
         5: .line 406
            return
        end local 3 // int depth
        end local 2 // com.oracle.truffle.api.source.Source source
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage language
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    6     1  language  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
            0    6     2    source  Lcom/oracle/truffle/api/source/Source;
            0    6     3     depth  I
    MethodParameters:
          Name  Flags
      language  
      source    
      depth     

  void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
         0: .line 409
            aload 0 /* this */
            aload 1 /* copy */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            invokevirtual com.oracle.truffle.api.source.SourceSection.getSource:()Lcom/oracle/truffle/api/source/Source;
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.depth:I
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.createChildren:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;Lcom/oracle/truffle/api/source/Source;I)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;)V
         1: .line 410
            return
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    2     1  copy  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    MethodParameters:
      Name  Flags
      copy  

  void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode, com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[]);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
        start local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] children
         0: .line 412
            aload 0 /* this */
            invokespecial com.oracle.truffle.api.nodes.Node.<init>:()V
         1: .line 413
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
         2: .line 414
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.depth:I
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.depth:I
         3: .line 415
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.materialized:Z
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.materialized:Z
         4: .line 416
            aload 0 /* this */
            aload 1 /* copy */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
         5: .line 417
            aload 0 /* this */
            aload 2 /* children */
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
         6: .line 418
            return
        end local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] children
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    7     1      copy  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    7     2  children  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    MethodParameters:
          Name  Flags
      copy      
      children  

  protected com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // java.util.Set materializedTags
         0: .line 421
            aload 0 /* this */
            instanceof com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
            ifeq 3
         1: .line 422
            aload 0 /* this */
            checkcast com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode
            astore 2 /* wrapperNode */
        start local 2 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
         2: .line 423
            aload 2 /* wrapperNode */
            invokeinterface com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode.getDelegateNode:()Lcom/oracle/truffle/api/nodes/Node;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.cloneUninitialized:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode wrapperNode
         3: .line 426
      StackMap locals:
      StackMap stack:
            new com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.cloneUninitialized:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    4     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            2    3     2       wrapperNode  Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    MethodParameters:
                  Name  Flags
      materializedTags  

  public static <T extends com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode> T cloneUninitialized(T, java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode node
        start local 1 // java.util.Set materializedTags
         0: .line 431
            aload 0 /* node */
            ifnonnull 2
         1: .line 432
            aconst_null
            areturn
         2: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* node */
            astore 2 /* copy */
        start local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
         3: .line 435
            aload 0 /* node */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.isInstrumentable:()Z
            ifeq 5
         4: .line 436
            aload 0 /* node */
            aload 1 /* materializedTags */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.materializeInstrumentableNodes:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode
            astore 2 /* copy */
         5: .line 438
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode
      StackMap stack:
            aload 0 /* node */
            aload 2 /* copy */
            if_acmpne 7
         6: .line 439
            aload 0 /* node */
            aload 1 /* materializedTags */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.copyUninitialized:(Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            astore 2 /* copy */
         7: .line 441
      StackMap locals:
      StackMap stack:
            aload 2 /* copy */
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode copy
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode node
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    8     0              node  TT;
            0    8     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            3    8     2              copy  TT;
    Signature: <T:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;>(TT;Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)TT;
    MethodParameters:
                  Name  Flags
      node              
      materializedTags  

  public static <T extends com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode> T[] cloneUninitialized(T[], java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] nodeArray
        start local 1 // java.util.Set materializedTags
         0: .line 446
            aload 0 /* nodeArray */
            ifnonnull 2
         1: .line 447
            aconst_null
            areturn
         2: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* nodeArray */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[].clone:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[]
            astore 2 /* copy */
        start local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] copy
         3: .line 450
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 451
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] int
      StackMap stack:
            aload 2 /* copy */
            iload 3 /* i */
            aload 2 /* copy */
            iload 3 /* i */
            aaload
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.cloneUninitialized:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            aastore
         6: .line 450
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 2 /* copy */
            arraylength
            if_icmplt 5
        end local 3 // int i
         8: .line 453
            aload 2 /* copy */
            areturn
        end local 2 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] copy
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[] nodeArray
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    9     0         nodeArray  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    9     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
            3    9     2              copy  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            4    8     3                 i  I
    Signature: <T:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;>([TT;Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)[TT;
    MethodParameters:
                  Name  Flags
      nodeArray         
      materializedTags  

  public boolean isInstrumentable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
         0: .line 459
            iconst_1
            ireturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;

  public com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode createWrapper(com.oracle.truffle.api.instrumentation.ProbeNode);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/ProbeNode;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode$WrapperNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
         0: .line 464
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tMaterializableNodeWrapper cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    MethodParameters:
       Name  Flags
      probe  

  public boolean hasTag(java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // java.lang.Class tag
         0: .line 469
            aload 1 /* tag */
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    1     1   tag  Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;
    Signature: (Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;)Z
    MethodParameters:
      Name  Flags
      tag   

  public com.oracle.truffle.api.source.SourceSection getSourceSection();
    descriptor: ()Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
         0: .line 474
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.sourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            areturn
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;

  public int execute(com.oracle.truffle.api.frame.VirtualFrame);
    descriptor: (Lcom/oracle/truffle/api/frame/VirtualFrame;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
         0: .line 479
            iconst_0
            istore 2 /* sum */
        start local 2 // int sum
         1: .line 480
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode com.oracle.truffle.api.frame.VirtualFrame int top int int com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode[]
      StackMap stack:
         2: aload 6
            iload 4
            aaload
            astore 3 /* node */
        start local 3 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode node
         3: .line 481
            iload 2 /* sum */
            aload 3 /* node */
            aload 1 /* frame */
            invokevirtual com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.execute:(Lcom/oracle/truffle/api/frame/VirtualFrame;)I
            iadd
            istore 2 /* sum */
        end local 3 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode node
         4: .line 480
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 2
         6: .line 483
            iload 2 /* sum */
            iconst_1
            iadd
            ireturn
        end local 2 // int sum
        end local 1 // com.oracle.truffle.api.frame.VirtualFrame frame
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    7     1  frame  Lcom/oracle/truffle/api/frame/VirtualFrame;
            1    7     2    sum  I
            3    4     3   node  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
    RuntimeVisibleAnnotations: 
      com.oracle.truffle.api.nodes.ExplodeLoop()
    MethodParameters:
       Name  Flags
      frame  

  public com.oracle.truffle.api.instrumentation.InstrumentableNode materializeInstrumentableNodes(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
        start local 1 // java.util.Set materializedTags
         0: .line 488
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.materialized:Z
            ifeq 2
         1: .line 489
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
            dup
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.numMultipleMaterializations:I
            iconst_1
            iadd
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.numMultipleMaterializations:I
         2: .line 491
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.materialized:Z
         3: .line 492
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.language:Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage;
            dup
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.numMaterializations:I
            iconst_1
            iadd
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage.numMaterializations:I
         4: .line 493
            new com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializedNode
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode.cloneUninitialized:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;Ljava/util/Set;)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializedNode.<init>:(Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;[Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentableNodeTest$MaterializationLanguage$MaterializableNode;
            0    5     1  materializedTags  Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: (Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)Lcom/oracle/truffle/api/instrumentation/InstrumentableNode;
    MethodParameters:
                  Name  Flags
      materializedTags  
}
SourceFile: "InstrumentableNodeTest.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest
InnerClasses:
  public abstract WrapperNode = com.oracle.truffle.api.instrumentation.InstrumentableNode$WrapperNode of com.oracle.truffle.api.instrumentation.InstrumentableNode
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public MaterializationLanguage = com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage of com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest
  MaterializableNode = com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializableNode of com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage
  MaterializedNode = com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage$MaterializedNode of com.oracle.truffle.api.instrumentation.test.InstrumentableNodeTest$MaterializationLanguage
  public abstract Children = com.oracle.truffle.api.nodes.Node$Children of com.oracle.truffle.api.nodes.Node
    RuntimeInvisibleAnnotations: 
      com.oracle.truffle.api.instrumentation.GenerateWrapper()