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 1333
            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 1341
            invokestatic org.graalvm.compiler.debug.Assertions.assertionsEnabled:()Z
            ifne 5
            getstatic jdk.vm.ci.services.Services.IS_BUILDING_NATIVE_IMAGE:Z
            ifne 5
         4: .line 1342
            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 1344
      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 1345
            getstatic jdk.vm.ci.services.Services.IS_IN_NATIVE_IMAGE:Z
            ifne 23
         7: .line 1346
            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 19
      StackMap locals: java.util.ArrayList top int int java.lang.reflect.Method[]
      StackMap stack:
         8: aload 4
            iload 2
            aaload
            astore 1 /* method */
        start local 1 // java.lang.reflect.Method method
         9: .line 1347
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
            ifne 18
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            ldc "apply"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 18
        10: .line 1348
            aload 1 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 5 /* sig */
        start local 5 // java.lang.Class[] sig
        11: .line 1349
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 12
            aload 5 /* sig */
            iconst_0
            aaload
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/GraphBuilderContext;
            if_acmpeq 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 1350
      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 13
            aload 5 /* sig */
            iconst_1
            aaload
            ldc Ljdk/vm/ci/meta/ResolvedJavaMethod;
            if_acmpeq 13
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        13: .line 1351
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 14
            aload 5 /* sig */
            iconst_2
            aaload
            ldc Lorg/graalvm/compiler/nodes/graphbuilderconf/InvocationPlugin$Receiver;
            if_acmpeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        14: .line 1352
      StackMap locals:
      StackMap stack:
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 16
            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 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        15: .line 1354
      StackMap locals:
      StackMap stack:
            aload 0 /* sigs */
            aconst_null
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        16: .line 1353
      StackMap locals:
      StackMap stack:
            aload 0 /* sigs */
            invokevirtual java.util.ArrayList.size:()I
            aload 5 /* sig */
            arraylength
            iconst_2
            isub
            if_icmplt 15
        17: .line 1356
            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
        18: .line 1346
      StackMap locals: java.util.ArrayList top int int java.lang.reflect.Method[]
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
        19: iload 2
            iload 3
            if_icmplt 8
        20: .line 1359
            getstatic org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$Checks.$assertionsDisabled:Z
            ifne 23
            aload 0 /* sigs */
            aconst_null
            invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
            iconst_m1
            if_icmpeq 23
            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
        21: .line 1360
            ldc Lorg/graalvm/compiler/nodes/ValueNode;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            aastore
        22: .line 1359
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        23: .line 1362
      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
        24: .line 1363
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            6   24     0    sigs  Ljava/util/ArrayList<[Ljava/lang/Class<*>;>;
            9   18     1  method  Ljava/lang/reflect/Method;
           11   18     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 1333
            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 1366
            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 1367
            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 1368
            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 1372
            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 1373
            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 1374
            goto 5
         3: .line 1375
      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 1376
      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 1374
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 3
         6: .line 1378
            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 1379
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 1381
      StackMap locals:
      StackMap stack:
            aload 3 /* plugin */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.MethodSubstitutionPlugin
            ifeq 13
         9: .line 1382
            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 1383
            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 1384
            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 1385
      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 1387
      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 1388
            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 1389
      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 1390
            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 1391
            aload 6 /* m */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            astore 10 /* parameterTypes */
        start local 10 // java.lang.Class[] parameterTypes
        19: .line 1392
            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 1393
            iconst_1
            ireturn
        end local 10 // java.lang.Class[] parameterTypes
        end local 6 // java.lang.reflect.Method m
        21: .line 1389
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        22: iload 7
            iload 8
            if_icmplt 16
        23: .line 1397
            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 1401
            aload 1 /* declaringType */
            instanceof org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins$ResolvedJavaSymbol
            ifeq 2
         1: .line 1402
            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 1404
      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 1405
            aload 3 /* declaringClass */
            ifnonnull 5
         4: .line 1406
            iconst_1
            ireturn
         5: .line 1408
      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 1409
            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 1410
            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 1413
      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 1414
            new java.lang.NoSuchMethodError
            dup
            ldc "%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.NoSuchMethodError.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 1417
      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 1421
            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 1422
            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 1424
      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 1352
            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