class com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode extends com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode
  super_class: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode
{
  private final java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>> resolvedTags;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;

  void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[], java.util.List<java.lang.String>);
    descriptor: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
        start local 2 // java.util.List tags
         0: .line 1271
            aload 0 /* this */
            aload 1 /* children */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
         1: .line 1272
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
         2: .line 1273
            aload 2 /* tags */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 18
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] java.util.List top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* tag */
        start local 3 // java.lang.String tag
         4: .line 1275
            aload 3 /* tag */
            dup
            astore 5
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 4
          -1310359912: 5
              2521314: 6
            701446479: 7
           1948626655: 8
              default: 17
          }
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] java.util.List java.lang.String java.util.Iterator java.lang.String
      StackMap stack:
         5: aload 5
            ldc "EXPRESSION"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
            goto 17
      StackMap locals:
      StackMap stack:
         6: aload 5
            ldc "ROOT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 17
      StackMap locals:
      StackMap stack:
         7: aload 5
            ldc "STATEMENT"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 17
      StackMap locals:
      StackMap stack:
         8: aload 5
            ldc "ROOT_BODY"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 17
         9: .line 1277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$ExpressionTag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 1278
            goto 18
        11: .line 1280
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$StatementTag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        12: .line 1281
            goto 18
        13: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootTag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 1284
            goto 18
        15: .line 1286
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            ldc Lcom/oracle/truffle/api/instrumentation/StandardTags$RootBodyTag;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1287
            goto 18
        17: .line 1289
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid tag "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* tag */
            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 // java.lang.String tag
        18: .line 1273
      StackMap locals: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] java.util.List top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 1293
            return
        end local 2 // java.util.List tags
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$MultipleNode;
            0   20     1  children  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            0   20     2      tags  Ljava/util/List<Ljava/lang/String;>;
            4   18     3       tag  Ljava/lang/String;
    Signature: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
          Name  Flags
      children  
      tags      

  void <init>(com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[], java.util.Collection<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/Collection;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
        start local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
        start local 2 // java.util.Collection tags
         0: .line 1296
            aload 0 /* this */
            aload 1 /* children */
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;)V
         1: .line 1297
            aload 0 /* this */
            new java.util.HashSet
            dup
            aload 2 /* tags */
            invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
            putfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
         2: .line 1298
            return
        end local 2 // java.util.Collection tags
        end local 1 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode[] children
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$MultipleNode;
            0    3     1  children  [Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            0    3     2      tags  Ljava/util/Collection<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;
    Signature: ([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/Collection<Ljava/lang/Class<+Lcom/oracle/truffle/api/instrumentation/Tag;>;>;)V
    MethodParameters:
          Name  Flags
      children  
      tags      

  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.InstrumentationTestLanguage$MultipleNode this
        start local 1 // java.lang.Class tag
         0: .line 1302
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            aload 1 /* tag */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Class tag
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$MultipleNode;
            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   

  protected com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode copyUninitialized(java.util.Set<java.lang.Class<? extends com.oracle.truffle.api.instrumentation.Tag>>);
    descriptor: (Ljava/util/Set;)Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
        start local 1 // java.util.Set materializedTags
         0: .line 1307
            new com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.children:[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            aload 1 /* materializedTags */
            invokestatic com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.cloneUninitialized:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/Set;)[Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.resolvedTags:Ljava/util/Set;
            invokespecial com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode.<init>:([Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$BaseNode;Ljava/util/Collection;)V
            areturn
        end local 1 // java.util.Set materializedTags
        end local 0 // com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lcom/oracle/truffle/api/instrumentation/test/InstrumentationTestLanguage$MultipleNode;
            0    1     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/test/InstrumentationTestLanguage$BaseNode;
    MethodParameters:
                  Name  Flags
      materializedTags  
}
SourceFile: "InstrumentationTestLanguage.java"
NestHost: com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
InnerClasses:
  public final ExpressionTag = com.oracle.truffle.api.instrumentation.StandardTags$ExpressionTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootBodyTag = com.oracle.truffle.api.instrumentation.StandardTags$RootBodyTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final RootTag = com.oracle.truffle.api.instrumentation.StandardTags$RootTag of com.oracle.truffle.api.instrumentation.StandardTags
  public final StatementTag = com.oracle.truffle.api.instrumentation.StandardTags$StatementTag of com.oracle.truffle.api.instrumentation.StandardTags
  public abstract BaseNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BaseNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  BlockNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$BlockNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage
  MultipleNode = com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage$MultipleNode of com.oracle.truffle.api.instrumentation.test.InstrumentationTestLanguage