public abstract class com.sun.tools.javac.code.Type extends com.sun.tools.javac.code.AnnoConstruct implements javax.lang.model.type.TypeMirror
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.javac.code.Type
  super_class: com.sun.tools.javac.code.AnnoConstruct
{
  protected final com.sun.tools.javac.code.TypeMetadata metadata;
    descriptor: Lcom/sun/tools/javac/code/TypeMetadata;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public static final com.sun.tools.javac.code.Type$JCNoType noType;
    descriptor: Lcom/sun/tools/javac/code/Type$JCNoType;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.sun.tools.javac.code.Type$JCNoType recoveryType;
    descriptor: Lcom/sun/tools/javac/code/Type$JCNoType;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final com.sun.tools.javac.code.Type$JCNoType stuckType;
    descriptor: Lcom/sun/tools/javac/code/Type$JCNoType;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static boolean moreInfo;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public com.sun.tools.javac.code.Symbol$TypeSymbol tsym;
    descriptor: Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
    flags: (0x0001) ACC_PUBLIC

  private static final com.sun.tools.javac.code.Types$TypeMapping<java.lang.Void> stripMetadata;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeMapping;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$TypeMapping<Ljava/lang/Void;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 96
            new com.sun.tools.javac.code.Type$1
            dup
            invokespecial com.sun.tools.javac.code.Type$1.<init>:()V
            putstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
         1: .line 104
            new com.sun.tools.javac.code.Type$2
            dup
            invokespecial com.sun.tools.javac.code.Type$2.<init>:()V
            putstatic com.sun.tools.javac.code.Type.recoveryType:Lcom/sun/tools/javac/code/Type$JCNoType;
         2: .line 112
            new com.sun.tools.javac.code.Type$3
            dup
            invokespecial com.sun.tools.javac.code.Type$3.<init>:()V
            putstatic com.sun.tools.javac.code.Type.stuckType:Lcom/sun/tools/javac/code/Type$JCNoType;
         3: .line 122
            iconst_0
            putstatic com.sun.tools.javac.code.Type.moreInfo:Z
         4: .line 365
            new com.sun.tools.javac.code.Type$4
            dup
            invokespecial com.sun.tools.javac.code.Type$4.<init>:()V
            putstatic com.sun.tools.javac.code.Type.stripMetadata:Lcom/sun/tools/javac/code/Types$TypeMapping;
         5: .line 385
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public com.sun.tools.javac.code.TypeMetadata getMetadata();
    descriptor: ()Lcom/sun/tools/javac/code/TypeMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 88
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.TypeMetadata$Entry getMetadataOfKind(com.sun.tools.javac.code.TypeMetadata$Entry$Kind);
    descriptor: (Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;)Lcom/sun/tools/javac/code/TypeMetadata$Entry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.TypeMetadata$Entry$Kind kind
         0: .line 92
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
            aload 1 /* kind */
            invokevirtual com.sun.tools.javac.code.TypeMetadata.get:(Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;)Lcom/sun/tools/javac/code/TypeMetadata$Entry;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aconst_null
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.TypeMetadata$Entry
         2: areturn
        end local 1 // com.sun.tools.javac.code.TypeMetadata$Entry$Kind kind
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Type;
            0    3     1  kind  Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;
    MethodParameters:
      Name  Flags
      kind  final

  public boolean hasTag(com.sun.tools.javac.code.TypeTag);
    descriptor: (Lcom/sun/tools/javac/code/TypeTag;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.TypeTag tag
         0: .line 133
            aload 1 /* tag */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.code.TypeTag tag
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;
            0    2     1   tag  Lcom/sun/tools/javac/code/TypeTag;
    MethodParameters:
      Name  Flags
      tag   

  public abstract com.sun.tools.javac.code.TypeTag getTag();
    descriptor: ()Lcom/sun/tools/javac/code/TypeTag;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

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

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

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

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

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

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

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

  public java.lang.Object constValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 177
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

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

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

  public com.sun.tools.javac.code.Type getModelType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 198
            aload 0 /* this */
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public static com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getModelTypes(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // com.sun.tools.javac.util.List ts
         0: .line 202
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 1 /* lb */
        start local 1 // com.sun.tools.javac.util.ListBuffer lb
         1: .line 203
            aload 0 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         3: .line 204
            aload 1 /* lb */
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getModelType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 2 // com.sun.tools.javac.code.Type t
         4: .line 203
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 205
            aload 1 /* lb */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.ListBuffer lb
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    6     1    lb  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     2     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  public com.sun.tools.javac.code.Type getOriginalType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 211
            aload 0 /* this */
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public <R, S> R accept(com.sun.tools.javac.code.Type$Visitor<R, S>, );
    descriptor: (Lcom/sun/tools/javac/code/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Type$Visitor v
        start local 2 // java.lang.Object s
         0: .line 214
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* s */
            invokeinterface com.sun.tools.javac.code.Type$Visitor.visitType:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object s
        end local 1 // com.sun.tools.javac.code.Type$Visitor v
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
            0    1     1     v  Lcom/sun/tools/javac/code/Type$Visitor<TR;TS;>;
            0    1     2     s  TS;
    Signature: <R:Ljava/lang/Object;S:Ljava/lang/Object;>(Lcom/sun/tools/javac/code/Type$Visitor<TR;TS;>;TS;)TR;
    MethodParameters:
      Name  Flags
      v     
      s     

  public void <init>(com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/TypeMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        start local 2 // com.sun.tools.javac.code.TypeMetadata metadata
         0: .line 219
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.AnnoConstruct.<init>:()V
         1: .line 220
            aload 2 /* metadata */
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 221
            aload 0 /* this */
            aload 1 /* tsym */
            putfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
         3: .line 222
            aload 0 /* this */
            aload 2 /* metadata */
            putfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
         4: .line 223
            return
        end local 2 // com.sun.tools.javac.code.TypeMetadata metadata
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/tools/javac/code/Type;
            0    5     1      tsym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    5     2  metadata  Lcom/sun/tools/javac/code/TypeMetadata;
    MethodParameters:
          Name  Flags
      tsym      
      metadata  

  public <Z> com.sun.tools.javac.code.Type map(com.sun.tools.javac.code.Types$TypeMapping<Z>, Z);
    descriptor: (Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Types$TypeMapping mapping
        start local 2 // java.lang.Object arg
         0: .line 304
            aload 1 /* mapping */
            aload 0 /* this */
            aload 2 /* arg */
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 2 // java.lang.Object arg
        end local 1 // com.sun.tools.javac.code.Types$TypeMapping mapping
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/code/Type;
            0    1     1  mapping  Lcom/sun/tools/javac/code/Types$TypeMapping<TZ;>;
            0    1     2      arg  TZ;
    Signature: <Z:Ljava/lang/Object;>(Lcom/sun/tools/javac/code/Types$TypeMapping<TZ;>;TZ;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      mapping  
      arg      

  public <Z> com.sun.tools.javac.code.Type map(com.sun.tools.javac.code.Types$TypeMapping<Z>);
    descriptor: (Lcom/sun/tools/javac/code/Types$TypeMapping;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Types$TypeMapping mapping
         0: .line 310
            aload 1 /* mapping */
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Types$TypeMapping mapping
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/tools/javac/code/Type;
            0    1     1  mapping  Lcom/sun/tools/javac/code/Types$TypeMapping<TZ;>;
    Signature: <Z:Ljava/lang/Object;>(Lcom/sun/tools/javac/code/Types$TypeMapping<TZ;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      mapping  

  public com.sun.tools.javac.code.Type constType(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.Object constValue
         0: .line 317
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 1 // java.lang.Object constValue
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lcom/sun/tools/javac/code/Type;
            0    1     1  constValue  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      constValue  

  public com.sun.tools.javac.code.Type baseType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 325
            aload 0 /* this */
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  protected com.sun.tools.javac.code.Type typeNoMetadata();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 334
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
            getstatic com.sun.tools.javac.code.TypeMetadata.EMPTY:Lcom/sun/tools/javac/code/TypeMetadata;
            if_acmpne 1
            aload 0 /* this */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.baseType:()Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         2: areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Type;

  public abstract com.sun.tools.javac.code.Type cloneWithMetadata(com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      metadata  

  protected boolean needsStripping();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 346
            iconst_0
            ireturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Type stripMetadataIfNeeded();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 356
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.needsStripping:()Z
            ifeq 2
         1: .line 357
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Type.stripMetadata:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aconst_null
            invokevirtual com.sun.tools.javac.code.Type.accept:(Lcom/sun/tools/javac/code/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            goto 3
         2: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         3: .line 356
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Type stripMetadata();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 362
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Type.stripMetadata:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aconst_null
            invokevirtual com.sun.tools.javac.code.Type.accept:(Lcom/sun/tools/javac/code/Type$Visitor;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Type annotatedType(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Attribute$TypeCompound>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.util.List annos
         0: .line 388
            new com.sun.tools.javac.code.TypeMetadata$Annotations
            dup
            aload 1 /* annos */
            invokespecial com.sun.tools.javac.code.TypeMetadata$Annotations.<init>:(Lcom/sun/tools/javac/util/List;)V
            astore 2 /* annoMetadata */
        start local 2 // com.sun.tools.javac.code.TypeMetadata$Entry annoMetadata
         1: .line 389
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.metadata:Lcom/sun/tools/javac/code/TypeMetadata;
            aload 2 /* annoMetadata */
            invokevirtual com.sun.tools.javac.code.TypeMetadata.combine:(Lcom/sun/tools/javac/code/TypeMetadata$Entry;)Lcom/sun/tools/javac/code/TypeMetadata;
            invokevirtual com.sun.tools.javac.code.Type.cloneWithMetadata:(Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 2 // com.sun.tools.javac.code.TypeMetadata$Entry annoMetadata
        end local 1 // com.sun.tools.javac.util.List annos
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lcom/sun/tools/javac/code/Type;
            0    2     1         annos  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Attribute$TypeCompound;>;
            1    2     2  annoMetadata  Lcom/sun/tools/javac/code/TypeMetadata$Entry;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Attribute$TypeCompound;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      annos  final

  public boolean isAnnotated();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 394
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.TypeMetadata$Entry$Kind.ANNOTATIONS:Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;
            invokevirtual com.sun.tools.javac.code.Type.getMetadataOfKind:(Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;)Lcom/sun/tools/javac/code/TypeMetadata$Entry;
            checkcast com.sun.tools.javac.code.TypeMetadata$Annotations
         1: .line 393
            astore 1 /* metadata */
        start local 1 // com.sun.tools.javac.code.TypeMetadata$Annotations metadata
         2: .line 396
            aload 1 /* metadata */
            ifnull 3
            aload 1 /* metadata */
            invokevirtual com.sun.tools.javac.code.TypeMetadata$Annotations.getAnnotations:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 3
            iconst_1
            ireturn
      StackMap locals: com.sun.tools.javac.code.TypeMetadata$Annotations
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.code.TypeMetadata$Annotations metadata
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/javac/code/Type;
            2    4     1  metadata  Lcom/sun/tools/javac/code/TypeMetadata$Annotations;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Attribute$TypeCompound> getAnnotationMirrors();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 402
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.TypeMetadata$Entry$Kind.ANNOTATIONS:Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;
            invokevirtual com.sun.tools.javac.code.Type.getMetadataOfKind:(Lcom/sun/tools/javac/code/TypeMetadata$Entry$Kind;)Lcom/sun/tools/javac/code/TypeMetadata$Entry;
            checkcast com.sun.tools.javac.code.TypeMetadata$Annotations
         1: .line 401
            astore 1 /* metadata */
        start local 1 // com.sun.tools.javac.code.TypeMetadata$Annotations metadata
         2: .line 404
            aload 1 /* metadata */
            ifnonnull 3
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            goto 4
      StackMap locals: com.sun.tools.javac.code.TypeMetadata$Annotations
      StackMap stack:
         3: aload 1 /* metadata */
            invokevirtual com.sun.tools.javac.code.TypeMetadata$Annotations.getAnnotations:()Lcom/sun/tools/javac/util/List;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.util.List
         4: areturn
        end local 1 // com.sun.tools.javac.code.TypeMetadata$Annotations metadata
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/tools/javac/code/Type;
            2    5     1  metadata  Lcom/sun/tools/javac/code/TypeMetadata$Annotations;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Attribute$TypeCompound;>;

  public <A extends java.lang.annotation.Annotation> A getAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.Class annotationType
         0: .line 410
            aconst_null
            areturn
        end local 1 // java.lang.Class annotationType
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lcom/sun/tools/javac/code/Type;
            0    1     1  annotationType  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    MethodParameters:
                Name  Flags
      annotationType  

  public <A extends java.lang.annotation.Annotation> A[] getAnnotationsByType(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.Class annotationType
         0: .line 417
            aload 1 /* annotationType */
            iconst_0
            invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation[]
            astore 2 /* tmp */
        start local 2 // java.lang.annotation.Annotation[] tmp
         1: .line 418
            aload 2 /* tmp */
            areturn
        end local 2 // java.lang.annotation.Annotation[] tmp
        end local 1 // java.lang.Class annotationType
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lcom/sun/tools/javac/code/Type;
            0    2     1  annotationType  Ljava/lang/Class<TA;>;
            1    2     2             tmp  [Ljava/lang/annotation/Annotation;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
    MethodParameters:
                Name  Flags
      annotationType  

  public static com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> baseTypes(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.util.List ts
         0: .line 424
            aload 0 /* ts */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 5
         1: .line 425
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.baseType:()Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
        start local 1 // com.sun.tools.javac.code.Type t
         2: .line 426
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokestatic com.sun.tools.javac.code.Type.baseTypes:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 2 /* baseTypes */
        start local 2 // com.sun.tools.javac.util.List baseTypes
         3: .line 427
            aload 1 /* t */
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            if_acmpne 4
            aload 2 /* baseTypes */
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            if_acmpeq 5
         4: .line 428
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.util.List
      StackMap stack:
            aload 2 /* baseTypes */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.List baseTypes
        end local 1 // com.sun.tools.javac.code.Type t
         5: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* ts */
            areturn
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0         ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    5     1          t  Lcom/sun/tools/javac/code/Type;
            3    5     2  baseTypes  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  protected void appendAnnotationsString(java.lang.StringBuilder, boolean);
    descriptor: (Ljava/lang/StringBuilder;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.StringBuilder sb
        start local 2 // boolean prefix
         0: .line 435
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.isAnnotated:()Z
            ifeq 5
         1: .line 436
            iload 2 /* prefix */
            ifeq 3
         2: .line 437
            aload 1 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 439
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.getAnnotationMirrors:()Lcom/sun/tools/javac/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         4: .line 440
            aload 1 /* sb */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean prefix
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/tools/javac/code/Type;
            0    6     1      sb  Ljava/lang/StringBuilder;
            0    6     2  prefix  Z
    MethodParameters:
        Name  Flags
      sb      
      prefix  

  protected void appendAnnotationsString(java.lang.StringBuilder);
    descriptor: (Ljava/lang/StringBuilder;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.StringBuilder sb
         0: .line 445
            aload 0 /* this */
            aload 1 /* sb */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Type.appendAnnotationsString:(Ljava/lang/StringBuilder;Z)V
         1: .line 446
            return
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;
            0    2     1    sb  Ljava/lang/StringBuilder;
    MethodParameters:
      Name  Flags
      sb    

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 452
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 453
            aload 0 /* this */
            aload 1 /* sb */
            invokevirtual com.sun.tools.javac.code.Type.appendAnnotationsString:(Ljava/lang/StringBuilder;)V
         2: .line 454
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            ifnull 3
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.name:Lcom/sun/tools/javac/util/Name;
            ifnonnull 5
         3: .line 455
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* sb */
            ldc "<none>"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 456
            goto 6
         5: .line 457
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
         6: .line 459
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.code.Type.moreInfo:Z
            ifeq 8
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.TypeTag.TYPEVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 8
         7: .line 460
            aload 1 /* sb */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.hashCode:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
         8: .line 462
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/code/Type;
            1    9     1    sb  Ljava/lang/StringBuilder;

  public static java.lang.String toString(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.util.List ts
         0: .line 471
            aload 0 /* ts */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         1: .line 472
            ldc ""
            areturn
         2: .line 474
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* buf */
        start local 1 // java.lang.StringBuilder buf
         3: .line 475
            aload 1 /* buf */
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 476
            aload 0 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* l */
        start local 2 // com.sun.tools.javac.util.List l
         5: goto 8
         6: .line 477
      StackMap locals: java.lang.StringBuilder com.sun.tools.javac.util.List
      StackMap stack:
            aload 1 /* buf */
            ldc ","
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 476
            aload 2 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* l */
      StackMap locals:
      StackMap stack:
         8: aload 2 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 6
        end local 2 // com.sun.tools.javac.util.List l
         9: .line 478
            aload 1 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder buf
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   10     1   buf  Ljava/lang/StringBuilder;
            5    9     2     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Ljava/lang/String;
    MethodParameters:
      Name  Flags
      ts    

  public java.lang.String stringValue();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 486
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.constValue:()Ljava/lang/Object;
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 1 /* cv */
        start local 1 // java.lang.Object cv
         1: .line 487
            aload 1 /* cv */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.Object cv
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;
            1    2     1    cv  Ljava/lang/Object;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // java.lang.Object t
         0: .line 495
            aload 0 /* this */
            aload 1 /* t */
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object t
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;
            0    2     1     t  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      t     

  public boolean equalsIgnoreMetadata(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 499
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.typeNoMetadata:()Lcom/sun/tools/javac/code/Type;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.typeNoMetadata:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 504
            aload 0 /* this */
            invokespecial java.lang.Object.hashCode:()I
            ireturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public java.lang.String argtypes(boolean);
    descriptor: (Z)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // boolean varargs
         0: .line 508
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            astore 2 /* args */
        start local 2 // com.sun.tools.javac.util.List args
         1: .line 509
            iload 1 /* varargs */
            ifne 2
            aload 2 /* args */
            invokevirtual com.sun.tools.javac.util.List.toString:()Ljava/lang/String;
            areturn
         2: .line 510
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 3 /* buf */
        start local 3 // java.lang.StringBuilder buf
         3: .line 511
            goto 7
         4: .line 512
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 3 /* buf */
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         5: .line 513
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* args */
         6: .line 514
            aload 3 /* buf */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 511
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 4
         8: .line 516
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getstatic com.sun.tools.javac.code.TypeTag.ARRAY:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 14
         9: .line 517
            aload 3 /* buf */
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$ArrayType
            getfield com.sun.tools.javac.code.Type$ArrayType.elemtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        10: .line 518
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.getAnnotationMirrors:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 12
        11: .line 519
            aload 3 /* buf */
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.getAnnotationMirrors:()Lcom/sun/tools/javac/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        12: .line 521
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            ldc "..."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 522
            goto 15
        14: .line 523
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            aload 2 /* args */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        15: .line 525
      StackMap locals:
      StackMap stack:
            aload 3 /* buf */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder buf
        end local 2 // com.sun.tools.javac.util.List args
        end local 1 // boolean varargs
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Lcom/sun/tools/javac/code/Type;
            0   16     1  varargs  Z
            1   16     2     args  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   16     3      buf  Ljava/lang/StringBuilder;
    MethodParameters:
         Name  Flags
      varargs  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getTypeArguments();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 530
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public com.sun.tools.javac.code.Type getEnclosingType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 531
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getParameterTypes();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 532
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public com.sun.tools.javac.code.Type getReturnType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 533
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Type getReceiverType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 534
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getThrownTypes();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 535
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public com.sun.tools.javac.code.Type getUpperBound();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 536
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Type getLowerBound();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 537
            aconst_null
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> allparams();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 546
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

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

  public static boolean isErroneous(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.List ts
         0: .line 555
            aload 0 /* ts */
            astore 1 /* l */
        start local 1 // com.sun.tools.javac.util.List l
         1: goto 4
         2: .line 556
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 1 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifeq 3
            iconst_1
            ireturn
         3: .line 555
      StackMap locals:
      StackMap stack:
            aload 1 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* l */
      StackMap locals:
      StackMap stack:
         4: aload 1 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 2
        end local 1 // com.sun.tools.javac.util.List l
         5: .line 557
            iconst_0
            ireturn
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    5     1     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Z
    MethodParameters:
      Name  Flags
      ts    

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

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

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

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

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

  public boolean isInterface();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 598
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.flags:()J
            ldc 512
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;

  public boolean isFinal();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 602
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.flags:()J
            ldc 16
            land
            lconst_0
            lcmp
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Type;

  public boolean contains(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 609
            aload 1 /* t */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type.equalsIgnoreMetadata:(Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public static boolean contains(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.util.List ts
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 613
            aload 0 /* ts */
            astore 2 /* l */
        start local 2 // com.sun.tools.javac.util.List l
         1: .line 614
            goto 4
         2: .line 616
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 2 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.contains:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 3
            iconst_1
            ireturn
         3: .line 615
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* l */
         4: .line 614
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 2
        end local 2 // com.sun.tools.javac.util.List l
         5: .line 617
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    6     1     t  Lcom/sun/tools/javac/code/Type;
            1    5     2     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/code/Type;)Z
    MethodParameters:
      Name  Flags
      ts    
      t     

  public boolean containsAny(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 623
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         2: .line 624
            aload 0 /* this */
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.code.Type.contains:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 3
            iconst_1
            ireturn
        end local 2 // com.sun.tools.javac.code.Type t
         3: .line 623
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 625
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/code/Type;
            0    5     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    3     2     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Z
    MethodParameters:
      Name  Flags
      ts    

  public static boolean containsAny(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.util.List ts1
        start local 1 // com.sun.tools.javac.util.List ts2
         0: .line 629
            aload 0 /* ts1 */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t */
        start local 2 // com.sun.tools.javac.code.Type t
         2: .line 630
            aload 2 /* t */
            aload 1 /* ts2 */
            invokevirtual com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;)Z
            ifeq 3
            iconst_1
            ireturn
        end local 2 // com.sun.tools.javac.code.Type t
         3: .line 629
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 631
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.util.List ts2
        end local 0 // com.sun.tools.javac.util.List ts1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0   ts1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    5     1   ts2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    3     2     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Z
    MethodParameters:
      Name  Flags
      ts1   
      ts2   

  public static com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> filter(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.Filter<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.util.List ts
        start local 1 // com.sun.tools.javac.util.Filter tf
         0: .line 635
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.ListBuffer buf
         1: .line 636
            aload 0 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.Filter com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         3: .line 637
            aload 1 /* tf */
            aload 3 /* t */
            invokeinterface com.sun.tools.javac.util.Filter.accepts:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 638
            aload 2 /* buf */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 3 // com.sun.tools.javac.code.Type t
         5: .line 636
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 641
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer buf
        end local 1 // com.sun.tools.javac.util.Filter tf
        end local 0 // com.sun.tools.javac.util.List ts
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     1    tf  Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Type;>;
            1    7     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    5     3     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    
      tf    

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

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

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

  public com.sun.tools.javac.code.Type withTypeVar(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 647
            aload 0 /* this */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type$MethodType asMethodType();
    descriptor: ()Lcom/sun/tools/javac/code/Type$MethodType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 651
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public void complete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 655
            return
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public com.sun.tools.javac.code.Symbol$TypeSymbol asElement();
    descriptor: ()Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 658
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public javax.lang.model.type.TypeKind getKind();
    descriptor: ()Ljavax/lang/model/type/TypeKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type this
         0: .line 663
            getstatic javax.lang.model.type.TypeKind.OTHER:Ljavax/lang/model/type/TypeKind;
            areturn
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;

  public <R, P> R accept(javax.lang.model.type.TypeVisitor<R, P>, );
    descriptor: (Ljavax/lang/model/type/TypeVisitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type this
        start local 1 // javax.lang.model.type.TypeVisitor v
        start local 2 // java.lang.Object p
         0: .line 668
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 2 // java.lang.Object p
        end local 1 // javax.lang.model.type.TypeVisitor v
        end local 0 // com.sun.tools.javac.code.Type this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type;
            0    1     1     v  Ljavax/lang/model/type/TypeVisitor<TR;TP;>;
            0    1     2     p  TP;
    Signature: <R:Ljava/lang/Object;P:Ljava/lang/Object;>(Ljavax/lang/model/type/TypeVisitor<TR;TP;>;TP;)TR;
    MethodParameters:
      Name  Flags
      v     
      p     

  public java.util.List getAnnotationMirrors();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Type.getAnnotationMirrors:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Type.java"
NestMembers:
  com.sun.tools.javac.code.Type$1  com.sun.tools.javac.code.Type$2  com.sun.tools.javac.code.Type$3  com.sun.tools.javac.code.Type$4  com.sun.tools.javac.code.Type$ArrayType  com.sun.tools.javac.code.Type$ArrayType$1  com.sun.tools.javac.code.Type$ArrayType$2  com.sun.tools.javac.code.Type$BottomType  com.sun.tools.javac.code.Type$CapturedType  com.sun.tools.javac.code.Type$CapturedType$1  com.sun.tools.javac.code.Type$ClassType  com.sun.tools.javac.code.Type$ClassType$1  com.sun.tools.javac.code.Type$ClassType$2  com.sun.tools.javac.code.Type$DelegatedType  com.sun.tools.javac.code.Type$ErasedClassType  com.sun.tools.javac.code.Type$ErrorType  com.sun.tools.javac.code.Type$ErrorType$1  com.sun.tools.javac.code.Type$ForAll  com.sun.tools.javac.code.Type$IntersectionClassType  com.sun.tools.javac.code.Type$JCNoType  com.sun.tools.javac.code.Type$JCPrimitiveType  com.sun.tools.javac.code.Type$JCPrimitiveType$1  com.sun.tools.javac.code.Type$JCPrimitiveType$2  com.sun.tools.javac.code.Type$JCVoidType  com.sun.tools.javac.code.Type$MethodType  com.sun.tools.javac.code.Type$ModuleType  com.sun.tools.javac.code.Type$PackageType  com.sun.tools.javac.code.Type$StructuralTypeMapping  com.sun.tools.javac.code.Type$StructuralTypeMapping$1  com.sun.tools.javac.code.Type$StructuralTypeMapping$2  com.sun.tools.javac.code.Type$StructuralTypeMapping$3  com.sun.tools.javac.code.Type$StructuralTypeMapping$4  com.sun.tools.javac.code.Type$TypeVar  com.sun.tools.javac.code.Type$TypeVar$1  com.sun.tools.javac.code.Type$UndetVar  com.sun.tools.javac.code.Type$UndetVar$1  com.sun.tools.javac.code.Type$UndetVar$InferenceBound  com.sun.tools.javac.code.Type$UndetVar$InferenceBound$1  com.sun.tools.javac.code.Type$UndetVar$InferenceBound$2  com.sun.tools.javac.code.Type$UndetVar$InferenceBound$3  com.sun.tools.javac.code.Type$UndetVar$Kind  com.sun.tools.javac.code.Type$UndetVar$UndetVarListener  com.sun.tools.javac.code.Type$UnionClassType  com.sun.tools.javac.code.Type$UnknownType  com.sun.tools.javac.code.Type$Visitor  com.sun.tools.javac.code.Type$WildcardType  com.sun.tools.javac.code.Type$WildcardType$1
InnerClasses:
  public TypeCompound = com.sun.tools.javac.code.Attribute$TypeCompound of com.sun.tools.javac.code.Attribute
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  com.sun.tools.javac.code.Type$1
  com.sun.tools.javac.code.Type$2
  com.sun.tools.javac.code.Type$3
  com.sun.tools.javac.code.Type$4
  public ArrayType = com.sun.tools.javac.code.Type$ArrayType of com.sun.tools.javac.code.Type
  BottomType = com.sun.tools.javac.code.Type$BottomType of com.sun.tools.javac.code.Type
  public CapturedType = com.sun.tools.javac.code.Type$CapturedType of com.sun.tools.javac.code.Type
  public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  public abstract DelegatedType = com.sun.tools.javac.code.Type$DelegatedType of com.sun.tools.javac.code.Type
  public ErasedClassType = com.sun.tools.javac.code.Type$ErasedClassType of com.sun.tools.javac.code.Type
  public ErrorType = com.sun.tools.javac.code.Type$ErrorType of com.sun.tools.javac.code.Type
  public ForAll = com.sun.tools.javac.code.Type$ForAll of com.sun.tools.javac.code.Type
  public IntersectionClassType = com.sun.tools.javac.code.Type$IntersectionClassType of com.sun.tools.javac.code.Type
  public JCNoType = com.sun.tools.javac.code.Type$JCNoType of com.sun.tools.javac.code.Type
  public JCPrimitiveType = com.sun.tools.javac.code.Type$JCPrimitiveType of com.sun.tools.javac.code.Type
  public JCVoidType = com.sun.tools.javac.code.Type$JCVoidType of com.sun.tools.javac.code.Type
  public MethodType = com.sun.tools.javac.code.Type$MethodType of com.sun.tools.javac.code.Type
  public ModuleType = com.sun.tools.javac.code.Type$ModuleType of com.sun.tools.javac.code.Type
  public PackageType = com.sun.tools.javac.code.Type$PackageType of com.sun.tools.javac.code.Type
  public abstract StructuralTypeMapping = com.sun.tools.javac.code.Type$StructuralTypeMapping of com.sun.tools.javac.code.Type
  public TypeVar = com.sun.tools.javac.code.Type$TypeVar of com.sun.tools.javac.code.Type
  public UndetVar = com.sun.tools.javac.code.Type$UndetVar of com.sun.tools.javac.code.Type
  public UnionClassType = com.sun.tools.javac.code.Type$UnionClassType of com.sun.tools.javac.code.Type
  public UnknownType = com.sun.tools.javac.code.Type$UnknownType of com.sun.tools.javac.code.Type
  public abstract Visitor = com.sun.tools.javac.code.Type$Visitor of com.sun.tools.javac.code.Type
  public WildcardType = com.sun.tools.javac.code.Type$WildcardType of com.sun.tools.javac.code.Type
  public Annotations = com.sun.tools.javac.code.TypeMetadata$Annotations of com.sun.tools.javac.code.TypeMetadata
  public abstract Entry = com.sun.tools.javac.code.TypeMetadata$Entry of com.sun.tools.javac.code.TypeMetadata
  public final Kind = com.sun.tools.javac.code.TypeMetadata$Entry$Kind of com.sun.tools.javac.code.TypeMetadata$Entry
  public TypeMapping = com.sun.tools.javac.code.Types$TypeMapping of com.sun.tools.javac.code.Types