public abstract class com.sun.tools.classfile.Type
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.classfile.Type
  super_class: java.lang.Object
{
  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.classfile.Type this
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.tools.classfile.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/classfile/Type;

  public boolean isObject();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.classfile.Type this
         0: .line 46
            iconst_0
            ireturn
        end local 0 // com.sun.tools.classfile.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/classfile/Type;

  public abstract <R, D> R accept(com.sun.tools.classfile.Type$Visitor<R, D>, );
    descriptor: (Lcom/sun/tools/classfile/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <R:Ljava/lang/Object;D:Ljava/lang/Object;>(Lcom/sun/tools/classfile/Type$Visitor<TR;TD;>;TD;)TR;
    MethodParameters:
         Name  Flags
      visitor  
      data     

  protected static 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: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // java.lang.StringBuilder sb
        start local 1 // java.lang.String prefix
        start local 2 // java.util.List types
        start local 3 // java.lang.String suffix
         0: .line 52
            aload 0 /* sb */
            aload 1 /* prefix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         1: .line 53
            ldc ""
            astore 4 /* sep */
        start local 4 // java.lang.String sep
         2: .line 54
            aload 2 /* types */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 7
      StackMap locals: java.lang.StringBuilder java.lang.String java.util.List java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         3: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.classfile.Type
            astore 5 /* t */
        start local 5 // com.sun.tools.classfile.Type t
         4: .line 55
            aload 0 /* sb */
            aload 4 /* sep */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 56
            aload 0 /* sb */
            aload 5 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         6: .line 57
            ldc ", "
            astore 4 /* sep */
        end local 5 // com.sun.tools.classfile.Type t
         7: .line 54
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         8: .line 59
            aload 0 /* sb */
            aload 3 /* suffix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 60
            return
        end local 4 // java.lang.String sep
        end local 3 // java.lang.String suffix
        end local 2 // java.util.List types
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0      sb  Ljava/lang/StringBuilder;
            0   10     1  prefix  Ljava/lang/String;
            0   10     2   types  Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;
            0   10     3  suffix  Ljava/lang/String;
            2   10     4     sep  Ljava/lang/String;
            4    7     5       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  
      types   
      suffix  

  protected static 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: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.lang.StringBuilder sb
        start local 1 // java.lang.String prefix
        start local 2 // java.util.List types
        start local 3 // java.lang.String suffix
         0: .line 63
            aload 2 /* types */
            ifnull 2
            aload 2 /* types */
            invokeinterface java.util.List.size:()I
            ifle 2
         1: .line 64
            aload 0 /* sb */
            aload 1 /* prefix */
            aload 2 /* types */
            aload 3 /* suffix */
            invokestatic com.sun.tools.classfile.Type.append:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V
         2: .line 65
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String suffix
        end local 2 // java.util.List types
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.StringBuilder sb
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      sb  Ljava/lang/StringBuilder;
            0    3     1  prefix  Ljava/lang/String;
            0    3     2   types  Ljava/util/List<+Lcom/sun/tools/classfile/Type;>;
            0    3     3  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  
      types   
      suffix  
}
SourceFile: "Type.java"
NestMembers:
  com.sun.tools.classfile.Type$ArrayType  com.sun.tools.classfile.Type$ClassSigType  com.sun.tools.classfile.Type$ClassType  com.sun.tools.classfile.Type$MethodType  com.sun.tools.classfile.Type$SimpleType  com.sun.tools.classfile.Type$TypeParamType  com.sun.tools.classfile.Type$Visitor  com.sun.tools.classfile.Type$WildcardType  com.sun.tools.classfile.Type$WildcardType$Kind
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