public class com.oracle.truffle.api.test.polyglot.TypeLiteralTest
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.truffle.api.test.polyglot.TypeLiteralTest
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
0: .line 59
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;
public void testSimpleMap();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
0: .line 63
new com.oracle.truffle.api.test.polyglot.TypeLiteralTest$1
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.polyglot.TypeLiteralTest$1.<init>:(Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;)V
astore 1 /* literal */
start local 1 // org.graalvm.polyglot.TypeLiteral literal
1: .line 65
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getType:()Ljava/lang/reflect/Type;
astore 2 /* type */
start local 2 // java.lang.reflect.Type type
2: .line 66
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getRawType:()Ljava/lang/Class;
astore 3 /* rawType */
start local 3 // java.lang.Class rawType
3: .line 67
ldc Ljava/util/Map;
aload 3 /* rawType */
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
4: .line 68
aload 2 /* type */
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
5: .line 69
aload 2 /* type */
checkcast java.lang.reflect.ParameterizedType
astore 4 /* map */
start local 4 // java.lang.reflect.ParameterizedType map
6: .line 70
ldc Ljava/lang/String;
aload 4 /* map */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
7: .line 71
ldc [Ljava/lang/Object;
aload 4 /* map */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
8: .line 72
return
end local 4 // java.lang.reflect.ParameterizedType map
end local 3 // java.lang.Class rawType
end local 2 // java.lang.reflect.Type type
end local 1 // org.graalvm.polyglot.TypeLiteral literal
end local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;
1 9 1 literal Lorg/graalvm/polyglot/TypeLiteral<*>;
2 9 2 type Ljava/lang/reflect/Type;
3 9 3 rawType Ljava/lang/Class<*>;
6 9 4 map Ljava/lang/reflect/ParameterizedType;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testSimpleArray();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
0: .line 76
new com.oracle.truffle.api.test.polyglot.TypeLiteralTest$2
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.polyglot.TypeLiteralTest$2.<init>:(Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;)V
astore 1 /* literal */
start local 1 // org.graalvm.polyglot.TypeLiteral literal
1: .line 78
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getType:()Ljava/lang/reflect/Type;
astore 2 /* type */
start local 2 // java.lang.reflect.Type type
2: .line 79
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getRawType:()Ljava/lang/Class;
astore 3 /* rawType */
start local 3 // java.lang.Class rawType
3: .line 80
ldc [Ljava/util/List;
aload 3 /* rawType */
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
4: .line 81
aload 2 /* type */
ldc Ljava/lang/reflect/GenericArrayType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
5: .line 82
aload 2 /* type */
checkcast java.lang.reflect.GenericArrayType
astore 4 /* arr */
start local 4 // java.lang.reflect.GenericArrayType arr
6: .line 83
aload 4 /* arr */
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
7: .line 84
aload 4 /* arr */
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
checkcast java.lang.reflect.ParameterizedType
astore 5 /* list */
start local 5 // java.lang.reflect.ParameterizedType list
8: .line 85
ldc Ljava/lang/String;
aload 5 /* list */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
9: .line 86
return
end local 5 // java.lang.reflect.ParameterizedType list
end local 4 // java.lang.reflect.GenericArrayType arr
end local 3 // java.lang.Class rawType
end local 2 // java.lang.reflect.Type type
end local 1 // org.graalvm.polyglot.TypeLiteral literal
end local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;
1 10 1 literal Lorg/graalvm/polyglot/TypeLiteral<*>;
2 10 2 type Ljava/lang/reflect/Type;
3 10 3 rawType Ljava/lang/Class<*>;
6 10 4 arr Ljava/lang/reflect/GenericArrayType;
8 10 5 list Ljava/lang/reflect/ParameterizedType;
RuntimeVisibleAnnotations:
org.junit.Test()
public void testComplexLiteral();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=1
start local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
0: .line 90
new com.oracle.truffle.api.test.polyglot.TypeLiteralTest$3
dup
aload 0 /* this */
invokespecial com.oracle.truffle.api.test.polyglot.TypeLiteralTest$3.<init>:(Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;)V
astore 1 /* literal */
start local 1 // org.graalvm.polyglot.TypeLiteral literal
1: .line 92
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getType:()Ljava/lang/reflect/Type;
astore 2 /* type */
start local 2 // java.lang.reflect.Type type
2: .line 93
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getRawType:()Ljava/lang/Class;
astore 3 /* rawType */
start local 3 // java.lang.Class rawType
3: .line 94
ldc Ljava/util/List;
aload 3 /* rawType */
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
4: .line 95
aload 2 /* type */
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
5: .line 96
aload 1 /* literal */
invokevirtual org.graalvm.polyglot.TypeLiteral.getType:()Ljava/lang/reflect/Type;
checkcast java.lang.reflect.ParameterizedType
astore 4 /* list */
start local 4 // java.lang.reflect.ParameterizedType list
6: .line 97
aload 4 /* list */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
7: .line 99
aload 4 /* list */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
checkcast java.lang.reflect.ParameterizedType
astore 5 /* map1 */
start local 5 // java.lang.reflect.ParameterizedType map1
8: .line 100
ldc Ljava/util/Map;
aload 5 /* map1 */
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
9: .line 101
ldc Ljava/lang/Integer;
aload 5 /* map1 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
10: .line 102
aload 5 /* map1 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
11: .line 104
aload 5 /* map1 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
checkcast java.lang.reflect.ParameterizedType
astore 6 /* map2 */
start local 6 // java.lang.reflect.ParameterizedType map2
12: .line 105
ldc Ljava/util/Map;
aload 6 /* map2 */
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
13: .line 106
ldc Ljava/lang/String;
aload 6 /* map2 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
14: .line 107
aload 6 /* map2 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
ldc Ljava/lang/reflect/GenericArrayType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
15: .line 109
aload 6 /* map2 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
checkcast java.lang.reflect.GenericArrayType
astore 7 /* arr */
start local 7 // java.lang.reflect.GenericArrayType arr
16: .line 110
aload 7 /* arr */
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
17: .line 112
aload 7 /* arr */
invokeinterface java.lang.reflect.GenericArrayType.getGenericComponentType:()Ljava/lang/reflect/Type;
checkcast java.lang.reflect.ParameterizedType
astore 8 /* map3 */
start local 8 // java.lang.reflect.ParameterizedType map3
18: .line 113
ldc Ljava/util/Map;
aload 8 /* map3 */
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
19: .line 114
aload 8 /* map3 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
ldc Ljava/lang/reflect/WildcardType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
20: .line 115
aload 8 /* map3 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
checkcast java.lang.reflect.WildcardType
astore 9 /* key3 */
start local 9 // java.lang.reflect.WildcardType key3
21: .line 116
ldc Ljava/lang/Number;
aload 9 /* key3 */
invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
22: .line 117
lconst_0
aload 9 /* key3 */
invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
arraylength
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
23: .line 118
aload 8 /* map3 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
ldc Ljava/lang/reflect/ParameterizedType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
24: .line 120
aload 8 /* map3 */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
checkcast java.lang.reflect.ParameterizedType
astore 10 /* function */
start local 10 // java.lang.reflect.ParameterizedType function
25: .line 121
ldc Ljava/util/function/Function;
aload 10 /* function */
invokeinterface java.lang.reflect.ParameterizedType.getRawType:()Ljava/lang/reflect/Type;
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
26: .line 122
ldc Ljava/lang/Long;
aload 10 /* function */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
27: .line 123
aload 10 /* function */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
ldc Ljava/lang/reflect/WildcardType;
invokestatic org.hamcrest.CoreMatchers.instanceOf:(Ljava/lang/Class;)Lorg/hamcrest/Matcher;
invokestatic org.junit.Assert.assertThat:(Ljava/lang/Object;Lorg/hamcrest/Matcher;)V
28: .line 124
aload 10 /* function */
invokeinterface java.lang.reflect.ParameterizedType.getActualTypeArguments:()[Ljava/lang/reflect/Type;
iconst_1
aaload
checkcast java.lang.reflect.WildcardType
astore 11 /* wc */
start local 11 // java.lang.reflect.WildcardType wc
29: .line 125
ldc Ljava/lang/Object;
aload 11 /* wc */
invokeinterface java.lang.reflect.WildcardType.getUpperBounds:()[Ljava/lang/reflect/Type;
iconst_0
aaload
invokestatic org.junit.Assert.assertSame:(Ljava/lang/Object;Ljava/lang/Object;)V
30: .line 126
lconst_0
aload 11 /* wc */
invokeinterface java.lang.reflect.WildcardType.getLowerBounds:()[Ljava/lang/reflect/Type;
arraylength
i2l
invokestatic org.junit.Assert.assertEquals:(JJ)V
31: .line 127
return
end local 11 // java.lang.reflect.WildcardType wc
end local 10 // java.lang.reflect.ParameterizedType function
end local 9 // java.lang.reflect.WildcardType key3
end local 8 // java.lang.reflect.ParameterizedType map3
end local 7 // java.lang.reflect.GenericArrayType arr
end local 6 // java.lang.reflect.ParameterizedType map2
end local 5 // java.lang.reflect.ParameterizedType map1
end local 4 // java.lang.reflect.ParameterizedType list
end local 3 // java.lang.Class rawType
end local 2 // java.lang.reflect.Type type
end local 1 // org.graalvm.polyglot.TypeLiteral literal
end local 0 // com.oracle.truffle.api.test.polyglot.TypeLiteralTest this
LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/truffle/api/test/polyglot/TypeLiteralTest;
1 32 1 literal Lorg/graalvm/polyglot/TypeLiteral<*>;
2 32 2 type Ljava/lang/reflect/Type;
3 32 3 rawType Ljava/lang/Class<*>;
6 32 4 list Ljava/lang/reflect/ParameterizedType;
8 32 5 map1 Ljava/lang/reflect/ParameterizedType;
12 32 6 map2 Ljava/lang/reflect/ParameterizedType;
16 32 7 arr Ljava/lang/reflect/GenericArrayType;
18 32 8 map3 Ljava/lang/reflect/ParameterizedType;
21 32 9 key3 Ljava/lang/reflect/WildcardType;
25 32 10 function Ljava/lang/reflect/ParameterizedType;
29 32 11 wc Ljava/lang/reflect/WildcardType;
RuntimeVisibleAnnotations:
org.junit.Test()
}
SourceFile: "TypeLiteralTest.java"
NestMembers:
com.oracle.truffle.api.test.polyglot.TypeLiteralTest$1 com.oracle.truffle.api.test.polyglot.TypeLiteralTest$2 com.oracle.truffle.api.test.polyglot.TypeLiteralTest$3
InnerClasses:
com.oracle.truffle.api.test.polyglot.TypeLiteralTest$1
com.oracle.truffle.api.test.polyglot.TypeLiteralTest$2
com.oracle.truffle.api.test.polyglot.TypeLiteralTest$3