class org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks
  super_class: java.lang.Object
{
  private static final int MAX_ARITY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  static final java.lang.Class<?>[][] SIGS;
    descriptor: [[Ljava/lang/Class;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: [[Ljava/lang/Class<*>;

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=6, args_size=0
         0: .line 1136
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
         3: .line 1144
            invokestatic org.graalvm.compiler.debug.Assertions.assertionsEnabled:()Z
            ifne 5
         4: .line 1145
            new org.graalvm.compiler.debug.GraalError
            dup
            ldc "%s must only be used in assertions"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Checks;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokespecial org.graalvm.compiler.debug.GraalError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
            athrow
         5: .line 1147
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            bipush 7
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 0 /* sigs */
        start local 0 // java.util.ArrayList sigs
         6: .line 1148
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 18
      StackMap locals: java.util.ArrayList top int int java.lang.reflect.Method[]
      StackMap stack:
         7: aload 4
            iload 2
            aaload
            astore 1 /* method */
        start local 1 // java.lang.reflect.Method method
         8: .line 1149
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 17
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "apply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 17
         9: .line 1150
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 5 /* sig */
        start local 5 // java.lang.Class[] sig
        10: .line 1151
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 11
            aload 5 /* sig */
            iconst_0
            aaload
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            if_acmpeq 11
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        11: .line 1152
      StackMap locals: java.util.ArrayList java.lang.reflect.Method int int java.lang.reflect.Method[] java.lang.Class[]
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 12
            aload 5 /* sig */
            iconst_1
            aaload
            ldc Ljdk/vm/ci/meta/ResolvedJavaMethod;
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1153
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 13
            aload 5 /* sig */
            iconst_2
            aaload
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 1154
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 15
            aload 5 /* sig */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            iconst_3
            aload 5 /* sig */
            arraylength
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              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;)Z
                  org/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Checks.lambda$0(Ljava/lang/Class;)Z (6)
                  (Ljava/lang/Class;)Z
            invokeinterface java.util.stream.Stream.allMatch:(Ljava/util/function/Predicate;)Z
            ifne 15
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1156
      StackMap locals:
      StackMap stack:
            aload 0 /* sigs */
            aconst_null
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        15: .line 1155
      StackMap locals:
      StackMap stack:
            aload 0 /* sigs */
            invokevirtual java.util.ArrayList.size:()I
            aload 5 /* sig */
            arraylength
            iconst_2
            isub
            if_icmplt 14
        16: .line 1158
            aload 0 /* sigs */
            aload 5 /* sig */
            arraylength
            iconst_3
            isub
            aload 5 /* sig */
            invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 5 // java.lang.Class[] sig
        end local 1 // java.lang.reflect.Method method
        17: .line 1148
      StackMap locals: java.util.ArrayList top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        18: iload 2
            iload 3
            if_icmplt 7
        19: .line 1161
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 22
            aload 0 /* sigs */
            aconst_null
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            iconst_m1
            if_icmpeq 22
            new java.lang.AssertionError
            dup
            ldc "need to add an apply() method to %s that takes %d %s arguments "
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 0 /* sigs */
            aconst_null
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
        20: .line 1162
            ldc Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
        21: .line 1161
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        22: .line 1163
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* sigs */
            aload 0 /* sigs */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.lang.Class[]
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.Class[][]
            putstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.SIGS:[[Ljava/lang/Class;
        end local 0 // java.util.ArrayList sigs
        23: .line 1164
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            6   23     0    sigs  Ljava/util/ArrayList<[Ljava/lang/Class<*>;>;
            8   17     1  method  Ljava/lang/reflect/Method;
           10   17     5     sig  [Ljava/lang/Class;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks this
         0: .line 1136
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Checks;

  static boolean containsBinding(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, java.lang.reflect.Type, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins p
        start local 1 // java.lang.reflect.Type declaringType
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding key
         0: .line 1167
            aload 1 /* declaringType */
            invokeinterface java.lang.reflect.Type.getTypeName:()Ljava/lang/String;
            invokestatic jdk.vm.ci.meta.MetaUtil.toInternalName:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* internalName */
        start local 3 // java.lang.String internalName
         1: .line 1168
            aload 0 /* p */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.registrations:Ljdk/internal/vm/compiler/collections/EconomicMap;
            aload 3 /* internalName */
            invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins
            astore 4 /* classPlugins */
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins classPlugins
         2: .line 1169
            aload 4 /* classPlugins */
            ifnull 3
            aload 4 /* classPlugins */
            aload 2 /* key */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins.lookup:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            ifnull 3
            iconst_1
            ireturn
      StackMap locals: java.lang.String org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins
      StackMap stack:
         3: iconst_0
            ireturn
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins classPlugins
        end local 3 // java.lang.String internalName
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding key
        end local 1 // java.lang.reflect.Type declaringType
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins p
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0              p  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0    4     1  declaringType  Ljava/lang/reflect/Type;
            0    4     2            key  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;
            1    4     3   internalName  Ljava/lang/String;
            2    4     4   classPlugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$ClassPlugins;
    MethodParameters:
               Name  Flags
      p              
      declaringType  
      key            

  public static boolean check(org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins, java.lang.reflect.Type, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding);
    descriptor: (Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=11, args_size=3
        start local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
        start local 1 // java.lang.reflect.Type declaringType
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
         0: .line 1173
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.plugin:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            astore 3 /* plugin */
        start local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin plugin
         1: .line 1174
            aload 0 /* plugins */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.parent:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            astore 4 /* p */
        start local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins p
         2: .line 1175
            goto 5
         3: .line 1176
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 4
            aload 4 /* p */
            aload 1 /* declaringType */
            aload 2 /* binding */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.containsBinding:(Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;Ljava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
            ifeq 4
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "a plugin is already registered for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* binding */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         4: .line 1177
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.parent:Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            astore 4 /* p */
         5: .line 1175
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 3
         6: .line 1179
            aload 3 /* plugin */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.ForeignCallPlugin
            ifne 7
            aload 3 /* plugin */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.GeneratedInvocationPlugin
            ifeq 8
         7: .line 1180
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 1182
      StackMap locals:
      StackMap stack:
            aload 3 /* plugin */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
            ifeq 13
         9: .line 1183
            aload 3 /* plugin */
            checkcast org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
            astore 5 /* msplugin */
        start local 5 // org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin msplugin
        10: .line 1184
            aload 5 /* msplugin */
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin.getJavaSubstitute:()Ljava/lang/reflect/Method;
            astore 6 /* substitute */
        start local 6 // java.lang.reflect.Method substitute
        11: .line 1185
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 12
            aload 6 /* substitute */
            ldc Lorg/graalvm/compiler/api/replacements/MethodSubstitution;
            invokevirtual java.lang.reflect.Method.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnonnull 12
            new java.lang.AssertionError
            dup
            ldc "Substitute method must be annotated with @%s: %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/api/replacements/MethodSubstitution;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 6 /* substitute */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        12: .line 1186
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin java.lang.reflect.Method
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // java.lang.reflect.Method substitute
        end local 5 // org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin msplugin
        13: .line 1188
      StackMap locals:
      StackMap stack:
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.argumentsDescriptor:Ljava/lang/String;
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.parseParameters:(Ljava/lang/String;)Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 5 /* arguments */
        start local 5 // int arguments
        14: .line 1189
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 15
            iload 5 /* arguments */
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.SIGS:[[Ljava/lang/Class;
            arraylength
            if_icmplt 15
            new java.lang.AssertionError
            dup
            ldc "need to extend %s to support method with %d arguments: %s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            iload 5 /* arguments */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* binding */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        15: .line 1190
      StackMap locals: int
      StackMap stack:
            aload 3 /* plugin */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 22
      StackMap locals: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins java.lang.reflect.Type org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins int top int int java.lang.reflect.Method[]
      StackMap stack:
        16: aload 9
            iload 7
            aaload
            astore 6 /* m */
        start local 6 // java.lang.reflect.Method m
        17: .line 1191
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "apply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 21
        18: .line 1192
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* parameterTypes */
        start local 10 // java.lang.Class[] parameterTypes
        19: .line 1193
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.SIGS:[[Ljava/lang/Class;
            iload 5 /* arguments */
            aaload
            aload 10 /* parameterTypes */
            invokestatic java.util.Arrays.equals:([Ljava/lang/Object;[Ljava/lang/Object;)Z
            ifeq 21
        20: .line 1194
            iconst_1
            ireturn
        end local 10 // java.lang.Class[] parameterTypes
        end local 6 // java.lang.reflect.Method m
        21: .line 1190
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 16
        23: .line 1198
            new java.lang.AssertionError
            dup
            ldc "graph builder plugin for %s not found"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* binding */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // int arguments
        end local 4 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins p
        end local 3 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin plugin
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
        end local 1 // java.lang.reflect.Type declaringType
        end local 0 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins plugins
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0         plugins  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
            0   24     1   declaringType  Ljava/lang/reflect/Type;
            0   24     2         binding  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;
            1   24     3          plugin  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin;
            2   24     4               p  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins;
           10   13     5        msplugin  Lorg/graalvm/compiler/nodes/graphbuilderconf/MethodSubstitutionPlugin;
           11   13     6      substitute  Ljava/lang/reflect/Method;
           14   24     5       arguments  I
           17   21     6               m  Ljava/lang/reflect/Method;
           19   21    10  parameterTypes  [Ljava/lang/Class;
    MethodParameters:
               Name  Flags
      plugins        
      declaringType  
      binding        

  static boolean checkResolvable(boolean, java.lang.reflect.Type, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding);
    descriptor: (ZLjava/lang/reflect/Type;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // boolean isOptional
        start local 1 // java.lang.reflect.Type declaringType
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
         0: .line 1202
            aload 1 /* declaringType */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ResolvedJavaSymbol
            ifeq 2
         1: .line 1203
            iload 0 /* isOptional */
            aload 1 /* declaringType */
            checkcast org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ResolvedJavaSymbol
            invokevirtual org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ResolvedJavaSymbol.getResolved:()Ljdk/vm/ci/meta/ResolvedJavaType;
            aload 2 /* binding */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.checkResolvable:(ZLjdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
            ireturn
         2: .line 1205
      StackMap locals:
      StackMap stack:
            aload 1 /* declaringType */
            iload 0 /* isOptional */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.resolveType:(Ljava/lang/reflect/Type;Z)Ljava/lang/Class;
            astore 3 /* declaringClass */
        start local 3 // java.lang.Class declaringClass
         3: .line 1206
            aload 3 /* declaringClass */
            ifnonnull 5
         4: .line 1207
            iconst_1
            ireturn
         5: .line 1209
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.name:Ljava/lang/String;
            ldc "<init>"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         6: .line 1210
            aload 3 /* declaringClass */
            aload 2 /* binding */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.resolveConstructor:(Ljava/lang/Class;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Ljava/lang/reflect/Constructor;
            ifnonnull 10
            iload 0 /* isOptional */
            ifne 10
         7: .line 1211
            new java.lang.AssertionError
            dup
            ldc "Constructor not found: %s%s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* declaringClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.argumentsDescriptor:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         8: .line 1214
      StackMap locals:
      StackMap stack:
            aload 3 /* declaringClass */
            aload 2 /* binding */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.resolveMethod:(Ljava/lang/Class;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Ljava/lang/reflect/Method;
            ifnonnull 10
            iload 0 /* isOptional */
            ifne 10
         9: .line 1215
            new java.lang.AssertionError
            dup
            ldc "Method not found: %s.%s%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* declaringClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.name:Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.argumentsDescriptor:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        10: .line 1218
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Class declaringClass
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
        end local 1 // java.lang.reflect.Type declaringType
        end local 0 // boolean isOptional
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0      isOptional  Z
            0   11     1   declaringType  Ljava/lang/reflect/Type;
            0   11     2         binding  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;
            3   11     3  declaringClass  Ljava/lang/Class<*>;
    MethodParameters:
               Name  Flags
      isOptional     
      declaringType  
      binding        

  private static boolean checkResolvable(boolean, jdk.vm.ci.meta.ResolvedJavaType, org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding);
    descriptor: (ZLjdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // boolean isOptional
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType declaringType
        start local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
         0: .line 1222
            aload 1 /* declaringType */
            aload 2 /* binding */
            invokestatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.resolveJavaMethod:(Ljdk/vm/ci/meta/ResolvedJavaType;Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
            ifnonnull 2
            iload 0 /* isOptional */
            ifne 2
         1: .line 1223
            new java.lang.AssertionError
            dup
            ldc "Method not found: %s.%s%s"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* declaringType */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.name:Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* binding */
            getfield org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding.argumentsDescriptor:Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         2: .line 1225
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding binding
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType declaringType
        end local 0 // boolean isOptional
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0     isOptional  Z
            0    3     1  declaringType  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    3     2        binding  Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugins$Binding;
    MethodParameters:
               Name  Flags
      isOptional     
      declaringType  
      binding        

  private static boolean lambda$0(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class c
         0: .line 1154
            aload 0 /* c */
            ldc Lorg/graalvm/compiler/nodes/ValueNode;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     c  Ljava/lang/Class<*>;
}
SourceFile: "InvocationPlugins.java"
NestHost: org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
InnerClasses:
  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 Binding = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Binding of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  private Checks = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  ClassPlugins = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ClassPlugins of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins
  public ResolvedJavaSymbol = org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ResolvedJavaSymbol of org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins