public class com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
  super_class: java.lang.Object
{
  private static final int THREADS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 25

  private static final int ITERATIONS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;

  public void testMultithreadedMergeInOrder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 116
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTestNodeFactory cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultithreadedMergeReverse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 123
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTestNodeFactory cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultithreadedMergeCachedInOrder();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 130
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTestCachedNodeFactory cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultithreadedMergeCachedTwoEntries();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 137
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTestCachedNodeFactory cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMultithreadedMergeCachedThreeEntries();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
         0: .line 144
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tTestCachedNodeFactory cannot be resolved\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest;
    Exceptions:
      throws java.lang.Exception
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private static <T extends com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode> void multithreadedMerge(com.oracle.truffle.api.dsl.NodeFactory<T>, com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions, );
    descriptor: (Lcom/oracle/truffle/api/dsl/NodeFactory;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;[I)V
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=15, locals=17, args_size=3
        start local 0 // com.oracle.truffle.api.dsl.NodeFactory factory
        start local 1 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions executions
        start local 2 // int[] order
         0: .line 149
            ldc 3
            aload 2 /* order */
            arraylength
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         1: .line 150
            aload 0 /* factory */
            iconst_0
            anewarray java.lang.Object
            invokestatic com.oracle.truffle.api.dsl.test.TestHelper.createRoot:(Lcom/oracle/truffle/api/dsl/NodeFactory;[Ljava/lang/Object;)Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;
            astore 3 /* node */
        start local 3 // com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode node
         2: .line 152
            new java.util.concurrent.CountDownLatch
            dup
            bipush 25
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 4 /* threadsStarted */
        start local 4 // java.util.concurrent.CountDownLatch threadsStarted
         3: .line 154
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 5 /* beforeFirst */
        start local 5 // java.util.concurrent.CountDownLatch beforeFirst
         4: .line 155
            new java.util.concurrent.CountDownLatch
            dup
            bipush 25
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 6 /* executedFirst */
        start local 6 // java.util.concurrent.CountDownLatch executedFirst
         5: .line 157
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 7 /* beforeSecond */
        start local 7 // java.util.concurrent.CountDownLatch beforeSecond
         6: .line 158
            new java.util.concurrent.CountDownLatch
            dup
            bipush 25
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 8 /* executedSecond */
        start local 8 // java.util.concurrent.CountDownLatch executedSecond
         7: .line 160
            new java.util.concurrent.CountDownLatch
            dup
            iconst_1
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 9 /* beforeThird */
        start local 9 // java.util.concurrent.CountDownLatch beforeThird
         8: .line 161
            new java.util.concurrent.CountDownLatch
            dup
            bipush 25
            invokespecial java.util.concurrent.CountDownLatch.<init>:(I)V
            astore 10 /* executedThird */
        start local 10 // java.util.concurrent.CountDownLatch executedThird
         9: .line 163
            bipush 25
            anewarray java.lang.Thread
            astore 11 /* threads */
        start local 11 // java.lang.Thread[] threads
        10: .line 164
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        11: goto 15
        12: .line 165
      StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] int
      StackMap stack:
            aload 11 /* threads */
            iload 12 /* i */
            new java.lang.Thread
            dup
            new com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1
            dup
            aload 4 /* threadsStarted */
            aload 5 /* beforeFirst */
            aload 3 /* node */
            aload 1 /* executions */
            aload 6 /* executedFirst */
            aload 7 /* beforeSecond */
            aload 8 /* executedSecond */
            aload 9 /* beforeThird */
            aload 10 /* executedThird */
            invokespecial com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1.<init>:(Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;Ljava/util/concurrent/CountDownLatch;)V
            invokespecial java.lang.Thread.<init>:(Ljava/lang/Runnable;)V
            aastore
        13: .line 182
            aload 11 /* threads */
            iload 12 /* i */
            aaload
            invokevirtual java.lang.Thread.start:()V
        14: .line 164
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 12 /* i */
            aload 11 /* threads */
            arraylength
            if_icmplt 12
        end local 12 // int i
        16: .line 185
            aload 3 /* node */
            invokevirtual com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode.getNode:()Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;
            astore 12 /* checkedNode */
        start local 12 // com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode checkedNode
        17: .line 187
            aload 12 /* checkedNode */
            aload 2 /* order */
            iconst_0
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
        18: .line 189
            aload 4 /* threadsStarted */
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
        19: .line 190
            aload 5 /* beforeFirst */
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        20: .line 192
            aload 6 /* executedFirst */
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
        21: .line 193
            aload 12 /* checkedNode */
            aload 2 /* order */
            iconst_1
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
        22: .line 195
            aload 7 /* beforeSecond */
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        23: .line 196
            aload 8 /* executedSecond */
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
        24: .line 197
            aload 12 /* checkedNode */
            aload 2 /* order */
            iconst_2
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
        25: .line 199
            aload 9 /* beforeThird */
            invokevirtual java.util.concurrent.CountDownLatch.countDown:()V
        26: .line 200
            aload 10 /* executedThird */
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.await:(Ljava/util/concurrent/CountDownLatch;)V
        27: .line 201
            aload 12 /* checkedNode */
            aload 2 /* order */
            iconst_3
            invokestatic com.oracle.truffle.api.dsl.test.MergeSpecializationsTest.assertState:(Lcom/oracle/truffle/api/nodes/Node;[II)V
        28: .line 203
            aload 11 /* threads */
            dup
            astore 16
            arraylength
            istore 15
            iconst_0
            istore 14
            goto 35
      StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode top int int java.lang.Thread[]
      StackMap stack:
        29: aload 16
            iload 14
            aaload
            astore 13 /* thread */
        start local 13 // java.lang.Thread thread
        30: .line 205
            aload 13 /* thread */
            invokevirtual java.lang.Thread.join:()V
        31: .line 206
            goto 34
      StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode java.lang.Thread int int java.lang.Thread[]
      StackMap stack: java.lang.InterruptedException
        32: pop
        33: .line 207
            ldc "interrupted"
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
        end local 13 // java.lang.Thread thread
        34: .line 203
      StackMap locals: com.oracle.truffle.api.dsl.NodeFactory com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions int[] com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.util.concurrent.CountDownLatch java.lang.Thread[] com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode top int int java.lang.Thread[]
      StackMap stack:
            iinc 14 1
      StackMap locals:
      StackMap stack:
        35: iload 14
            iload 15
            if_icmplt 29
        36: .line 210
            return
        end local 12 // com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode checkedNode
        end local 11 // java.lang.Thread[] threads
        end local 10 // java.util.concurrent.CountDownLatch executedThird
        end local 9 // java.util.concurrent.CountDownLatch beforeThird
        end local 8 // java.util.concurrent.CountDownLatch executedSecond
        end local 7 // java.util.concurrent.CountDownLatch beforeSecond
        end local 6 // java.util.concurrent.CountDownLatch executedFirst
        end local 5 // java.util.concurrent.CountDownLatch beforeFirst
        end local 4 // java.util.concurrent.CountDownLatch threadsStarted
        end local 3 // com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode node
        end local 2 // int[] order
        end local 1 // com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions executions
        end local 0 // com.oracle.truffle.api.dsl.NodeFactory factory
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0         factory  Lcom/oracle/truffle/api/dsl/NodeFactory<TT;>;
            0   37     1      executions  Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;
            0   37     2           order  [I
            2   37     3            node  Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$TestRootNode<TT;>;
            3   37     4  threadsStarted  Ljava/util/concurrent/CountDownLatch;
            4   37     5     beforeFirst  Ljava/util/concurrent/CountDownLatch;
            5   37     6   executedFirst  Ljava/util/concurrent/CountDownLatch;
            6   37     7    beforeSecond  Ljava/util/concurrent/CountDownLatch;
            7   37     8  executedSecond  Ljava/util/concurrent/CountDownLatch;
            8   37     9     beforeThird  Ljava/util/concurrent/CountDownLatch;
            9   37    10   executedThird  Ljava/util/concurrent/CountDownLatch;
           10   37    11         threads  [Ljava/lang/Thread;
           11   16    12               i  I
           17   37    12     checkedNode  TT;
           30   34    13          thread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
          30    31      32  Class java.lang.InterruptedException
    Exceptions:
      throws java.lang.Exception
    Signature: <T:Lcom/oracle/truffle/api/dsl/test/TypeSystemTest$ValueNode;>(Lcom/oracle/truffle/api/dsl/NodeFactory<TT;>;Lcom/oracle/truffle/api/dsl/test/MergeSpecializationsTest$Executions;[I)V
    MethodParameters:
            Name  Flags
      factory     
      executions  final
      order       

  private static void assertState(com.oracle.truffle.api.nodes.Node, int[], int);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;[II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.oracle.truffle.api.nodes.Node node
        start local 1 // int[] expectedOrder
        start local 2 // int checkedIndices
         0: .line 213
            aload 0 /* node */
            iconst_3
            invokestatic com.oracle.truffle.api.dsl.test.StateBitTest.assertStateFields:(Lcom/oracle/truffle/api/nodes/Node;I)Ljava/util/BitSet;
            astore 3 /* set */
        start local 3 // java.util.BitSet set
         1: .line 214
            aload 3 /* set */
            invokevirtual java.util.BitSet.isEmpty:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals: java.util.BitSet
      StackMap stack:
         2: aload 3 /* set */
            invokevirtual java.util.BitSet.toLongArray:()[J
            iconst_0
            laload
            l2i
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* state */
        start local 4 // int state
         4: .line 215
            aload 1 /* expectedOrder */
            iconst_0
            iload 2 /* checkedIndices */
            invokestatic java.util.Arrays.sort:([III)V
         5: .line 216
            iconst_0
            istore 5 /* mask */
        start local 5 // int mask
         6: .line 217
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         7: goto 10
         8: .line 218
      StackMap locals: int int int
      StackMap stack:
            iload 5 /* mask */
            iconst_1
            aload 1 /* expectedOrder */
            iload 6 /* i */
            iaload
            iconst_1
            isub
            ishl
            ior
            istore 5 /* mask */
         9: .line 217
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 2 /* checkedIndices */
            if_icmplt 8
        end local 6 // int i
        11: .line 220
            iload 5 /* mask */
            i2l
            iload 4 /* state */
            bipush 7
            iand
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
        12: .line 221
            return
        end local 5 // int mask
        end local 4 // int state
        end local 3 // java.util.BitSet set
        end local 2 // int checkedIndices
        end local 1 // int[] expectedOrder
        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;
            0   13     1   expectedOrder  [I
            0   13     2  checkedIndices  I
            1   13     3             set  Ljava/util/BitSet;
            4   13     4           state  I
            6   13     5            mask  I
            7   11     6               i  I
    MethodParameters:
                Name  Flags
      node            
      expectedOrder   
      checkedIndices  

  private static void await(java.util.concurrent.CountDownLatch);
    descriptor: (Ljava/util/concurrent/CountDownLatch;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.concurrent.CountDownLatch latch
         0: .line 237
            aload 0 /* latch */
            invokevirtual java.util.concurrent.CountDownLatch.await:()V
         1: .line 238
            goto 4
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
         2: pop
         3: .line 239
            ldc "interrupted"
            invokestatic org.junit.Assert.fail:(Ljava/lang/String;)V
         4: .line 241
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.concurrent.CountDownLatch latch
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0  latch  Ljava/util/concurrent/CountDownLatch;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.InterruptedException
    MethodParameters:
       Name  Flags
      latch  final
}
SourceFile: "MergeSpecializationsTest.java"
NestMembers:
  com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1  com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions  com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestCachedNode  com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestNode
InnerClasses:
  com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$1
  private Executions = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$Executions of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
  abstract TestCachedNode = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestCachedNode of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
  abstract TestNode = com.oracle.truffle.api.dsl.test.MergeSpecializationsTest$TestNode of com.oracle.truffle.api.dsl.test.MergeSpecializationsTest
  public TestRootNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$TestRootNode of com.oracle.truffle.api.dsl.test.TypeSystemTest
  public ValueNode = com.oracle.truffle.api.dsl.test.TypeSystemTest$ValueNode of com.oracle.truffle.api.dsl.test.TypeSystemTest