public class com.oracle.svm.hosted.annotation.CustomSubstitution<T extends com.oracle.svm.hosted.annotation.CustomSubstitutionType<?, ?>> extends com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.annotation.CustomSubstitution
super_class: com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
{
protected final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final java.util.Map<jdk.vm.ci.meta.ResolvedJavaType, T> typeSubstitutions;
descriptor: Ljava/util/Map;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaType;TT;>;
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/annotation/CustomSubstitution;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(jdk.vm.ci.meta.MetaAccessProvider);
descriptor: (Ljdk/vm/ci/meta/MetaAccessProvider;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.annotation.CustomSubstitution.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.annotation.CustomSubstitution.typeSubstitutions:Ljava/util/Map;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/annotation/CustomSubstitution<TT;>;
0 4 1 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
MethodParameters:
Name Flags
metaAccess
protected T getSubstitutionType(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/hosted/annotation/CustomSubstitutionType;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.annotation.CustomSubstitution.typeSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.annotation.CustomSubstitutionType
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/annotation/CustomSubstitution<TT;>;
0 1 1 original Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;)TT;
MethodParameters:
Name Flags
original
protected void addSubstitutionType(jdk.vm.ci.meta.ResolvedJavaType, );
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Lcom/oracle/svm/hosted/annotation/CustomSubstitutionType;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
ifne 1
aload 2
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.annotation.CustomSubstitution.typeSubstitutions:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/annotation/CustomSubstitution<TT;>;
0 3 1 orignal Ljdk/vm/ci/meta/ResolvedJavaType;
0 3 2 substitution TT;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;TT;)V
MethodParameters:
Name Flags
orignal
substitution
protected static java.lang.String canonicalMethodName(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
astore 1
start local 1 1: goto 3
2: StackMap locals: java.lang.String
StackMap stack:
aload 1
iconst_0
aload 1
invokevirtual java.lang.String.length:()I
iconst_1
isub
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 1
3: StackMap locals:
StackMap stack:
aload 1
ldc "*"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
ifne 2
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 5 1 result Ljava/lang/String;
MethodParameters:
Name Flags
method
protected static java.util.List<org.graalvm.collections.Pair<java.lang.String, jdk.vm.ci.meta.ResolvedJavaType>> findAttributes(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/List;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.util.List top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
invokestatic com.oracle.svm.hosted.annotation.CustomSubstitution.canonicalMethodName:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
astore 6
start local 6 4: aload 6
ldc "equals"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
aload 6
ldc "hashCode"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
aload 6
ldc "toString"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
aload 6
ldc "annotationType"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 7
5: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.getReturnType:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
checkcast jdk.vm.ci.meta.ResolvedJavaType
astore 7
start local 7 6: aload 1
aload 6
aload 7
invokestatic org.graalvm.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/collections/Pair;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 6 end local 2 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 2
9: aload 1
invokedynamic apply()Ljava/util/function/Function;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)Ljava/lang/Object;
org/graalvm/collections/Pair.getLeft()Ljava/lang/Object; (5)
(Lorg/graalvm/collections/Pair;)Ljava/lang/String;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
10: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 annotationType Ljdk/vm/ci/meta/ResolvedJavaType;
1 11 1 attributes Ljava/util/List<Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;>;>;
3 7 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
4 7 6 methodName Ljava/lang/String;
6 7 7 returnType Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/List<Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;>;>;
MethodParameters:
Name Flags
annotationType
protected static jdk.vm.ci.meta.ResolvedJavaMethod findMethod(jdk.vm.ci.meta.ResolvedJavaType, java.lang.String, jdk.vm.ci.meta.ResolvedJavaType[]);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;[Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x008c) ACC_PROTECTED, ACC_STATIC, ACC_VARARGS
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getDeclaredMethods:()[Ljdk/vm/ci/meta/ResolvedJavaMethod;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 14
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 4
invokestatic com.oracle.svm.hosted.annotation.CustomSubstitution.canonicalMethodName:(Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 13
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
iconst_0
invokeinterface jdk.vm.ci.meta.Signature.getParameterCount:(Z)I
aload 2
arraylength
if_icmpne 13
4: aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getSignature:()Ljdk/vm/ci/meta/Signature;
astore 8
start local 8 5: iconst_0
istore 9
start local 9 6: goto 10
7: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod int int jdk.vm.ci.meta.ResolvedJavaMethod[] jdk.vm.ci.meta.Signature int
StackMap stack:
aload 8
iload 9
aconst_null
invokeinterface jdk.vm.ci.meta.Signature.getParameterType:(ILjdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaType;
aconst_null
invokeinterface jdk.vm.ci.meta.JavaType.resolve:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 2
iload 9
aaload
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isAssignableFrom:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 9
8: goto 13
9: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
10: iload 9
aload 2
arraylength
if_icmplt 7
end local 9 11: getstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
ifne 12
aload 3
ifnull 12
new java.lang.AssertionError
dup
ldc "more than one matching method found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
12: StackMap locals:
StackMap stack:
aload 4
astore 3
end local 8 end local 4 13: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod top int int jdk.vm.ci.meta.ResolvedJavaMethod[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
iload 6
if_icmplt 2
15: getstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
ifne 16
aload 3
ifnonnull 16
new java.lang.AssertionError
dup
ldc "no matching method found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
16: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaType[] jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 declaringType Ljdk/vm/ci/meta/ResolvedJavaType;
0 17 1 name Ljava/lang/String;
0 17 2 argumentTypes [Ljdk/vm/ci/meta/ResolvedJavaType;
1 17 3 result Ljdk/vm/ci/meta/ResolvedJavaMethod;
3 13 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
5 13 8 sig Ljdk/vm/ci/meta/Signature;
6 11 9 i I
MethodParameters:
Name Flags
declaringType
name
argumentTypes
protected static jdk.vm.ci.meta.ResolvedJavaField findField(jdk.vm.ci.meta.ResolvedJavaType, java.lang.String);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
iconst_0
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaField top int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
4: getstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
ifne 5
aload 2
ifnull 5
new java.lang.AssertionError
dup
ldc "more than one matching field found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
5: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
aload 3
astore 2
end local 3 6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaField top int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 2
8: getstatic com.oracle.svm.hosted.annotation.CustomSubstitution.$assertionsDisabled:Z
ifne 9
aload 2
ifnonnull 9
new java.lang.AssertionError
dup
ldc "no matching field found"
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
9: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 declaringType Ljdk/vm/ci/meta/ResolvedJavaType;
0 10 1 name Ljava/lang/String;
1 10 2 result Ljdk/vm/ci/meta/ResolvedJavaField;
3 6 3 field Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
declaringType
name
}
Signature: <T:Lcom/oracle/svm/hosted/annotation/CustomSubstitutionType<**>;>Lcom/oracle/graal/pointsto/infrastructure/SubstitutionProcessor;
SourceFile: "CustomSubstitution.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles