class com.sun.tools.javap.ClassWriter$JavaTypePrinter implements com.sun.tools.classfile.Type$Visitor<java.lang.StringBuilder, java.lang.StringBuilder>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javap.ClassWriter$JavaTypePrinter
  super_class: java.lang.Object
{
  boolean isInterface;
    descriptor: Z
    flags: (0x0000) 

  final com.sun.tools.javap.ClassWriter this$0;
    descriptor: Lcom/sun/tools/javap/ClassWriter;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$sun$tools$classfile$Type$WildcardType$Kind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(com.sun.tools.javap.ClassWriter, boolean);
    descriptor: (Lcom/sun/tools/javap/ClassWriter;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 2 // boolean isInterface
         0: .line 281
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javap.ClassWriter$JavaTypePrinter.this$0:Lcom/sun/tools/javap/ClassWriter;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 282
            aload 0 /* this */
            iload 2 /* isInterface */
            putfield com.sun.tools.javap.ClassWriter$JavaTypePrinter.isInterface:Z
         2: .line 283
            return
        end local 2 // boolean isInterface
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    3     2  isInterface  Z
    MethodParameters:
             Name  Flags
      this$0       final
      isInterface  

  java.lang.String print(com.sun.tools.classfile.Type);
    descriptor: (Lcom/sun/tools/classfile/Type;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type t
         0: .line 286
            aload 1 /* t */
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            invokevirtual com.sun.tools.classfile.Type.accept:(Lcom/sun/tools/classfile/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.StringBuilder
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // com.sun.tools.classfile.Type t
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    1     1     t  Lcom/sun/tools/classfile/Type;
    MethodParameters:
      Name  Flags
      t     

  java.lang.String printTypeArgs(java.util.List<? extends com.sun.tools.classfile.Type$TypeParamType>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // java.util.List typeParamTypes
         0: .line 290
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* builder */
        start local 2 // java.lang.StringBuilder builder
         1: .line 291
            aload 0 /* this */
            aload 2 /* builder */
            ldc "<"
            aload 1 /* typeParamTypes */
            ldc "> "
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         2: .line 292
            aload 2 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder builder
        end local 1 // java.util.List typeParamTypes
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    3     1  typeParamTypes  Ljava/util/List<+Lcom/sun/tools/classfile/Type$TypeParamType;>;
            1    3     2         builder  Ljava/lang/StringBuilder;
    Signature: (Ljava/util/List<+Lcom/sun/tools/classfile/Type$TypeParamType;>;)Ljava/lang/String;
    MethodParameters:
                Name  Flags
      typeParamTypes  

  public java.lang.StringBuilder visitSimpleType(com.sun.tools.classfile.Type$SimpleType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$SimpleType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$SimpleType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 297
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$SimpleType.name:Ljava/lang/String;
            invokestatic com.sun.tools.javap.ClassWriter.getJavaName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 298
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$SimpleType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    2     1  type  Lcom/sun/tools/classfile/Type$SimpleType;
            0    2     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitArrayType(com.sun.tools.classfile.Type$ArrayType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$ArrayType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$ArrayType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 303
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ArrayType.elemType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         1: .line 304
            aload 2 /* sb */
            ldc "[]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 305
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$ArrayType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    3     1  type  Lcom/sun/tools/classfile/Type$ArrayType;
            0    3     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitMethodType(com.sun.tools.classfile.Type$MethodType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$MethodType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$MethodType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 310
            aload 0 /* this */
            aload 2 /* sb */
            ldc "<"
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$MethodType.typeParamTypes:Ljava/util/List;
            ldc "> "
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         1: .line 311
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$MethodType.returnType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         2: .line 312
            aload 0 /* this */
            aload 2 /* sb */
            ldc " ("
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$MethodType.paramTypes:Ljava/util/List;
            ldc ")"
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         3: .line 313
            aload 0 /* this */
            aload 2 /* sb */
            ldc " throws "
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$MethodType.throwsTypes:Ljava/util/List;
            ldc ""
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         4: .line 314
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$MethodType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    5     1  type  Lcom/sun/tools/classfile/Type$MethodType;
            0    5     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitClassSigType(com.sun.tools.classfile.Type$ClassSigType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$ClassSigType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$ClassSigType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 319
            aload 0 /* this */
            aload 2 /* sb */
            ldc "<"
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.typeParamTypes:Ljava/util/List;
            ldc ">"
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         1: .line 320
            aload 0 /* this */
            getfield com.sun.tools.javap.ClassWriter$JavaTypePrinter.isInterface:Z
            ifeq 4
         2: .line 321
            aload 0 /* this */
            aload 2 /* sb */
            ldc " extends "
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.superinterfaceTypes:Ljava/util/List;
            ldc ""
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         3: .line 322
            goto 9
         4: .line 323
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.superclassType:Lcom/sun/tools/classfile/Type;
            ifnull 8
         5: .line 324
            aload 0 /* this */
            getfield com.sun.tools.javap.ClassWriter$JavaTypePrinter.this$0:Lcom/sun/tools/javap/ClassWriter;
            getfield com.sun.tools.javap.ClassWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.verbose:Z
            ifne 6
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.superclassType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.classfile.Type.isObject:()Z
            ifne 8
         6: .line 325
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc " extends "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 326
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.superclassType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         8: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sb */
            ldc " implements "
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassSigType.superinterfaceTypes:Ljava/util/List;
            ldc ""
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         9: .line 330
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$ClassSigType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0   10     1  type  Lcom/sun/tools/classfile/Type$ClassSigType;
            0   10     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitClassType(com.sun.tools.classfile.Type$ClassType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$ClassType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$ClassType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 335
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassType.outerType:Lcom/sun/tools/classfile/Type$ClassType;
            ifnull 3
         1: .line 336
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassType.outerType:Lcom/sun/tools/classfile/Type$ClassType;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         2: .line 337
            aload 2 /* sb */
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 339
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassType.name:Ljava/lang/String;
            invokestatic com.sun.tools.javap.ClassWriter.getJavaName:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 340
            aload 0 /* this */
            aload 2 /* sb */
            ldc "<"
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$ClassType.typeArgs:Ljava/util/List;
            ldc ">"
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.appendIfNotEmpty:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         5: .line 341
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$ClassType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    6     1  type  Lcom/sun/tools/classfile/Type$ClassType;
            0    6     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitTypeParamType(com.sun.tools.classfile.Type$TypeParamType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$TypeParamType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$TypeParamType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 346
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 347
            ldc " extends "
            astore 3 /* sep */
        start local 3 // java.lang.String sep
         2: .line 348
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.classBound:Lcom/sun/tools/classfile/Type;
            ifnull 7
         3: .line 349
            aload 0 /* this */
            getfield com.sun.tools.javap.ClassWriter$JavaTypePrinter.this$0:Lcom/sun/tools/javap/ClassWriter;
            getfield com.sun.tools.javap.ClassWriter.options:Lcom/sun/tools/javap/Options;
            getfield com.sun.tools.javap.Options.verbose:Z
            ifne 4
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.classBound:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.classfile.Type.isObject:()Z
            ifne 7
         4: .line 350
      StackMap locals: java.lang.String
      StackMap stack:
            aload 2 /* sb */
            aload 3 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 351
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.classBound:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         6: .line 352
            ldc " & "
            astore 3 /* sep */
         7: .line 354
      StackMap locals:
      StackMap stack:
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.interfaceBounds:Ljava/util/List;
            ifnull 14
         8: .line 355
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$TypeParamType.interfaceBounds:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 13
      StackMap locals: com.sun.tools.javap.ClassWriter$JavaTypePrinter com.sun.tools.classfile.Type$TypeParamType java.lang.StringBuilder java.lang.String top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.classfile.Type
            astore 4 /* bound */
        start local 4 // com.sun.tools.classfile.Type bound
        10: .line 356
            aload 2 /* sb */
            aload 3 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 357
            aload 0 /* this */
            aload 2 /* sb */
            aload 4 /* bound */
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
        12: .line 358
            ldc " & "
            astore 3 /* sep */
        end local 4 // com.sun.tools.classfile.Type bound
        13: .line 355
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        14: .line 361
      StackMap locals: com.sun.tools.javap.ClassWriter$JavaTypePrinter com.sun.tools.classfile.Type$TypeParamType java.lang.StringBuilder java.lang.String
      StackMap stack:
            aload 2 /* sb */
            areturn
        end local 3 // java.lang.String sep
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$TypeParamType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   15     0   this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0   15     1   type  Lcom/sun/tools/classfile/Type$TypeParamType;
            0   15     2     sb  Ljava/lang/StringBuilder;
            2   15     3    sep  Ljava/lang/String;
           10   13     4  bound  Lcom/sun/tools/classfile/Type;
    MethodParameters:
      Name  Flags
      type  
      sb    

  public java.lang.StringBuilder visitWildcardType(com.sun.tools.classfile.Type$WildcardType, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/classfile/Type$WildcardType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // com.sun.tools.classfile.Type$WildcardType type
        start local 2 // java.lang.StringBuilder sb
         0: .line 366
            invokestatic com.sun.tools.javap.ClassWriter$JavaTypePrinter.$SWITCH_TABLE$com$sun$tools$classfile$Type$WildcardType$Kind:()[I
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$WildcardType.kind:Lcom/sun/tools/classfile/Type$WildcardType$Kind;
            invokevirtual com.sun.tools.classfile.Type$WildcardType$Kind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 1
                    2: 3
                    3: 6
              default: 9
          }
         1: .line 368
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc "?"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 369
            goto 10
         3: .line 371
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc "? extends "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 372
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$WildcardType.boundType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         5: .line 373
            goto 10
         6: .line 375
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            ldc "? super "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 376
            aload 0 /* this */
            aload 2 /* sb */
            aload 1 /* type */
            getfield com.sun.tools.classfile.Type$WildcardType.boundType:Lcom/sun/tools/classfile/Type;
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         8: .line 377
            goto 10
         9: .line 379
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 381
      StackMap locals:
      StackMap stack:
            aload 2 /* sb */
            areturn
        end local 2 // java.lang.StringBuilder sb
        end local 1 // com.sun.tools.classfile.Type$WildcardType type
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0   11     1  type  Lcom/sun/tools/classfile/Type$WildcardType;
            0   11     2    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      type  
      sb    

  private void append(java.lang.StringBuilder, com.sun.tools.classfile.Type);
    descriptor: (Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // com.sun.tools.classfile.Type t
         0: .line 385
            aload 2 /* t */
            aload 0 /* this */
            aload 1 /* sb */
            invokevirtual com.sun.tools.classfile.Type.accept:(Lcom/sun/tools/classfile/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 386
            return
        end local 2 // com.sun.tools.classfile.Type t
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    2     1    sb  Ljava/lang/StringBuilder;
            0    2     2     t  Lcom/sun/tools/classfile/Type;
    MethodParameters:
      Name  Flags
      sb    
      t     

  private void append(java.lang.StringBuilder, java.lang.String, java.util.List<? extends com.sun.tools.classfile.Type>, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=8, args_size=5
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // java.lang.String prefix
        start local 3 // java.util.List list
        start local 4 // java.lang.String suffix
         0: .line 389
            aload 1 /* sb */
            aload 2 /* prefix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 390
            ldc ""
            astore 5 /* sep */
        start local 5 // java.lang.String sep
         2: .line 391
            aload 3 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 7
      StackMap locals: com.sun.tools.javap.ClassWriter$JavaTypePrinter java.lang.StringBuilder java.lang.String java.util.List java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.classfile.Type
            astore 6 /* t */
        start local 6 // com.sun.tools.classfile.Type t
         4: .line 392
            aload 1 /* sb */
            aload 5 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 393
            aload 0 /* this */
            aload 1 /* sb */
            aload 6 /* t */
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Lcom/sun/tools/classfile/Type;)V
         6: .line 394
            ldc ", "
            astore 5 /* sep */
        end local 6 // com.sun.tools.classfile.Type t
         7: .line 391
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 396
            aload 1 /* sb */
            aload 4 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 397
            return
        end local 5 // java.lang.String sep
        end local 4 // java.lang.String suffix
        end local 3 // java.util.List list
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0   10     1      sb  Ljava/lang/StringBuilder;
            0   10     2  prefix  Ljava/lang/String;
            0   10     3    list  Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;
            0   10     4  suffix  Ljava/lang/String;
            2   10     5     sep  Ljava/lang/String;
            4    7     6       t  Lcom/sun/tools/classfile/Type;
    Signature: (Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;Ljava/lang/String;)V
    MethodParameters:
        Name  Flags
      sb      
      prefix  
      list    
      suffix  

  private void appendIfNotEmpty(java.lang.StringBuilder, java.lang.String, java.util.List<? extends com.sun.tools.classfile.Type>, java.lang.String);
    descriptor: (Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // java.lang.String prefix
        start local 3 // java.util.List list
        start local 4 // java.lang.String suffix
         0: .line 400
            aload 0 /* this */
            aload 3 /* list */
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.isEmpty:(Ljava/util/List;)Z
            ifne 2
         1: .line 401
            aload 0 /* this */
            aload 1 /* sb */
            aload 2 /* prefix */
            aload 3 /* list */
            aload 4 /* suffix */
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.append:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         2: .line 402
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.String suffix
        end local 3 // java.util.List list
        end local 2 // java.lang.String prefix
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    3     1      sb  Ljava/lang/StringBuilder;
            0    3     2  prefix  Ljava/lang/String;
            0    3     3    list  Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;
            0    3     4  suffix  Ljava/lang/String;
    Signature: (Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;Ljava/lang/String;)V
    MethodParameters:
        Name  Flags
      sb      
      prefix  
      list    
      suffix  

  private boolean isEmpty(java.util.List<? extends com.sun.tools.classfile.Type>);
    descriptor: (Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
        start local 1 // java.util.List list
         0: .line 405
            aload 1 /* list */
            ifnull 1
            aload 1 /* list */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // java.util.List list
        end local 0 // com.sun.tools.javap.ClassWriter$JavaTypePrinter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javap/ClassWriter$JavaTypePrinter;
            0    2     1  list  Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;
    Signature: (Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;)Z
    MethodParameters:
      Name  Flags
      list  

  public java.lang.Object visitSimpleType(com.sun.tools.classfile.Type$SimpleType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$SimpleType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitSimpleType:(Lcom/sun/tools/classfile/Type$SimpleType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitMethodType(com.sun.tools.classfile.Type$MethodType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$MethodType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitMethodType:(Lcom/sun/tools/classfile/Type$MethodType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitTypeParamType(com.sun.tools.classfile.Type$TypeParamType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$TypeParamType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitTypeParamType:(Lcom/sun/tools/classfile/Type$TypeParamType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitClassSigType(com.sun.tools.classfile.Type$ClassSigType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$ClassSigType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitClassSigType:(Lcom/sun/tools/classfile/Type$ClassSigType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitClassType(com.sun.tools.classfile.Type$ClassType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$ClassType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitClassType:(Lcom/sun/tools/classfile/Type$ClassType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitArrayType(com.sun.tools.classfile.Type$ArrayType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$ArrayType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitArrayType:(Lcom/sun/tools/classfile/Type$ArrayType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object visitWildcardType(com.sun.tools.classfile.Type$WildcardType, java.lang.Object);
    descriptor: (Lcom/sun/tools/classfile/Type$WildcardType;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            aload 2
            checkcast java.lang.StringBuilder
            invokevirtual com.sun.tools.javap.ClassWriter$JavaTypePrinter.visitWildcardType:(Lcom/sun/tools/classfile/Type$WildcardType;Ljava/lang/StringBuilder;)Ljava/lang/StringBuilder;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$com$sun$tools$classfile$Type$WildcardType$Kind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 278
            getstatic com.sun.tools.javap.ClassWriter$JavaTypePrinter.$SWITCH_TABLE$com$sun$tools$classfile$Type$WildcardType$Kind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.sun.tools.classfile.Type$WildcardType$Kind.values:()[Lcom/sun/tools/classfile/Type$WildcardType$Kind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.sun.tools.classfile.Type$WildcardType$Kind.EXTENDS:Lcom/sun/tools/classfile/Type$WildcardType$Kind;
            invokevirtual com.sun.tools.classfile.Type$WildcardType$Kind.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.sun.tools.classfile.Type$WildcardType$Kind.SUPER:Lcom/sun/tools/classfile/Type$WildcardType$Kind;
            invokevirtual com.sun.tools.classfile.Type$WildcardType$Kind.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.sun.tools.classfile.Type$WildcardType$Kind.UNBOUNDED:Lcom/sun/tools/classfile/Type$WildcardType$Kind;
            invokevirtual com.sun.tools.classfile.Type$WildcardType$Kind.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.sun.tools.javap.ClassWriter$JavaTypePrinter.$SWITCH_TABLE$com$sun$tools$classfile$Type$WildcardType$Kind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
}
Signature: Ljava/lang/Object;Lcom/sun/tools/classfile/Type$Visitor<Ljava/lang/StringBuilder;Ljava/lang/StringBuilder;>;
SourceFile: "ClassWriter.java"
NestHost: com.sun.tools.javap.ClassWriter
InnerClasses:
  public ArrayType = com.sun.tools.classfile.Type$ArrayType of com.sun.tools.classfile.Type
  public ClassSigType = com.sun.tools.classfile.Type$ClassSigType of com.sun.tools.classfile.Type
  public ClassType = com.sun.tools.classfile.Type$ClassType of com.sun.tools.classfile.Type
  public MethodType = com.sun.tools.classfile.Type$MethodType of com.sun.tools.classfile.Type
  public SimpleType = com.sun.tools.classfile.Type$SimpleType of com.sun.tools.classfile.Type
  public TypeParamType = com.sun.tools.classfile.Type$TypeParamType of com.sun.tools.classfile.Type
  public abstract Visitor = com.sun.tools.classfile.Type$Visitor of com.sun.tools.classfile.Type
  public WildcardType = com.sun.tools.classfile.Type$WildcardType of com.sun.tools.classfile.Type
  public final Kind = com.sun.tools.classfile.Type$WildcardType$Kind of com.sun.tools.classfile.Type$WildcardType
  JavaTypePrinter = com.sun.tools.javap.ClassWriter$JavaTypePrinter of com.sun.tools.javap.ClassWriter