public final class jdk.dynalink.linker.support.Guards
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.dynalink.linker.support.Guards
  super_class: java.lang.Object
{
  private static final java.util.logging.Logger LOG;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_INSTANCE;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_OF_CLASS;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_ARRAY;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_IDENTICAL;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_NULL;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.invoke.MethodHandle IS_NOT_NULL;
    descriptor: Ljava/lang/invoke/MethodHandle;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  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=7, locals=1, args_size=0
         0: .line 76
            ldc Ljdk/dynalink/linker/support/Guards;
            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 jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
         3: .line 78
            ldc Ljdk/dynalink/linker/support/Guards;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "jdk.dynalink.support.messages"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;
         4: .line 77
            putstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
         5: .line 216
            getstatic jdk.dynalink.linker.support.Lookup.PUBLIC:Ljdk/dynalink/linker/support/Lookup;
            ldc Ljava/lang/Class;
            ldc "isInstance"
         6: .line 217
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            ldc Ljava/lang/Object;
            invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
         7: .line 216
            invokevirtual jdk.dynalink.linker.support.Lookup.findVirtual:(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_INSTANCE:Ljava/lang/invoke/MethodHandle;
         8: .line 226
            new jdk.dynalink.linker.support.Lookup
            dup
            invokestatic java.lang.invoke.MethodHandles.lookup:()Ljava/lang/invoke/MethodHandles$Lookup;
            invokespecial jdk.dynalink.linker.support.Lookup.<init>:(Ljava/lang/invoke/MethodHandles$Lookup;)V
            astore 0 /* lookup */
        start local 0 // jdk.dynalink.linker.support.Lookup lookup
         9: .line 228
            aload 0 /* lookup */
            ldc "isOfClass"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Class;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Object;
            aastore
            invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_OF_CLASS:Ljava/lang/invoke/MethodHandle;
        10: .line 229
            aload 0 /* lookup */
            ldc "isArray"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_ARRAY:Ljava/lang/invoke/MethodHandle;
        11: .line 230
            aload 0 /* lookup */
            ldc "isIdentical"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_2
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            dup
            iconst_1
            ldc Ljava/lang/Object;
            aastore
            invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_IDENTICAL:Ljava/lang/invoke/MethodHandle;
        12: .line 231
            aload 0 /* lookup */
            ldc "isNull"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_NULL:Ljava/lang/invoke/MethodHandle;
        13: .line 232
            aload 0 /* lookup */
            ldc "isNotNull"
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/Object;
            aastore
            invokevirtual jdk.dynalink.linker.support.Lookup.findOwnStatic:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
            putstatic jdk.dynalink.linker.support.Guards.IS_NOT_NULL:Ljava/lang/invoke/MethodHandle;
        end local 0 // jdk.dynalink.linker.support.Lookup lookup
        14: .line 233
            return
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            9   14     0  lookup  Ljdk/dynalink/linker/support/Lookup;

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.dynalink.linker.support.Guards this
         0: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 81
            return
        end local 0 // jdk.dynalink.linker.support.Guards this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/dynalink/linker/support/Guards;

  public static java.lang.invoke.MethodHandle isOfClass(java.lang.Class<?>, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.invoke.MethodType type
         0: .line 94
            aload 1 /* type */
            iconst_0
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 2 /* declaredType */
        start local 2 // java.lang.Class declaredType
         1: .line 95
            aload 0 /* clazz */
            aload 2 /* declaredType */
            if_acmpne 4
         2: .line 96
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isOfClassGuardAlwaysTrue"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 1 /* type */
            aastore
            dup
            iconst_3
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 97
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantTrue:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 99
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* declaredType */
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         5: .line 100
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isOfClassGuardAlwaysFalse"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 1 /* type */
            aastore
            dup
            iconst_3
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 101
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantFalse:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 103
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.IS_OF_CLASS:Ljava/lang/invoke/MethodHandle;
            aload 0 /* clazz */
            iconst_0
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.getClassBoundArgumentTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class declaredType
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0         clazz  Ljava/lang/Class<*>;
            0    8     1          type  Ljava/lang/invoke/MethodType;
            1    8     2  declaredType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      clazz  final
      type   final

  public static java.lang.invoke.MethodHandle isInstance(java.lang.Class<?>, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.invoke.MethodType type
         0: .line 116
            aload 0 /* clazz */
            iconst_0
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.isInstance:(Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
            0    1     1   type  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      clazz  final
      type   final

  public static java.lang.invoke.MethodHandle isInstance(java.lang.Class<?>, int, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // java.lang.Class clazz
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodType type
         0: .line 131
            aload 2 /* type */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 3 /* declaredType */
        start local 3 // java.lang.Class declaredType
         1: .line 132
            aload 0 /* clazz */
            aload 3 /* declaredType */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 4
         2: .line 133
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isInstanceGuardAlwaysTrue"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* type */
            aastore
            dup
            iconst_3
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 134
            aload 2 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantTrue:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 136
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 3 /* declaredType */
            aload 0 /* clazz */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         5: .line 137
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isInstanceGuardAlwaysFalse"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* clazz */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_1
            iload 1 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 2 /* type */
            aastore
            dup
            iconst_3
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 138
            aload 2 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantFalse:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 140
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.IS_INSTANCE:Ljava/lang/invoke/MethodHandle;
            aload 0 /* clazz */
            iload 1 /* pos */
            aload 2 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.getClassBoundArgumentTest:(Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.Class declaredType
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // int pos
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0         clazz  Ljava/lang/Class<*>;
            0    8     1           pos  I
            0    8     2          type  Ljava/lang/invoke/MethodType;
            1    8     3  declaredType  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      clazz  final
      pos    final
      type   final

  public static java.lang.invoke.MethodHandle isArray(int, java.lang.invoke.MethodType);
    descriptor: (ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // int pos
        start local 1 // java.lang.invoke.MethodType type
         0: .line 153
            aload 1 /* type */
            iload 0 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            astore 2 /* declaredType */
        start local 2 // java.lang.Class declaredType
         1: .line 154
            aload 2 /* declaredType */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
         2: .line 155
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isArrayGuardAlwaysTrue"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 0 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 1 /* type */
            aastore
            dup
            iconst_2
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         3: .line 156
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantTrue:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         4: .line 158
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* declaredType */
            ldc [Ljava/lang/Object;
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 7
         5: .line 159
            getstatic jdk.dynalink.linker.support.Guards.LOG:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            ldc "isArrayGuardAlwaysFalse"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 0 /* pos */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 1 /* type */
            aastore
            dup
            iconst_2
            invokestatic jdk.dynalink.DynamicLinker.getLinkedCallSiteLocation:()Ljava/lang/StackTraceElement;
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 160
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantFalse:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
         7: .line 162
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.IS_ARRAY:Ljava/lang/invoke/MethodHandle;
            iload 0 /* pos */
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.asType:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.Class declaredType
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // int pos
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0           pos  I
            0    8     1          type  Ljava/lang/invoke/MethodType;
            1    8     2  declaredType  Ljava/lang/Class<*>;
    MethodParameters:
      Name  Flags
      pos   final
      type  final

  private static java.lang.invoke.MethodHandle getClassBoundArgumentTest(java.lang.invoke.MethodHandle, java.lang.Class<?>, int, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.Class clazz
        start local 2 // int pos
        start local 3 // java.lang.invoke.MethodType type
         0: .line 167
            aload 0 /* test */
            aload 1 /* clazz */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            iload 2 /* pos */
            aload 3 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.asType:(Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 3 // java.lang.invoke.MethodType type
        end local 2 // int pos
        end local 1 // java.lang.Class clazz
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   test  Ljava/lang/invoke/MethodHandle;
            0    1     1  clazz  Ljava/lang/Class<*>;
            0    1     2    pos  I
            0    1     3   type  Ljava/lang/invoke/MethodType;
    Signature: (Ljava/lang/invoke/MethodHandle;Ljava/lang/Class<*>;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      test   final
      clazz  final
      pos    final
      type   final

  public static java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.invoke.MethodType type
         0: .line 181
            aload 0 /* test */
            aload 0 /* test */
            aload 1 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.getTestType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  test  Ljava/lang/invoke/MethodHandle;
            0    1     1  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      test  final
      type  final

  public static java.lang.invoke.MethodHandle asType(jdk.dynalink.linker.LinkerServices, java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljdk/dynalink/linker/LinkerServices;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.dynalink.linker.LinkerServices linkerServices
        start local 1 // java.lang.invoke.MethodHandle test
        start local 2 // java.lang.invoke.MethodType type
         0: .line 197
            aload 0 /* linkerServices */
            aload 1 /* test */
            aload 1 /* test */
            aload 2 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.getTestType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
            invokeinterface jdk.dynalink.linker.LinkerServices.asType:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // java.lang.invoke.MethodHandle test
        end local 0 // jdk.dynalink.linker.LinkerServices linkerServices
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0  linkerServices  Ljdk/dynalink/linker/LinkerServices;
            0    1     1            test  Ljava/lang/invoke/MethodHandle;
            0    1     2            type  Ljava/lang/invoke/MethodType;
    MethodParameters:
                Name  Flags
      linkerServices  final
      test            final
      type            final

  private static java.lang.invoke.MethodType getTestType(java.lang.invoke.MethodHandle, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // java.lang.invoke.MethodType type
         0: .line 201
            aload 1 /* type */
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
         1: .line 202
            aload 1 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
         2: .line 201
            invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
         3: .line 202
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
         4: .line 201
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  test  Ljava/lang/invoke/MethodHandle;
            0    5     1  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      test  final
      type  final

  private static java.lang.invoke.MethodHandle asType(java.lang.invoke.MethodHandle, int, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodHandle;ILjava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // java.lang.invoke.MethodHandle test
        start local 1 // int pos
        start local 2 // java.lang.invoke.MethodType type
         0: .line 206
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 1
            aload 0 /* test */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 207
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 2
            aload 2 /* type */
            ifnonnull 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 208
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 3
            aload 2 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            ifgt 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 209
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 5
            iload 1 /* pos */
            iflt 4
            iload 1 /* pos */
            aload 2 /* type */
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            if_icmplt 5
      StackMap locals:
      StackMap stack:
         4: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         5: .line 210
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 6
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.parameterCount:()I
            iconst_1
            if_icmpeq 6
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         6: .line 211
      StackMap locals:
      StackMap stack:
            getstatic jdk.dynalink.linker.support.Guards.$assertionsDisabled:Z
            ifne 7
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodType.returnType:()Ljava/lang/Class;
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpeq 7
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         7: .line 212
      StackMap locals:
      StackMap stack:
            aload 0 /* test */
            aload 0 /* test */
            invokevirtual java.lang.invoke.MethodHandle.type:()Ljava/lang/invoke/MethodType;
            iconst_0
            aload 2 /* type */
            iload 1 /* pos */
            invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeParameterType:(ILjava/lang/Class;)Ljava/lang/invoke/MethodType;
            invokevirtual java.lang.invoke.MethodHandle.asType:(Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
         8: .line 213
            aload 2 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            iconst_1
            newarray 10
            dup
            iconst_0
            iload 1 /* pos */
            iastore
         9: .line 212
            invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 2 // java.lang.invoke.MethodType type
        end local 1 // int pos
        end local 0 // java.lang.invoke.MethodHandle test
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  test  Ljava/lang/invoke/MethodHandle;
            0   10     1   pos  I
            0   10     2  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      test  final
      pos   final
      type  final

  public static java.lang.invoke.MethodHandle getClassGuard(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 241
            getstatic jdk.dynalink.linker.support.Guards.IS_OF_CLASS:Ljava/lang/invoke/MethodHandle;
            aload 0 /* clazz */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.invoke.MethodHandle getInstanceOfGuard(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 250
            getstatic jdk.dynalink.linker.support.Guards.IS_INSTANCE:Ljava/lang/invoke/MethodHandle;
            aload 0 /* clazz */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  clazz  Ljava/lang/Class<*>;
    Signature: (Ljava/lang/Class<*>;)Ljava/lang/invoke/MethodHandle;
    MethodParameters:
       Name  Flags
      clazz  final

  public static java.lang.invoke.MethodHandle getIdentityGuard(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 259
            getstatic jdk.dynalink.linker.support.Guards.IS_IDENTICAL:Ljava/lang/invoke/MethodHandle;
            aload 0 /* obj */
            invokevirtual java.lang.invoke.MethodHandle.bindTo:(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  public static java.lang.invoke.MethodHandle isNull();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 267
            getstatic jdk.dynalink.linker.support.Guards.IS_NULL:Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.lang.invoke.MethodHandle isNotNull();
    descriptor: ()Ljava/lang/invoke/MethodHandle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 275
            getstatic jdk.dynalink.linker.support.Guards.IS_NOT_NULL:Ljava/lang/invoke/MethodHandle;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean isNull(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 280
            aload 0 /* obj */
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  private static boolean isNotNull(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 285
            aload 0 /* obj */
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   final

  private static boolean isArray(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object o
         0: .line 290
            aload 0 /* o */
            ifnull 1
            aload 0 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     o  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o     final

  private static boolean isOfClass(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Class c
        start local 1 // java.lang.Object o
         0: .line 295
            aload 1 /* o */
            ifnull 1
            aload 1 /* o */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* c */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object o
        end local 0 // java.lang.Class c
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     c  Ljava/lang/Class<*>;
            0    2     1     o  Ljava/lang/Object;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Z
    MethodParameters:
      Name  Flags
      c     final
      o     final

  private static boolean isIdentical(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object o1
        start local 1 // java.lang.Object o2
         0: .line 300
            aload 0 /* o1 */
            aload 1 /* o2 */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object o2
        end local 0 // java.lang.Object o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    o1  Ljava/lang/Object;
            0    2     1    o2  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o1    final
      o2    final

  private static java.lang.invoke.MethodHandle constantTrue(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 304
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            aload 0 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantBoolean:(Ljava/lang/Boolean;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  final

  private static java.lang.invoke.MethodHandle constantFalse(java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.invoke.MethodType type
         0: .line 308
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            aload 0 /* type */
            invokestatic jdk.dynalink.linker.support.Guards.constantBoolean:(Ljava/lang/Boolean;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 0 // java.lang.invoke.MethodType type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  Ljava/lang/invoke/MethodType;
    MethodParameters:
      Name  Flags
      type  final

  private static java.lang.invoke.MethodHandle constantBoolean(java.lang.Boolean, java.lang.invoke.MethodType);
    descriptor: (Ljava/lang/Boolean;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/MethodHandle;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Boolean value
        start local 1 // java.lang.invoke.MethodType type
         0: .line 312
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            aload 0 /* value */
            invokestatic java.lang.invoke.MethodHandles.constant:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
         1: .line 313
            aload 1 /* type */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.invoke.MethodType.changeReturnType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
            iconst_0
            newarray 10
         2: .line 312
            invokestatic java.lang.invoke.MethodHandles.permuteArguments:(Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;[I)Ljava/lang/invoke/MethodHandle;
            areturn
        end local 1 // java.lang.invoke.MethodType type
        end local 0 // java.lang.Boolean value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  value  Ljava/lang/Boolean;
            0    3     1   type  Ljava/lang/invoke/MethodType;
    MethodParameters:
       Name  Flags
      value  final
      type   final
}
SourceFile: "Guards.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles