class com.oracle.svm.reflect.target.ReflectionHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.svm.reflect.target.ReflectionHelper
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.target.ReflectionHelper this
         0: .line 32
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.reflect.target.ReflectionHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/reflect/target/ReflectionHelper;

  static com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable getHolder(com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable executable
         0: .line 34
            aload 0 /* executable */
            invokestatic com.oracle.svm.reflect.target.ReflectionHelper.getRoot:(Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            astore 1 /* holder */
        start local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable holder
         1: .line 35
            aload 1 /* holder */
            ifnonnull 3
         2: .line 36
            aload 0 /* executable */
            astore 1 /* holder */
         3: .line 38
      StackMap locals: com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable
      StackMap stack:
            aload 1 /* holder */
            areturn
        end local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable holder
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable executable
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0  executable  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            1    4     1      holder  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
    MethodParameters:
            Name  Flags
      executable  

  static com.oracle.svm.reflect.target.Target_java_lang_reflect_Method getHolder(com.oracle.svm.reflect.target.Target_java_lang_reflect_Method);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method method
         0: .line 42
            aload 0 /* method */
            invokestatic com.oracle.svm.reflect.target.ReflectionHelper.getRoot:(Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
            astore 1 /* holder */
        start local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method holder
         1: .line 43
            aload 1 /* holder */
            ifnonnull 3
         2: .line 44
            aload 0 /* method */
            astore 1 /* holder */
         3: .line 47
      StackMap locals: com.oracle.svm.reflect.target.Target_java_lang_reflect_Method
      StackMap stack:
            aload 1 /* holder */
            areturn
        end local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method holder
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  method  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
            1    4     1  holder  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
    MethodParameters:
        Name  Flags
      method  

  static com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor getHolder(com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor constructor
         0: .line 51
            aload 0 /* constructor */
            invokestatic com.oracle.svm.reflect.target.ReflectionHelper.getRoot:(Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
            astore 1 /* holder */
        start local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor holder
         1: .line 52
            aload 1 /* holder */
            ifnonnull 3
         2: .line 53
            aload 0 /* constructor */
            astore 1 /* holder */
         3: .line 56
      StackMap locals: com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor
      StackMap stack:
            aload 1 /* holder */
            areturn
        end local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor holder
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor constructor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0  constructor  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
            1    4     1       holder  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
    MethodParameters:
             Name  Flags
      constructor  

  static com.oracle.svm.reflect.target.Target_java_lang_reflect_Field getHolder(com.oracle.svm.reflect.target.Target_java_lang_reflect_Field);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Field;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Field;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Field field
         0: .line 60
            aload 0 /* field */
            getfield com.oracle.svm.reflect.target.Target_java_lang_reflect_Field.root:Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Field;
            astore 1 /* holder */
        start local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Field holder
         1: .line 61
            aload 1 /* holder */
            ifnonnull 3
         2: .line 62
            aload 0 /* field */
            astore 1 /* holder */
         3: .line 65
      StackMap locals: com.oracle.svm.reflect.target.Target_java_lang_reflect_Field
      StackMap stack:
            aload 1 /* holder */
            areturn
        end local 1 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Field holder
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Field field
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0   field  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Field;
            1    4     1  holder  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Field;
    MethodParameters:
       Name  Flags
      field  

  static <T> T requireNonNull(T, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.lang.Object object
        start local 1 // java.lang.String errorMessage
         0: .line 69
            aload 0 /* object */
            ifnonnull 2
         1: .line 70
            aload 1 /* errorMessage */
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
         2: .line 72
      StackMap locals:
      StackMap stack:
            aload 0 /* object */
            areturn
        end local 1 // java.lang.String errorMessage
        end local 0 // java.lang.Object object
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0        object  TT;
            0    3     1  errorMessage  Ljava/lang/String;
    Signature: <T:Ljava/lang/Object;>(TT;Ljava/lang/String;)TT;
    MethodParameters:
              Name  Flags
      object        
      errorMessage  

  private static com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable getRoot(com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable executable
         0: .line 76
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmpgt 2
         1: .line 77
            aload 0 /* executable */
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            areturn
         2: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* executable */
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable
            areturn
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable executable
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  executable  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
    MethodParameters:
            Name  Flags
      executable  

  private static com.oracle.svm.reflect.target.Target_java_lang_reflect_Method getRoot(com.oracle.svm.reflect.target.Target_java_lang_reflect_Method);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method method
         0: .line 84
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmpgt 2
         1: .line 85
            aload 0 /* method */
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Method
            areturn
         2: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* method */
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Method
            areturn
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  method  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Method;
    MethodParameters:
        Name  Flags
      method  

  private static com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor getRoot(com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor);
    descriptor: (Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;)Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor constructor
         0: .line 92
            getstatic org.graalvm.compiler.serviceprovider.JavaVersionUtil.JAVA_SPEC:I
            bipush 8
            if_icmpgt 2
         1: .line 93
            aload 0 /* constructor */
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_Executable.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Executable;
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor
            areturn
         2: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* constructor */
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject
            invokevirtual com.oracle.svm.reflect.target.Target_java_lang_reflect_AccessibleObject.getRoot:()Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_AccessibleObject;
            ldc Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
            invokestatic com.oracle.svm.core.SubstrateUtil.cast:(Ljava/lang/Object;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor
            areturn
        end local 0 // com.oracle.svm.reflect.target.Target_java_lang_reflect_Constructor constructor
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  constructor  Lcom/oracle/svm/reflect/target/Target_java_lang_reflect_Constructor;
    MethodParameters:
             Name  Flags
      constructor  
}
SourceFile: "ReflectionHelper.java"