public final class com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest extends com.oracle.truffle.llvm.tests.interop.InteropTestBase
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest
  super_class: com.oracle.truffle.llvm.tests.interop.InteropTestBase
{
  private static java.lang.Object testLibrary;
    descriptor: Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  public java.lang.String name;
    descriptor: Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 0)

  public java.lang.Object value;
    descriptor: Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameter(value = 1)

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
         0: .line 53
            aload 0 /* this */
            invokespecial com.oracle.truffle.llvm.tests.interop.InteropTestBase.<init>:()V
            return
        end local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest;

  public static void loadTestBitcode();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 59
            ldc "nameBasedInterop.c"
            invokestatic com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.loadTestBitcodeInternal:(Ljava/lang/String;)Ljava/lang/Object;
            putstatic com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.testLibrary:Ljava/lang/Object;
         1: .line 60
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.junit.BeforeClass()

  public static java.util.Collection<java.lang.Object[]> data();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=1, args_size=0
         0: .line 64
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* tests */
        start local 0 // java.util.ArrayList tests
         1: .line 65
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "B"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         2: .line 66
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "S"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         3: .line 67
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "I"
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 68
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "L"
            aastore
            dup
            iconst_1
            ldc 5
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 69
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "F"
            aastore
            dup
            iconst_1
            ldc 5.7
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         6: .line 70
            aload 0 /* tests */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc "D"
            aastore
            dup
            iconst_1
            ldc 5.7
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         7: .line 71
            aload 0 /* tests */
            areturn
        end local 0 // java.util.ArrayList tests
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            1    8     0  tests  Ljava/util/ArrayList<[Ljava/lang/Object;>;
    Signature: ()Ljava/util/Collection<[Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.runners.Parameterized$Parameters(name = "{0}")

  public void getStruct(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
        start local 1 // com.oracle.truffle.api.CallTarget get
         0: .line 86
            invokestatic com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.makeStruct:()Ljava/util/Map;
            astore 2 /* members */
        start local 2 // java.util.Map members
         1: .line 87
            aload 2 /* members */
            new java.lang.StringBuilder
            dup
            ldc "value"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* expected */
        start local 3 // java.lang.Object expected
         2: .line 88
            aload 1 /* get */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.values.StructObject
            dup
            aload 2 /* members */
            invokespecial com.oracle.truffle.llvm.tests.interop.values.StructObject.<init>:(Ljava/util/Map;)V
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 4 /* actual */
        start local 4 // java.lang.Object actual
         3: .line 89
            aload 3 /* expected */
            aload 4 /* actual */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 90
            return
        end local 4 // java.lang.Object actual
        end local 3 // java.lang.Object expected
        end local 2 // java.util.Map members
        end local 1 // com.oracle.truffle.api.CallTarget get
        end local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest;
            0    5     1       get  Lcom/oracle/truffle/api/CallTarget;
            1    5     2   members  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2    5     3  expected  Ljava/lang/Object;
            3    5     4    actual  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest$GetStructNode;)
    MethodParameters:
      Name  Flags
      get   

  public void setStruct(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
        start local 1 // com.oracle.truffle.api.CallTarget set
         0: .line 101
            invokestatic com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.makeStruct:()Ljava/util/Map;
            astore 2 /* members */
        start local 2 // java.util.Map members
         1: .line 102
            aload 1 /* set */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.values.StructObject
            dup
            aload 2 /* members */
            invokespecial com.oracle.truffle.llvm.tests.interop.values.StructObject.<init>:(Ljava/util/Map;)V
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 103
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aload 2 /* members */
            new java.lang.StringBuilder
            dup
            ldc "value"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 104
            return
        end local 2 // java.util.Map members
        end local 1 // com.oracle.truffle.api.CallTarget set
        end local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest;
            0    4     1      set  Lcom/oracle/truffle/api/CallTarget;
            1    4     2  members  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest$SetStructNode;)
    MethodParameters:
      Name  Flags
      set   

  public void getArray(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
        start local 1 // com.oracle.truffle.api.CallTarget get
         0: .line 115
            bipush 42
            anewarray java.lang.Object
            astore 2 /* arr */
        start local 2 // java.lang.Object[] arr
         1: .line 116
            aload 2 /* arr */
            iconst_3
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aastore
         2: .line 117
            aload 1 /* get */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.values.ArrayObject
            dup
            aload 2 /* arr */
            invokespecial com.oracle.truffle.llvm.tests.interop.values.ArrayObject.<init>:([Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            iconst_3
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            astore 3 /* actual */
        start local 3 // java.lang.Object actual
         3: .line 118
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aload 3 /* actual */
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 119
            return
        end local 3 // java.lang.Object actual
        end local 2 // java.lang.Object[] arr
        end local 1 // com.oracle.truffle.api.CallTarget get
        end local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest;
            0    5     1     get  Lcom/oracle/truffle/api/CallTarget;
            1    5     2     arr  [Ljava/lang/Object;
            3    5     3  actual  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest$GetArrayNode;)
    MethodParameters:
      Name  Flags
      get   

  public void setArray(com.oracle.truffle.api.CallTarget);
    descriptor: (Lcom/oracle/truffle/api/CallTarget;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
        start local 1 // com.oracle.truffle.api.CallTarget set
         0: .line 130
            bipush 42
            anewarray java.lang.Object
            astore 2 /* arr */
        start local 2 // java.lang.Object[] arr
         1: .line 131
            aload 1 /* set */
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            new com.oracle.truffle.llvm.tests.interop.values.ArrayObject
            dup
            aload 2 /* arr */
            invokespecial com.oracle.truffle.llvm.tests.interop.values.ArrayObject.<init>:([Ljava/lang/Object;)V
            aastore
            dup
            iconst_1
            iconst_5
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aastore
            invokeinterface com.oracle.truffle.api.CallTarget.call:([Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 132
            aload 0 /* this */
            getfield com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest.value:Ljava/lang/Object;
            aload 2 /* arr */
            iconst_5
            aaload
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         3: .line 133
            return
        end local 2 // java.lang.Object[] arr
        end local 1 // com.oracle.truffle.api.CallTarget set
        end local 0 // com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest;
            0    4     1   set  Lcom/oracle/truffle/api/CallTarget;
            1    4     2   arr  [Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
    RuntimeVisibleParameterAnnotations: 
      0:
        com.oracle.truffle.tck.TruffleRunner$Inject(value = Lcom/oracle/truffle/llvm/tests/interop/NameBasedInteropTest$SetArrayNode;)
    MethodParameters:
      Name  Flags
      set   

  private static java.util.Map<java.lang.String, java.lang.Object> makeStruct();
    descriptor: ()Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 136
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 0 /* values */
        start local 0 // java.util.HashMap values
         1: .line 137
            aload 0 /* values */
            ldc "valueBool"
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 138
            aload 0 /* values */
            ldc "valueB"
            bipush 40
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 139
            aload 0 /* values */
            ldc "valueS"
            bipush 41
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 140
            aload 0 /* values */
            ldc "valueI"
            bipush 42
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 141
            aload 0 /* values */
            ldc "valueL"
            ldc 43
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 142
            aload 0 /* values */
            ldc "valueF"
            ldc 44.5
            invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 143
            aload 0 /* values */
            ldc "valueD"
            ldc 45.5
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 144
            aload 0 /* values */
            areturn
        end local 0 // java.util.HashMap values
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    9     0  values  Ljava/util/HashMap<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
}
SourceFile: "NameBasedInteropTest.java"
NestMembers:
  com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$GetArrayNode  com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$GetStructNode  com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$SetArrayNode  com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$SetStructNode
InnerClasses:
  public GetArrayNode = com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$GetArrayNode of com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest
  public GetStructNode = com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$GetStructNode of com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest
  public SetArrayNode = com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$SetArrayNode of com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest
  public SetStructNode = com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest$SetStructNode of com.oracle.truffle.llvm.tests.interop.NameBasedInteropTest
  public abstract Inject = com.oracle.truffle.tck.TruffleRunner$Inject of com.oracle.truffle.tck.TruffleRunner
  public abstract Parameter = org.junit.runners.Parameterized$Parameter of org.junit.runners.Parameterized
  public abstract Parameters = org.junit.runners.Parameterized$Parameters of org.junit.runners.Parameterized
  public abstract UseParametersRunnerFactory = org.junit.runners.Parameterized$UseParametersRunnerFactory of org.junit.runners.Parameterized
    RuntimeVisibleAnnotations: 
      org.junit.runner.RunWith(value = Lorg/junit/runners/Parameterized;)
      org.junit.runners.Parameterized$UseParametersRunnerFactory(value = Lcom/oracle/truffle/tck/TruffleRunner$ParametersFactory;)