public interface com.oracle.graal.pointsto.infrastructure.OriginalMethodProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: com.oracle.graal.pointsto.infrastructure.OriginalMethodProvider
  super_class: java.lang.Object
{
  public static java.lang.reflect.Executable getJavaMethod(org.graalvm.compiler.api.replacements.SnippetReflectionProvider, jdk.vm.ci.meta.ResolvedJavaMethod);
    descriptor: (Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljava/lang/reflect/Executable;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider reflectionProvider
        start local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
         0: .line 39
            aload 1 /* method */
            instanceof com.oracle.graal.pointsto.infrastructure.OriginalMethodProvider
            ifeq 2
         1: .line 40
            aload 1 /* method */
            checkcast com.oracle.graal.pointsto.infrastructure.OriginalMethodProvider
            invokeinterface com.oracle.graal.pointsto.infrastructure.OriginalMethodProvider.getJavaMethod:()Ljava/lang/reflect/Executable;
            areturn
         2: .line 43
      StackMap locals:
      StackMap stack:
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getParameters:()[Ljdk/vm/ci/meta/ResolvedJavaMethod$Parameter;
            astore 2 /* parameters */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] parameters
         3: .line 44
            aload 2 /* parameters */
            arraylength
            anewarray java.lang.Class
            astore 3 /* parameterTypes */
        start local 3 // java.lang.Class[] parameterTypes
         4: .line 45
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* declaringClassType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType declaringClassType
         5: .line 46
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 47
      StackMap locals: org.graalvm.compiler.api.replacements.SnippetReflectionProvider jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] java.lang.Class[] jdk.vm.ci.meta.ResolvedJavaType int
      StackMap stack:
            aload 3 /* parameterTypes */
            iload 5 /* i */
            aload 0 /* reflectionProvider */
            aload 2 /* parameters */
            iload 5 /* i */
            aaload
            invokevirtual jdk.vm.ci.meta.ResolvedJavaMethod$Parameter.getType:()Ljdk/vm/ci/meta/JavaType;
            aload 4 /* declaringClassType */
            invokeinterface jdk.vm.ci.meta.JavaType.resolve:(Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic com.oracle.graal.pointsto.infrastructure.OriginalClassProvider.getJavaClass:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
            aastore
         8: .line 46
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 3 /* parameterTypes */
            arraylength
            if_icmplt 7
        end local 5 // int i
        10: .line 49
            aload 0 /* reflectionProvider */
            aload 4 /* declaringClassType */
            invokestatic com.oracle.graal.pointsto.infrastructure.OriginalClassProvider.getJavaClass:(Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/lang/Class;
            astore 5 /* declaringClass */
        start local 5 // java.lang.Class declaringClass
        11: .line 50
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isConstructor:()Z
            ifeq 14
        12: .line 51
            aload 5 /* declaringClass */
            aload 3 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
        13: areturn
        14: .line 53
      StackMap locals: org.graalvm.compiler.api.replacements.SnippetReflectionProvider jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] java.lang.Class[] jdk.vm.ci.meta.ResolvedJavaType java.lang.Class
      StackMap stack:
            aload 5 /* declaringClass */
            aload 1 /* method */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
            aload 3 /* parameterTypes */
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        15: areturn
        end local 5 // java.lang.Class declaringClass
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType declaringClassType
        end local 3 // java.lang.Class[] parameterTypes
        end local 2 // jdk.vm.ci.meta.ResolvedJavaMethod$Parameter[] parameters
        16: .line 55
      StackMap locals: org.graalvm.compiler.api.replacements.SnippetReflectionProvider jdk.vm.ci.meta.ResolvedJavaMethod
      StackMap stack: java.lang.NoSuchMethodException
            pop
        17: .line 56
            invokestatic com.oracle.graal.pointsto.util.AnalysisError.shouldNotReachHere:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // jdk.vm.ci.meta.ResolvedJavaMethod method
        end local 0 // org.graalvm.compiler.api.replacements.SnippetReflectionProvider reflectionProvider
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0  reflectionProvider  Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
            0   18     1              method  Ljdk/vm/ci/meta/ResolvedJavaMethod;
            3   16     2          parameters  [Ljdk/vm/ci/meta/ResolvedJavaMethod$Parameter;
            4   16     3      parameterTypes  [Ljava/lang/Class;
            5   16     4  declaringClassType  Ljdk/vm/ci/meta/ResolvedJavaType;
            6   10     5                   i  I
           11   16     5      declaringClass  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           2    13      16  Class java.lang.NoSuchMethodException
          14    15      16  Class java.lang.NoSuchMethodException
    MethodParameters:
                    Name  Flags
      reflectionProvider  
      method              

  public abstract java.lang.reflect.Executable getJavaMethod();
    descriptor: ()Ljava/lang/reflect/Executable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "OriginalMethodProvider.java"
InnerClasses:
  public Parameter = jdk.vm.ci.meta.ResolvedJavaMethod$Parameter of jdk.vm.ci.meta.ResolvedJavaMethod