class java.lang.constant.ConstantUtils
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.lang.constant.ConstantUtils
  super_class: java.lang.Object
{
  public static final java.lang.constant.ConstantDesc[] EMPTY_CONSTANTDESC;
    descriptor: [Ljava/lang/constant/ConstantDesc;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static final java.lang.constant.Constable[] EMPTY_CONSTABLE;
    descriptor: [Ljava/lang/constant/Constable;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int MAX_ARRAY_TYPE_DESC_DIMENSIONS;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 255

  private static final java.util.Set<java.lang.String> pointyNames;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/String;>;

  private static final char JVM_SIGNATURE_ARRAY;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  private static final char JVM_SIGNATURE_BYTE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 66

  private static final char JVM_SIGNATURE_CHAR;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 67

  private static final char JVM_SIGNATURE_CLASS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 76

  private static final char JVM_SIGNATURE_ENDCLASS;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 59

  private static final char JVM_SIGNATURE_ENUM;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 69

  private static final char JVM_SIGNATURE_FLOAT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 70

  private static final char JVM_SIGNATURE_DOUBLE;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 68

  private static final char JVM_SIGNATURE_FUNC;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  private static final char JVM_SIGNATURE_ENDFUNC;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  private static final char JVM_SIGNATURE_INT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 73

  private static final char JVM_SIGNATURE_LONG;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 74

  private static final char JVM_SIGNATURE_SHORT;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 83

  private static final char JVM_SIGNATURE_VOID;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 86

  private static final char JVM_SIGNATURE_BOOLEAN;
    descriptor: C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 90

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 38
            iconst_0
            anewarray java.lang.constant.ConstantDesc
            putstatic java.lang.constant.ConstantUtils.EMPTY_CONSTANTDESC:[Ljava/lang/constant/ConstantDesc;
         1: .line 39
            iconst_0
            anewarray java.lang.constant.Constable
            putstatic java.lang.constant.ConstantUtils.EMPTY_CONSTABLE:[Ljava/lang/constant/Constable;
         2: .line 42
            ldc "<init>"
            ldc "<clinit>"
            invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
            putstatic java.lang.constant.ConstantUtils.pointyNames:Ljava/util/Set;
         3: .line 160
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.constant.ConstantUtils this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // java.lang.constant.ConstantUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/constant/ConstantUtils;

  static java.lang.String validateBinaryClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 53
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         1: goto 6
         2: .line 54
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 1 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* ch */
        start local 2 // char ch
         3: .line 55
            iload 2 /* ch */
            bipush 59
            if_icmpeq 4
            iload 2 /* ch */
            bipush 91
            if_icmpeq 4
            iload 2 /* ch */
            bipush 47
            if_icmpne 5
         4: .line 56
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid class name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // char ch
         5: .line 53
      StackMap locals:
      StackMap stack:
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 1 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 2
        end local 1 // int i
         7: .line 58
            aload 0 /* name */
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  name  Ljava/lang/String;
            1    7     1     i  I
            3    5     2    ch  C
    MethodParameters:
      Name  Flags
      name  

  public static java.lang.String validateMemberName(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.lang.String name
        start local 1 // boolean method
         0: .line 69
            aload 0 /* name */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 70
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            ifne 3
         2: .line 71
            new java.lang.IllegalArgumentException
            dup
            ldc "zero-length member name"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 72
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 12
         5: .line 73
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            istore 3 /* ch */
        start local 3 // char ch
         6: .line 74
            iload 3 /* ch */
            bipush 46
            if_icmpeq 7
            iload 3 /* ch */
            bipush 59
            if_icmpeq 7
            iload 3 /* ch */
            bipush 91
            if_icmpeq 7
            iload 3 /* ch */
            bipush 47
            if_icmpne 8
         7: .line 75
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid member name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 76
      StackMap locals:
      StackMap stack:
            iload 1 /* method */
            ifeq 11
            iload 3 /* ch */
            bipush 60
            if_icmpeq 9
            iload 3 /* ch */
            bipush 62
            if_icmpne 11
         9: .line 77
      StackMap locals:
      StackMap stack:
            getstatic java.lang.constant.ConstantUtils.pointyNames:Ljava/util/Set;
            aload 0 /* name */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 78
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid member name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // char ch
        11: .line 72
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 5
        end local 2 // int i
        13: .line 81
            aload 0 /* name */
            areturn
        end local 1 // boolean method
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    name  Ljava/lang/String;
            0   14     1  method  Z
            4   13     2       i  I
            6   11     3      ch  C
    MethodParameters:
        Name  Flags
      name    
      method  

  static void validateClassOrInterface(java.lang.constant.ClassDesc);
    descriptor: (Ljava/lang/constant/ClassDesc;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.lang.constant.ClassDesc classDesc
         0: .line 85
            aload 0 /* classDesc */
            invokeinterface java.lang.constant.ClassDesc.isClassOrInterface:()Z
            ifne 2
         1: .line 86
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "not a class or interface type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* classDesc */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 87
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.constant.ClassDesc classDesc
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0  classDesc  Ljava/lang/constant/ClassDesc;
    MethodParameters:
           Name  Flags
      classDesc  

  static int arrayDepth(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String descriptorString
         0: .line 90
            iconst_0
            istore 1 /* depth */
        start local 1 // int depth
         1: .line 91
            goto 3
         2: .line 92
      StackMap locals: int
      StackMap stack:
            iinc 1 /* depth */ 1
         3: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* descriptorString */
            iload 1 /* depth */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 91
            if_icmpeq 2
         4: .line 93
            iload 1 /* depth */
            ireturn
        end local 1 // int depth
        end local 0 // java.lang.String descriptorString
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0  descriptorString  Ljava/lang/String;
            1    5     1             depth  I
    MethodParameters:
                  Name  Flags
      descriptorString  

  static java.lang.String binaryToInternal(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 97
            aload 0 /* name */
            bipush 46
            bipush 47
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  static java.lang.String internalToBinary(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.String name
         0: .line 101
            aload 0 /* name */
            bipush 47
            bipush 46
            invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  static java.lang.String dropLastChar(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 105
            aload 0 /* s */
            iconst_0
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  static java.lang.String dropFirstAndLastChar(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 109
            aload 0 /* s */
            iconst_1
            aload 0 /* s */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            areturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  static java.util.List<java.lang.String> parseMethodDescriptor(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // java.lang.String descriptor
         0: .line 121
            iconst_0
            istore 1 /* cur */
        start local 1 // int cur
         1: aload 0 /* descriptor */
            invokevirtual java.lang.String.length:()I
            istore 2 /* end */
        start local 2 // int end
         2: .line 122
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* ptypes */
        start local 3 // java.util.ArrayList ptypes
         3: .line 124
            iload 1 /* cur */
            iload 2 /* end */
            if_icmpge 4
            aload 0 /* descriptor */
            iload 1 /* cur */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 40
            if_icmpeq 5
         4: .line 125
      StackMap locals: int int java.util.ArrayList
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad method descriptor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* descriptor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 127
      StackMap locals:
      StackMap stack:
            iinc 1 /* cur */ 1
         6: .line 128
            goto 12
         7: .line 129
      StackMap locals:
      StackMap stack:
            aload 0 /* descriptor */
            iload 1 /* cur */
            iload 2 /* end */
            iconst_0
            invokestatic java.lang.constant.ConstantUtils.skipOverFieldSignature:(Ljava/lang/String;IIZ)I
            istore 4 /* len */
        start local 4 // int len
         8: .line 130
            iload 4 /* len */
            ifne 10
         9: .line 131
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad method descriptor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* descriptor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 132
      StackMap locals: int
      StackMap stack:
            aload 3 /* ptypes */
            aload 0 /* descriptor */
            iload 1 /* cur */
            iload 1 /* cur */
            iload 4 /* len */
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        11: .line 133
            iload 1 /* cur */
            iload 4 /* len */
            iadd
            istore 1 /* cur */
        end local 4 // int len
        12: .line 128
      StackMap locals:
      StackMap stack:
            iload 1 /* cur */
            iload 2 /* end */
            if_icmpge 13
            aload 0 /* descriptor */
            iload 1 /* cur */
            invokevirtual java.lang.String.charAt:(I)C
            bipush 41
            if_icmpne 7
        13: .line 135
      StackMap locals:
      StackMap stack:
            iload 1 /* cur */
            iload 2 /* end */
            if_icmplt 15
        14: .line 136
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad method descriptor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* descriptor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 137
      StackMap locals:
      StackMap stack:
            iinc 1 /* cur */ 1
        16: .line 139
            aload 0 /* descriptor */
            iload 1 /* cur */
            iload 2 /* end */
            iconst_1
            invokestatic java.lang.constant.ConstantUtils.skipOverFieldSignature:(Ljava/lang/String;IIZ)I
            istore 4 /* rLen */
        start local 4 // int rLen
        17: .line 140
            iload 4 /* rLen */
            ifeq 18
            iload 1 /* cur */
            iload 4 /* rLen */
            iadd
            iload 2 /* end */
            if_icmpeq 19
        18: .line 141
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad method descriptor: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* descriptor */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        19: .line 142
      StackMap locals:
      StackMap stack:
            aload 3 /* ptypes */
            iconst_0
            aload 0 /* descriptor */
            iload 1 /* cur */
            iload 1 /* cur */
            iload 4 /* rLen */
            iadd
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
        20: .line 143
            aload 3 /* ptypes */
            areturn
        end local 4 // int rLen
        end local 3 // java.util.ArrayList ptypes
        end local 2 // int end
        end local 1 // int cur
        end local 0 // java.lang.String descriptor
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0  descriptor  Ljava/lang/String;
            1   21     1         cur  I
            2   21     2         end  I
            3   21     3      ptypes  Ljava/util/ArrayList<Ljava/lang/String;>;
            8   12     4         len  I
           17   21     4        rLen  I
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
            Name  Flags
      descriptor  

  static int skipOverFieldSignature(java.lang.String, int, int, boolean);
    descriptor: (Ljava/lang/String;IIZ)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // java.lang.String descriptor
        start local 1 // int start
        start local 2 // int end
        start local 3 // boolean voidOK
         0: .line 174
            iconst_0
            istore 4 /* arrayDim */
        start local 4 // int arrayDim
         1: .line 175
            iload 1 /* start */
            istore 5 /* index */
        start local 5 // int index
         2: .line 176
            goto 24
         3: .line 177
      StackMap locals: int int
      StackMap stack:
            aload 0 /* descriptor */
            iload 5 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            tableswitch { // 66 - 91
                   66: 5
                   67: 5
                   68: 5
                   69: 23
                   70: 5
                   71: 23
                   72: 23
                   73: 5
                   74: 5
                   75: 23
                   76: 6
                   77: 23
                   78: 23
                   79: 23
                   80: 23
                   81: 23
                   82: 23
                   83: 5
                   84: 23
                   85: 23
                   86: 4
                   87: 23
                   88: 23
                   89: 23
                   90: 5
                   91: 15
              default: 23
          }
         4: .line 178
      StackMap locals:
      StackMap stack:
            iload 3 /* voidOK */
            ifne 5
            iload 5 /* index */
            ireturn
         5: .line 187
      StackMap locals:
      StackMap stack:
            iload 5 /* index */
            iload 1 /* start */
            isub
            iconst_1
            iadd
            ireturn
         6: .line 190
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
         7: .line 191
            aload 0 /* descriptor */
            bipush 59
            iload 5 /* index */
            invokevirtual java.lang.String.indexOf:(II)I
            istore 6 /* indexOfSemi */
        start local 6 // int indexOfSemi
         8: .line 192
            iload 6 /* indexOfSemi */
            iconst_m1
            if_icmpeq 14
         9: .line 193
            aload 0 /* descriptor */
            iload 5 /* index */
            iload 6 /* indexOfSemi */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* unqualifiedName */
        start local 7 // java.lang.String unqualifiedName
        10: .line 194
            aload 7 /* unqualifiedName */
            invokestatic java.lang.constant.ConstantUtils.verifyUnqualifiedClassName:(Ljava/lang/String;)Z
            istore 8 /* legal */
        start local 8 // boolean legal
        11: .line 195
            iload 8 /* legal */
            ifne 13
        12: .line 196
            iconst_0
            ireturn
        13: .line 198
      StackMap locals: int java.lang.String int
      StackMap stack:
            iload 5 /* index */
            iload 1 /* start */
            isub
            aload 7 /* unqualifiedName */
            invokevirtual java.lang.String.length:()I
            iadd
            iconst_1
            iadd
            ireturn
        end local 8 // boolean legal
        end local 7 // java.lang.String unqualifiedName
        14: .line 200
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // int indexOfSemi
        15: .line 202
      StackMap locals:
      StackMap stack:
            iinc 4 /* arrayDim */ 1
        16: .line 203
            iload 4 /* arrayDim */
            sipush 255
            if_icmple 20
        17: .line 204
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot create an array type descriptor with more than %d dimensions"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
        18: .line 205
            sipush 255
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
        19: .line 204
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 208
      StackMap locals:
      StackMap stack:
            iinc 5 /* index */ 1
        21: .line 209
            iconst_0
            istore 3 /* voidOK */
        22: .line 210
            goto 24
        23: .line 212
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        24: .line 176
      StackMap locals:
      StackMap stack:
            iload 5 /* index */
            iload 2 /* end */
            if_icmplt 3
        25: .line 215
            iconst_0
            ireturn
        end local 5 // int index
        end local 4 // int arrayDim
        end local 3 // boolean voidOK
        end local 2 // int end
        end local 1 // int start
        end local 0 // java.lang.String descriptor
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   26     0       descriptor  Ljava/lang/String;
            0   26     1            start  I
            0   26     2              end  I
            0   26     3           voidOK  Z
            1   26     4         arrayDim  I
            2   26     5            index  I
            8   15     6      indexOfSemi  I
           10   14     7  unqualifiedName  Ljava/lang/String;
           11   14     8            legal  Z
    MethodParameters:
            Name  Flags
      descriptor  
      start       
      end         
      voidOK      

  static boolean verifyUnqualifiedClassName(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String name
         0: .line 219
            iconst_0
            istore 1 /* index */
        start local 1 // int index
         1: goto 11
         2: .line 220
      StackMap locals: int
      StackMap stack:
            aload 0 /* name */
            iload 1 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            istore 2 /* ch */
        start local 2 // char ch
         3: .line 221
            iload 2 /* ch */
            sipush 128
            if_icmpge 9
         4: .line 222
            iload 2 /* ch */
            bipush 46
            if_icmpeq 5
            iload 2 /* ch */
            bipush 59
            if_icmpeq 5
            iload 2 /* ch */
            bipush 91
            if_icmpne 6
         5: .line 223
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         6: .line 225
      StackMap locals:
      StackMap stack:
            iload 2 /* ch */
            bipush 47
            if_icmpne 10
         7: .line 228
            iload 1 /* index */
            ifeq 8
            iload 1 /* index */
            iconst_1
            iadd
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmpge 8
            aload 0 /* name */
            iload 1 /* index */
            iconst_1
            iadd
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpne 10
         8: .line 229
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         9: .line 233
      StackMap locals:
      StackMap stack:
            iinc 1 /* index */ 1
        end local 2 // char ch
        10: .line 219
      StackMap locals:
      StackMap stack:
            iinc 1 /* index */ 1
      StackMap locals:
      StackMap stack:
        11: iload 1 /* index */
            aload 0 /* name */
            invokevirtual java.lang.String.length:()I
            if_icmplt 2
        end local 1 // int index
        12: .line 236
            iconst_1
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   name  Ljava/lang/String;
            1   12     1  index  I
            3   10     2     ch  C
    MethodParameters:
      Name  Flags
      name  
}
SourceFile: "ConstantUtils.java"