public class com.oracle.svm.hosted.snippets.ReflectionPlugins
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.hosted.snippets.ReflectionPlugins
  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.svm.hosted.snippets.ReflectionPlugins this
         0: .line 63
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.svm.hosted.snippets.ReflectionPlugins this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/svm/hosted/snippets/ReflectionPlugins;

  public static void registerInvocationPlugins(com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, com.oracle.svm.hosted.SVMHost, boolean, boolean);
    descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=7
        start local 0 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        start local 1 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 2 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 4 // com.oracle.svm.hosted.SVMHost hostVM
        start local 5 // boolean analysis
        start local 6 // boolean hosted
         0: .line 82
            iload 6 /* hosted */
            ifeq 3
            iload 5 /* analysis */
            ifeq 3
         1: .line 83
            ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
            invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
            ifne 3
         2: .line 84
            ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
            dup
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.<init>:()V
            invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
         3: .line 88
      StackMap locals:
      StackMap stack:
            aload 0 /* imageClassLoader */
            aload 1 /* snippetReflection */
            aload 2 /* annotationSubstitutions */
            aload 3 /* plugins */
            aload 4 /* hostVM */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.registerClassPlugins:(Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
         4: .line 89
            return
        end local 6 // boolean hosted
        end local 5 // boolean analysis
        end local 4 // com.oracle.svm.hosted.SVMHost hostVM
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        end local 2 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        end local 1 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 0 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    5     0         imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            0    5     1        snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0    5     2  annotationSubstitutions  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0    5     3                  plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    5     4                   hostVM  Lcom/oracle/svm/hosted/SVMHost;
            0    5     5                 analysis  Z
            0    5     6                   hosted  Z
    MethodParameters:
                         Name  Flags
      imageClassLoader         
      snippetReflection        
      annotationSubstitutions  
      plugins                  
      hostVM                   
      analysis                 
      hosted                   

  private static void registerClassPlugins(com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, com.oracle.svm.hosted.SVMHost, boolean, boolean);
    descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Lcom/oracle/svm/hosted/SVMHost;ZZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=12, locals=8, args_size=7
        start local 0 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        start local 1 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 2 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 4 // com.oracle.svm.hosted.SVMHost hostVM
        start local 5 // boolean analysis
        start local 6 // boolean hosted
         0: .line 93
            new org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration
            dup
            aload 3 /* plugins */
            ldc Ljava/lang/Class;
            invokespecial org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.<init>:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;)V
            astore 7 /* r */
        start local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
         1: .line 95
            aload 7 /* r */
            ldc "forName"
            ldc Ljava/lang/String;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$1
            dup
            aload 4 /* hostVM */
            aload 0 /* imageClassLoader */
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$1.<init>:(Lcom/oracle/svm/hosted/SVMHost;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register1:(Ljava/lang/String;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         2: .line 102
            aload 7 /* r */
            ldc "forName"
            ldc Ljava/lang/String;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            ldc Ljava/lang/ClassLoader;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$2
            dup
            aload 4 /* hostVM */
            aload 0 /* imageClassLoader */
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$2.<init>:(Lcom/oracle/svm/hosted/SVMHost;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         3: .line 109
            aload 7 /* r */
            ldc "getDeclaredField"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/String;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$3
            dup
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$3.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         4: .line 116
            aload 7 /* r */
            ldc "getField"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/String;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$4
            dup
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$4.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         5: .line 123
            aload 7 /* r */
            ldc "getDeclaredMethod"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/String;
            ldc [Ljava/lang/Class;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$5
            dup
            aload 2 /* annotationSubstitutions */
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$5.<init>:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         6: .line 130
            aload 7 /* r */
            ldc "getMethod"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc Ljava/lang/String;
            ldc [Ljava/lang/Class;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$6
            dup
            aload 2 /* annotationSubstitutions */
            aload 1 /* snippetReflection */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$6.<init>:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register3:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         7: .line 137
            aload 7 /* r */
            ldc "getDeclaredConstructor"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc [Ljava/lang/Class;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$7
            dup
            aload 1 /* snippetReflection */
            aload 2 /* annotationSubstitutions */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$7.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         8: .line 144
            aload 7 /* r */
            ldc "getConstructor"
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            ldc [Ljava/lang/Class;
            new com.oracle.svm.hosted.snippets.ReflectionPlugins$8
            dup
            aload 1 /* snippetReflection */
            aload 2 /* annotationSubstitutions */
            iload 5 /* analysis */
            iload 6 /* hosted */
            invokespecial com.oracle.svm.hosted.snippets.ReflectionPlugins$8.<init>:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZ)V
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration.register2:(Ljava/lang/String;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;)V
         9: .line 150
            return
        end local 7 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration r
        end local 6 // boolean hosted
        end local 5 // boolean analysis
        end local 4 // com.oracle.svm.hosted.SVMHost hostVM
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        end local 2 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        end local 1 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 0 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   10     0         imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            0   10     1        snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   10     2  annotationSubstitutions  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   10     3                  plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0   10     4                   hostVM  Lcom/oracle/svm/hosted/SVMHost;
            0   10     5                 analysis  Z
            0   10     6                   hosted  Z
            1   10     7                        r  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Registration;
    MethodParameters:
                         Name  Flags
      imageClassLoader         
      snippetReflection        
      annotationSubstitutions  
      plugins                  
      hostVM                   
      analysis                 
      hosted                   

  private static boolean processForName(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, com.oracle.svm.hosted.SVMHost, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, com.oracle.svm.hosted.ImageClassLoader, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lcom/oracle/svm/hosted/SVMHost;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/hosted/ImageClassLoader;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=9
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // com.oracle.svm.hosted.SVMHost host
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 3 // org.graalvm.compiler.nodes.ValueNode name
        start local 4 // org.graalvm.compiler.nodes.ValueNode initialize
        start local 5 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        start local 6 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 7 // boolean analysis
        start local 8 // boolean hosted
         0: .line 154
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 17
            aload 4 /* initialize */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 17
         1: .line 155
            aload 6 /* snippetReflection */
            ldc Ljava/lang/String;
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* className */
        start local 9 // java.lang.String className
         2: .line 156
            aload 5 /* imageClassLoader */
            aload 9 /* className */
            invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
            invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 10 /* clazz */
        start local 10 // java.lang.Class clazz
         3: .line 157
            aload 10 /* clazz */
            ifnonnull 5
         4: .line 158
            aload 0 /* b */
            aload 2 /* targetMethod */
            iload 7 /* analysis */
            iload 8 /* hosted */
            aload 9 /* className */
            ldc Ljava/lang/ClassNotFoundException;
            aload 9 /* className */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
            ireturn
         5: .line 160
      StackMap locals: java.lang.String java.lang.Class
      StackMap stack:
            iload 7 /* analysis */
            iload 8 /* hosted */
            aload 0 /* b */
            aload 10 /* clazz */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Class
            astore 11 /* intrinsic */
        start local 11 // java.lang.Class intrinsic
         6: .line 161
            aload 11 /* intrinsic */
            ifnonnull 8
         7: .line 162
            iconst_0
            ireturn
         8: .line 164
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 10 /* clazz */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 12 /* type */
        start local 12 // jdk.vm.ci.meta.ResolvedJavaType type
         9: .line 165
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 12 /* type */
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.asJavaClass:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/JavaConstant;
            astore 13 /* hub */
        start local 13 // jdk.vm.ci.meta.JavaConstant hub
        10: .line 166
            aload 0 /* b */
            aload 2 /* targetMethod */
            aload 13 /* hub */
            aload 9 /* className */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
        11: .line 167
            aload 4 /* initialize */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.JavaConstant.asInt:()I
            ifeq 12
            iconst_1
            goto 13
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.JavaConstant
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: istore 14 /* doInitialize */
        start local 14 // boolean doInitialize
        14: .line 168
            iload 14 /* doInitialize */
            ifeq 16
            aload 1 /* host */
            invokevirtual com.oracle.svm.hosted.SVMHost.getClassInitializationSupport:()Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
            aload 10 /* clazz */
            invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.shouldInitializeAtRuntime:(Ljava/lang/Class;)Z
            ifeq 16
        15: .line 169
            aload 0 /* b */
            aload 13 /* hub */
            invokestatic com.oracle.svm.hosted.phases.SubstrateClassInitializationPlugin.emitEnsureClassInitialized:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/JavaConstant;)V
        16: .line 171
      StackMap locals: int
      StackMap stack:
            iconst_1
            ireturn
        end local 14 // boolean doInitialize
        end local 13 // jdk.vm.ci.meta.JavaConstant hub
        end local 12 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 11 // java.lang.Class intrinsic
        end local 10 // java.lang.Class clazz
        end local 9 // java.lang.String className
        17: .line 174
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext com.oracle.svm.hosted.SVMHost jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.ImageClassLoader org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // boolean hosted
        end local 7 // boolean analysis
        end local 6 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 5 // com.oracle.svm.hosted.ImageClassLoader imageClassLoader
        end local 4 // org.graalvm.compiler.nodes.ValueNode initialize
        end local 3 // org.graalvm.compiler.nodes.ValueNode name
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 1 // com.oracle.svm.hosted.SVMHost host
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   18     0                  b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   18     1               host  Lcom/oracle/svm/hosted/SVMHost;
            0   18     2       targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   18     3               name  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     4         initialize  Lorg/graalvm/compiler/nodes/ValueNode;
            0   18     5   imageClassLoader  Lcom/oracle/svm/hosted/ImageClassLoader;
            0   18     6  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   18     7           analysis  Z
            0   18     8             hosted  Z
            2   17     9          className  Ljava/lang/String;
            3   17    10              clazz  Ljava/lang/Class<*>;
            6   17    11          intrinsic  Ljava/lang/Class<*>;
            9   17    12               type  Ljdk/vm/ci/meta/ResolvedJavaType;
           10   17    13                hub  Ljdk/vm/ci/meta/JavaConstant;
           14   17    14       doInitialize  Z
    MethodParameters:
                   Name  Flags
      b                  
      host               
      targetMethod       
      name               
      initialize         
      imageClassLoader   
      snippetReflection  
      analysis           
      hosted             

  private static boolean processGetField(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=12, args_size=8
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        start local 3 // org.graalvm.compiler.nodes.ValueNode name
        start local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 5 // boolean declared
        start local 6 // boolean analysis
        start local 7 // boolean hosted
         0: .line 179
            aload 2 /* receiver */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
            ifeq 11
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 11
         1: .line 180
            aload 0 /* b */
            aload 2 /* receiver */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
            astore 8 /* clazz */
        start local 8 // java.lang.Class clazz
         2: .line 181
            aload 4 /* snippetReflection */
            ldc Ljava/lang/String;
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* fieldName */
        start local 9 // java.lang.String fieldName
         3: .line 183
            new java.lang.StringBuilder
            dup
            aload 8 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 10 /* target */
        start local 10 // java.lang.String target
         4: .line 185
            iload 5 /* declared */
            ifeq 5
            aload 8 /* clazz */
            aload 9 /* fieldName */
            invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
            goto 6
      StackMap locals: java.lang.Class java.lang.String java.lang.String
      StackMap stack:
         5: aload 8 /* clazz */
            aload 9 /* fieldName */
            invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
      StackMap locals:
      StackMap stack: java.lang.reflect.Field
         6: astore 11 /* field */
        start local 11 // java.lang.reflect.Field field
         7: .line 186
            aload 0 /* b */
            aload 1 /* targetMethod */
            aload 4 /* snippetReflection */
            iload 6 /* analysis */
            iload 7 /* hosted */
            aload 11 /* field */
            aload 10 /* target */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
         8: ireturn
        end local 11 // java.lang.reflect.Field field
         9: .line 187
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 11 /* e */
        start local 11 // java.lang.Throwable e
        10: .line 188
            aload 0 /* b */
            aload 1 /* targetMethod */
            iload 6 /* analysis */
            iload 7 /* hosted */
            aload 10 /* target */
            aload 11 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 11 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
            ireturn
        end local 11 // java.lang.Throwable e
        end local 10 // java.lang.String target
        end local 9 // java.lang.String fieldName
        end local 8 // java.lang.Class clazz
        11: .line 191
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // boolean hosted
        end local 6 // boolean analysis
        end local 5 // boolean declared
        end local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 3 // org.graalvm.compiler.nodes.ValueNode name
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0                  b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   12     1       targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   12     2           receiver  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            0   12     3               name  Lorg/graalvm/compiler/nodes/ValueNode;
            0   12     4  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   12     5           declared  Z
            0   12     6           analysis  Z
            0   12     7             hosted  Z
            2   11     8              clazz  Ljava/lang/Class<*>;
            3   11     9          fieldName  Ljava/lang/String;
            4   11    10             target  Ljava/lang/String;
            7    9    11              field  Ljava/lang/reflect/Field;
           10   11    11                  e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.NoSuchFieldException
           4     8       9  Class java.lang.LinkageError
    MethodParameters:
                   Name  Flags
      b                  
      targetMethod       
      receiver           
      name               
      snippetReflection  
      declared           
      analysis           
      hosted             

  private static boolean processGetMethod(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.nodes.ValueNode, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/nodes/ValueNode;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=15, args_size=10
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        start local 3 // org.graalvm.compiler.nodes.ValueNode name
        start local 4 // org.graalvm.compiler.nodes.ValueNode parameterTypes
        start local 5 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        start local 6 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 7 // boolean declared
        start local 8 // boolean analysis
        start local 9 // boolean hosted
         0: .line 197
            aload 2 /* receiver */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
            ifeq 13
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.isConstant:()Z
            ifeq 13
         1: .line 198
            aload 5 /* annotationSubstitutions */
            aload 6 /* snippetReflection */
            aload 4 /* parameterTypes */
            iconst_1
            invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.extractClassArray:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Z)[Ljava/lang/Class;
            astore 10 /* paramTypes */
        start local 10 // java.lang.Class[] paramTypes
         2: .line 200
            aload 10 /* paramTypes */
            ifnull 13
         3: .line 201
            aload 0 /* b */
            aload 2 /* receiver */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
            astore 11 /* clazz */
        start local 11 // java.lang.Class clazz
         4: .line 202
            aload 6 /* snippetReflection */
            ldc Ljava/lang/String;
            aload 3 /* name */
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.asObject:(Ljava/lang/Class;Ljdk/vm/ci/meta/JavaConstant;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 12 /* methodName */
        start local 12 // java.lang.String methodName
         5: .line 204
            new java.lang.StringBuilder
            dup
            aload 11 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* methodName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 10 /* paramTypes */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            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;
                  java/lang/Class.getTypeName()Ljava/lang/String; (5)
                  (Ljava/lang/Class;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 13 /* target */
        start local 13 // java.lang.String target
         6: .line 206
            iload 7 /* declared */
            ifeq 7
            aload 11 /* clazz */
            aload 12 /* methodName */
            aload 10 /* paramTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            goto 8
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int int java.lang.Class[] java.lang.Class java.lang.String java.lang.String
      StackMap stack:
         7: aload 11 /* clazz */
            aload 12 /* methodName */
            aload 10 /* paramTypes */
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
      StackMap locals:
      StackMap stack: java.lang.reflect.Method
         8: astore 14 /* method */
        start local 14 // java.lang.reflect.Method method
         9: .line 207
            aload 0 /* b */
            aload 1 /* targetMethod */
            aload 6 /* snippetReflection */
            iload 8 /* analysis */
            iload 9 /* hosted */
            aload 14 /* method */
            aload 13 /* target */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
        10: ireturn
        end local 14 // java.lang.reflect.Method method
        11: .line 208
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14 /* e */
        start local 14 // java.lang.Throwable e
        12: .line 209
            aload 0 /* b */
            aload 1 /* targetMethod */
            iload 8 /* analysis */
            iload 9 /* hosted */
            aload 13 /* target */
            aload 14 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 14 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
            ireturn
        end local 14 // java.lang.Throwable e
        end local 13 // java.lang.String target
        end local 12 // java.lang.String methodName
        end local 11 // java.lang.Class clazz
        end local 10 // java.lang.Class[] paramTypes
        13: .line 213
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext jdk.vm.ci.meta.ResolvedJavaMethod org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver org.graalvm.compiler.nodes.ValueNode org.graalvm.compiler.nodes.ValueNode com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor org.graalvm.compiler.api.replacements.SnippetReflectionProvider int int int
      StackMap stack:
            iconst_0
            ireturn
        end local 9 // boolean hosted
        end local 8 // boolean analysis
        end local 7 // boolean declared
        end local 6 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 5 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        end local 4 // org.graalvm.compiler.nodes.ValueNode parameterTypes
        end local 3 // org.graalvm.compiler.nodes.ValueNode name
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   14     0                        b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   14     1             targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   14     2                 receiver  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            0   14     3                     name  Lorg/graalvm/compiler/nodes/ValueNode;
            0   14     4           parameterTypes  Lorg/graalvm/compiler/nodes/ValueNode;
            0   14     5  annotationSubstitutions  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   14     6        snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   14     7                 declared  Z
            0   14     8                 analysis  Z
            0   14     9                   hosted  Z
            2   13    10               paramTypes  [Ljava/lang/Class;
            4   13    11                    clazz  Ljava/lang/Class<*>;
            5   13    12               methodName  Ljava/lang/String;
            6   13    13                   target  Ljava/lang/String;
            9   11    14                   method  Ljava/lang/reflect/Method;
           12   13    14                        e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           6    10      11  Class java.lang.NoSuchMethodException
           6    10      11  Class java.lang.LinkageError
    MethodParameters:
                         Name  Flags
      b                        
      targetMethod             
      receiver                 
      name                     
      parameterTypes           
      annotationSubstitutions  
      snippetReflection        
      declared                 
      analysis                 
      hosted                   

  private static boolean processGetConstructor(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver, org.graalvm.compiler.nodes.ValueNode, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor, boolean, boolean, boolean);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;Lorg/graalvm/compiler/nodes/ValueNode;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;ZZZ)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=13, args_size=9
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        start local 3 // org.graalvm.compiler.nodes.ValueNode parameterTypes
        start local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 5 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        start local 6 // boolean declared
        start local 7 // boolean analysis
        start local 8 // boolean hosted
         0: .line 220
            aload 2 /* receiver */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.isConstant:()Z
            ifeq 12
         1: .line 221
            aload 5 /* annotationSubstitutions */
            aload 4 /* snippetReflection */
            aload 3 /* parameterTypes */
            iconst_1
            invokestatic com.oracle.svm.hosted.snippets.SubstrateGraphBuilderPlugins.extractClassArray:(Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Lorg/graalvm/compiler/nodes/ValueNode;Z)[Ljava/lang/Class;
            astore 9 /* paramTypes */
        start local 9 // java.lang.Class[] paramTypes
         2: .line 223
            aload 9 /* paramTypes */
            ifnull 12
         3: .line 224
            aload 0 /* b */
            aload 2 /* receiver */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getReceiverClass:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
            astore 10 /* clazz */
        start local 10 // java.lang.Class clazz
         4: .line 226
            new java.lang.StringBuilder
            dup
            aload 10 /* clazz */
            invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ".<init>("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 9 /* paramTypes */
            invokestatic java.util.stream.Stream.of:([Ljava/lang/Object;)Ljava/util/stream/Stream;
            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;
                  java/lang/Class.getTypeName()Ljava/lang/String; (5)
                  (Ljava/lang/Class;)Ljava/lang/String;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
            ldc ", "
            invokestatic java.util.stream.Collectors.joining:(Ljava/lang/CharSequence;)Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 11 /* target */
        start local 11 // java.lang.String target
         5: .line 228
            iload 6 /* declared */
            ifeq 6
            aload 10 /* clazz */
            aload 9 /* paramTypes */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
            goto 7
      StackMap locals: java.lang.Class[] java.lang.Class java.lang.String
      StackMap stack:
         6: aload 10 /* clazz */
            aload 9 /* paramTypes */
            invokevirtual java.lang.Class.getConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
      StackMap locals:
      StackMap stack: java.lang.reflect.Constructor
         7: astore 12 /* constructor */
        start local 12 // java.lang.reflect.Constructor constructor
         8: .line 229
            aload 0 /* b */
            aload 1 /* targetMethod */
            aload 4 /* snippetReflection */
            iload 7 /* analysis */
            iload 8 /* hosted */
            aload 12 /* constructor */
            aload 11 /* target */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
         9: ireturn
        end local 12 // java.lang.reflect.Constructor constructor
        10: .line 230
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 12 /* e */
        start local 12 // java.lang.Throwable e
        11: .line 231
            aload 0 /* b */
            aload 1 /* targetMethod */
            iload 7 /* analysis */
            iload 8 /* hosted */
            aload 11 /* target */
            aload 12 /* e */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 12 /* e */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
            ireturn
        end local 12 // java.lang.Throwable e
        end local 11 // java.lang.String target
        end local 10 // java.lang.Class clazz
        end local 9 // java.lang.Class[] paramTypes
        12: .line 235
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // boolean hosted
        end local 7 // boolean analysis
        end local 6 // boolean declared
        end local 5 // com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor annotationSubstitutions
        end local 4 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 3 // org.graalvm.compiler.nodes.ValueNode parameterTypes
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   13     0                        b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0   13     1             targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0   13     2                 receiver  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            0   13     3           parameterTypes  Lorg/graalvm/compiler/nodes/ValueNode;
            0   13     4        snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   13     5  annotationSubstitutions  Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
            0   13     6                 declared  Z
            0   13     7                 analysis  Z
            0   13     8                   hosted  Z
            2   12     9               paramTypes  [Ljava/lang/Class;
            4   12    10                    clazz  Ljava/lang/Class<*>;
            5   12    11                   target  Ljava/lang/String;
            8   10    12              constructor  Ljava/lang/reflect/Constructor<*>;
           11   12    12                        e  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           5     9      10  Class java.lang.NoSuchMethodException
           5     9      10  Class java.lang.LinkageError
    MethodParameters:
                         Name  Flags
      b                        
      targetMethod             
      receiver                 
      parameterTypes           
      snippetReflection        
      annotationSubstitutions  
      declared                 
      analysis                 
      hosted                   

  private static java.lang.Class<?> getReceiverClass(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
         0: .line 246
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getConstantReflection:()Ljdk/vm/ci/meta/ConstantReflectionProvider;
            aload 1 /* receiver */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver.get:()Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual org.graalvm.compiler.nodes.ValueNode.asJavaConstant:()Ljdk/vm/ci/meta/JavaConstant;
            invokeinterface jdk.vm.ci.meta.ConstantReflectionProvider.asJavaType:(Ljdk/vm/ci/meta/Constant;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 2 /* javaType */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType javaType
         1: .line 247
            invokestatic com.oracle.svm.hosted.c.GraalAccess.getOriginalSnippetReflection:()Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            aload 2 /* javaType */
            invokestatic com.oracle.graal.pointsto.infrastructure.OriginalClassProvider.getJavaClass:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
            areturn
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType javaType
        end local 1 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver receiver
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0         b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    2     1  receiver  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            1    2     2  javaType  Ljdk/vm/ci/meta/ResolvedJavaType;
    Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;)Ljava/lang/Class<*>;
    MethodParameters:
          Name  Flags
      b         
      receiver  

  private static <T> T getIntrinsic(boolean, boolean, org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, );
    descriptor: (ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // boolean analysis
        start local 1 // boolean hosted
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext context
        start local 3 // java.lang.Object element
         0: .line 261
            iload 1 /* hosted */
            ifne 2
         1: .line 263
            aload 3 /* element */
            areturn
         2: .line 268
      StackMap locals:
      StackMap stack:
            aload 2 /* context */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.bciCanBeDuplicated:()Z
            ifeq 4
         3: .line 269
            aconst_null
            areturn
         4: .line 271
      StackMap locals:
      StackMap stack:
            iload 0 /* analysis */
            ifeq 8
         5: .line 272
            aload 3 /* element */
            aload 2 /* context */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.isDeleted:(Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
            ifeq 7
         6: .line 278
            aconst_null
            areturn
         7: .line 282
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
            aload 2 /* context */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
            aload 3 /* element */
            invokevirtual com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.add:(Ljava/util/List;Ljava/lang/Object;)V
         8: .line 285
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/svm/hosted/snippets/ReflectionPlugins$ReflectionPluginRegistry;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
            aload 2 /* context */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getCallingContext:()Ljava/util/List;
            invokevirtual com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry.get:(Ljava/util/List;)Ljava/lang/Object;
            areturn
        end local 3 // java.lang.Object element
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext context
        end local 1 // boolean hosted
        end local 0 // boolean analysis
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0  analysis  Z
            0    9     1    hosted  Z
            0    9     2   context  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    9     3   element  TT;
    Signature: <T:Ljava/lang/Object;>(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;TT;)TT;
    MethodParameters:
          Name  Flags
      analysis  
      hosted    
      context   
      element   

  private static <T> boolean isDeleted(T, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Ljava/lang/Object;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Object element
        start local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 289
            aconst_null
            astore 2 /* annotated */
        start local 2 // java.lang.reflect.AnnotatedElement annotated
         1: .line 291
            aload 0 /* element */
            instanceof java.lang.reflect.Executable
            ifeq 4
         2: .line 292
            aload 1 /* metaAccess */
            aload 0 /* element */
            checkcast java.lang.reflect.Executable
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            astore 2 /* annotated */
         3: .line 293
            goto 9
      StackMap locals: java.lang.reflect.AnnotatedElement
      StackMap stack:
         4: aload 0 /* element */
            instanceof java.lang.reflect.Field
            ifeq 9
         5: .line 294
            aload 1 /* metaAccess */
            aload 0 /* element */
            checkcast java.lang.reflect.Field
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 2 /* annotated */
         6: .line 296
            goto 9
      StackMap locals:
      StackMap stack: com.oracle.svm.hosted.substitute.DeletedElementException
         7: pop
         8: .line 301
            iconst_1
            ireturn
         9: .line 307
      StackMap locals:
      StackMap stack:
            aload 2 /* annotated */
            ifnull 11
            aload 2 /* annotated */
            ldc Lcom/oracle/svm/core/annotate/Delete;
            invokeinterface java.lang.reflect.AnnotatedElement.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 11
        10: .line 308
            iconst_1
            ireturn
        11: .line 310
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.reflect.AnnotatedElement annotated
        end local 1 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 0 // java.lang.Object element
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0     element  TT;
            0   12     1  metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
            1   12     2   annotated  Ljava/lang/reflect/AnnotatedElement;
      Exception table:
        from    to  target  type
           1     6       7  Class com.oracle.svm.hosted.substitute.DeletedElementException
    Signature: <T:Ljava/lang/Object;>(TT;Ljdk/vm/ci/meta/MetaAccessProvider;)Z
    MethodParameters:
            Name  Flags
      element     
      metaAccess  

  private static <T> boolean pushConstant(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, boolean, boolean, T, java.lang.String);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZLjava/lang/Object;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=7
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        start local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        start local 3 // boolean analysis
        start local 4 // boolean hosted
        start local 5 // java.lang.Object element
        start local 6 // java.lang.String targetElement
         0: .line 315
            iload 3 /* analysis */
            iload 4 /* hosted */
            aload 0 /* b */
            aload 5 /* element */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* intrinsic */
        start local 7 // java.lang.Object intrinsic
         1: .line 316
            aload 7 /* intrinsic */
            ifnonnull 3
         2: .line 317
            iconst_0
            ireturn
         3: .line 319
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* b */
            aload 1 /* targetMethod */
            aload 2 /* snippetReflection */
            aload 7 /* intrinsic */
            invokeinterface org.graalvm.compiler.api.replacements.SnippetReflectionProvider.forObject:(Ljava/lang/Object;)Ljdk/vm/ci/meta/JavaConstant;
            aload 6 /* targetElement */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.pushConstant:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
         4: .line 320
            iconst_1
            ireturn
        end local 7 // java.lang.Object intrinsic
        end local 6 // java.lang.String targetElement
        end local 5 // java.lang.Object element
        end local 4 // boolean hosted
        end local 3 // boolean analysis
        end local 2 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider snippetReflection
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod targetMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0                  b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    5     1       targetMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    5     2  snippetReflection  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0    5     3           analysis  Z
            0    5     4             hosted  Z
            0    5     5            element  TT;
            0    5     6      targetElement  Ljava/lang/String;
            1    5     7          intrinsic  TT;
    Signature: <T:Ljava/lang/Object;>(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;ZZTT;Ljava/lang/String;)Z
    MethodParameters:
                   Name  Flags
      b                  
      targetMethod       
      snippetReflection  
      analysis           
      hosted             
      element            
      targetElement      

  private static void pushConstant(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.JavaConstant, java.lang.String);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/JavaConstant;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        start local 2 // jdk.vm.ci.meta.JavaConstant constant
        start local 3 // java.lang.String targetElement
         0: .line 324
            aload 0 /* b */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            aload 2 /* constant */
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getGraph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
            invokestatic org.graalvm.compiler.nodes.ConstantNode.forConstant:(Ljdk/vm/ci/meta/JavaConstant;Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/StructuredGraph;)Lorg/graalvm/compiler/nodes/ConstantNode;
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.addPush:(Ljdk/vm/ci/meta/JavaKind;Lorg/graalvm/compiler/nodes/ValueNode;)Lorg/graalvm/compiler/nodes/ValueNode;
            pop
         1: .line 325
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 1 /* reflectionMethod */
            aload 3 /* targetElement */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.traceConstant:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;)V
         2: .line 326
            return
        end local 3 // java.lang.String targetElement
        end local 2 // jdk.vm.ci.meta.JavaConstant constant
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    3     0                 b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    3     1  reflectionMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    3     2          constant  Ljdk/vm/ci/meta/JavaConstant;
            0    3     3     targetElement  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      b                 
      reflectionMethod  
      constant          
      targetElement     

  private static boolean throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, boolean, boolean, java.lang.String, java.lang.Class<? extends java.lang.Throwable>, java.lang.String);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class;Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=7
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        start local 2 // boolean analysis
        start local 3 // boolean hosted
        start local 4 // java.lang.String targetElement
        start local 5 // java.lang.Class exceptionClass
        start local 6 // java.lang.String originalMessage
         0: .line 331
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            aload 5 /* exceptionClass */
            aastore
            dup
            iconst_1
            ldc Ljava/lang/String;
            aastore
            invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwExceptionMethod:([Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 7 /* exceptionMethod */
        start local 7 // java.lang.reflect.Method exceptionMethod
         1: .line 332
            iload 2 /* analysis */
            iload 3 /* hosted */
            aload 0 /* b */
            aload 7 /* exceptionMethod */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.getIntrinsic:(ZZLorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.reflect.Method
            astore 8 /* intrinsic */
        start local 8 // java.lang.reflect.Method intrinsic
         2: .line 333
            aload 8 /* intrinsic */
            ifnonnull 4
         3: .line 334
            iconst_0
            ireturn
         4: .line 336
      StackMap locals: java.lang.reflect.Method java.lang.reflect.Method
      StackMap stack:
            aload 0 /* b */
            aload 1 /* reflectionMethod */
            aload 4 /* targetElement */
            aload 7 /* exceptionMethod */
            aload 6 /* originalMessage */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/String;)V
         5: .line 337
            iconst_1
            ireturn
        end local 8 // java.lang.reflect.Method intrinsic
        end local 7 // java.lang.reflect.Method exceptionMethod
        end local 6 // java.lang.String originalMessage
        end local 5 // java.lang.Class exceptionClass
        end local 4 // java.lang.String targetElement
        end local 3 // boolean hosted
        end local 2 // boolean analysis
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0                 b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    6     1  reflectionMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     2          analysis  Z
            0    6     3            hosted  Z
            0    6     4     targetElement  Ljava/lang/String;
            0    6     5    exceptionClass  Ljava/lang/Class<+Ljava/lang/Throwable;>;
            0    6     6   originalMessage  Ljava/lang/String;
            1    6     7   exceptionMethod  Ljava/lang/reflect/Method;
            2    6     8         intrinsic  Ljava/lang/reflect/Method;
    Signature: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;ZZLjava/lang/String;Ljava/lang/Class<+Ljava/lang/Throwable;>;Ljava/lang/String;)Z
    MethodParameters:
                  Name  Flags
      b                 
      reflectionMethod  
      analysis          
      hosted            
      targetElement     
      exceptionClass    
      originalMessage   

  private static void throwException(org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String, java.lang.reflect.Method, java.lang.String);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        start local 2 // java.lang.String targetElement
        start local 3 // java.lang.reflect.Method exceptionMethod
        start local 4 // java.lang.String originalMessage
         0: .line 341
            new java.lang.StringBuilder
            dup
            aload 4 /* originalMessage */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ". This exception was synthesized during native image building from a call to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* reflectionMethod */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 342
            ldc " with constant arguments."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 341
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* message */
        start local 5 // java.lang.String message
         3: .line 343
            aload 0 /* b */
            aload 3 /* exceptionMethod */
            aload 5 /* message */
            invokestatic com.oracle.svm.hosted.ExceptionSynthesizer.throwException:(Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;Ljava/lang/reflect/Method;Ljava/lang/String;)V
         4: .line 344
            aload 0 /* b */
            invokeinterface org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
            aload 1 /* reflectionMethod */
            aload 2 /* targetElement */
            aload 3 /* exceptionMethod */
            invokestatic com.oracle.svm.hosted.snippets.ReflectionPlugins.traceException:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;)V
         5: .line 345
            return
        end local 5 // java.lang.String message
        end local 4 // java.lang.String originalMessage
        end local 3 // java.lang.reflect.Method exceptionMethod
        end local 2 // java.lang.String targetElement
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext b
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0                 b  Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            0    6     1  reflectionMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     2     targetElement  Ljava/lang/String;
            0    6     3   exceptionMethod  Ljava/lang/reflect/Method;
            0    6     4   originalMessage  Ljava/lang/String;
            3    6     5           message  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      b                 
      reflectionMethod  
      targetElement     
      exceptionMethod   
      originalMessage   

  private static void traceConstant(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod contextMethod
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        start local 2 // java.lang.String targetElement
         0: .line 348
            getstatic com.oracle.svm.hosted.snippets.ReflectionPlugins$Options.ReflectionPluginTracing:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 4
         1: .line 349
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Call to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reflectionMethod */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " reached in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* contextMethod */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 350
            ldc " for target "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* targetElement */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was reduced to a constant."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 349
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         4: .line 352
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String targetElement
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod contextMethod
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0     contextMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    5     1  reflectionMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    5     2     targetElement  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      contextMethod     
      reflectionMethod  
      targetElement     

  private static void traceException(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, java.lang.String, java.lang.reflect.Method);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljava/lang/String;Ljava/lang/reflect/Method;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // jdk.vm.ci.meta.ResolvedJavaMethod contextMethod
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        start local 2 // java.lang.String targetElement
        start local 3 // java.lang.reflect.Method exceptionMethod
         0: .line 355
            getstatic com.oracle.svm.hosted.snippets.ReflectionPlugins$Options.ReflectionPluginTracing:Lcom/oracle/svm/core/option/HostedOptionKey;
            invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 5
         1: .line 356
            aload 3 /* exceptionMethod */
            invokevirtual java.lang.reflect.Method.getExceptionTypes:()[Ljava/lang/Class;
            iconst_0
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 4 /* exception */
        start local 4 // java.lang.String exception
         2: .line 357
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Call to "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* reflectionMethod */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " reached in "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* contextMethod */
            ldc "%H.%n(%p)"
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 358
            ldc " for target "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* targetElement */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was reduced to a \"throw new "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* exception */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "(...)\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 357
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 4 // java.lang.String exception
         5: .line 360
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.reflect.Method exceptionMethod
        end local 2 // java.lang.String targetElement
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod reflectionMethod
        end local 0 // jdk.vm.ci.meta.ResolvedJavaMethod contextMethod
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0     contextMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     1  reflectionMethod  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            0    6     2     targetElement  Ljava/lang/String;
            0    6     3   exceptionMethod  Ljava/lang/reflect/Method;
            2    5     4         exception  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      contextMethod     
      reflectionMethod  
      targetElement     
      exceptionMethod   
}
SourceFile: "ReflectionPlugins.java"
NestMembers:
  com.oracle.svm.hosted.snippets.ReflectionPlugins$1  com.oracle.svm.hosted.snippets.ReflectionPlugins$2  com.oracle.svm.hosted.snippets.ReflectionPlugins$3  com.oracle.svm.hosted.snippets.ReflectionPlugins$4  com.oracle.svm.hosted.snippets.ReflectionPlugins$5  com.oracle.svm.hosted.snippets.ReflectionPlugins$6  com.oracle.svm.hosted.snippets.ReflectionPlugins$7  com.oracle.svm.hosted.snippets.ReflectionPlugins$8  com.oracle.svm.hosted.snippets.ReflectionPlugins$Options  com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry
InnerClasses:
  com.oracle.svm.hosted.snippets.ReflectionPlugins$1
  com.oracle.svm.hosted.snippets.ReflectionPlugins$2
  com.oracle.svm.hosted.snippets.ReflectionPlugins$3
  com.oracle.svm.hosted.snippets.ReflectionPlugins$4
  com.oracle.svm.hosted.snippets.ReflectionPlugins$5
  com.oracle.svm.hosted.snippets.ReflectionPlugins$6
  com.oracle.svm.hosted.snippets.ReflectionPlugins$7
  com.oracle.svm.hosted.snippets.ReflectionPlugins$8
  Options = com.oracle.svm.hosted.snippets.ReflectionPlugins$Options of com.oracle.svm.hosted.snippets.ReflectionPlugins
  public ReflectionPluginRegistry = com.oracle.svm.hosted.snippets.ReflectionPlugins$ReflectionPluginRegistry of com.oracle.svm.hosted.snippets.ReflectionPlugins
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Receiver = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin$Receiver of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin
  public Registration = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Registration of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins