public class com.sun.tools.javac.code.Type$TypeVar extends com.sun.tools.javac.code.Type implements javax.lang.model.type.TypeVariable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.Type$TypeVar
  super_class: com.sun.tools.javac.code.Type
{
  private com.sun.tools.javac.code.Type _bound;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE

  public com.sun.tools.javac.code.Type lower;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC

  int rank_field;
    descriptor: I
    flags: (0x0000) 

  public void <init>(com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Symbol, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // com.sun.tools.javac.util.Name name
        start local 2 // com.sun.tools.javac.code.Symbol owner
        start local 3 // com.sun.tools.javac.code.Type lower
         0: .line 1620
            aload 0 /* this */
            aconst_null
            getstatic com.sun.tools.javac.code.TypeMetadata.EMPTY:Lcom/sun/tools/javac/code/TypeMetadata;
            invokespecial com.sun.tools.javac.code.Type.<init>:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/TypeMetadata;)V
         1: .line 1610
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Type$TypeVar._bound:Lcom/sun/tools/javac/code/Type;
         2: .line 1667
            aload 0 /* this */
            iconst_m1
            putfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
         3: .line 1621
            aload 3 /* lower */
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1622
            aload 0 /* this */
            new com.sun.tools.javac.code.Symbol$TypeVariableSymbol
            dup
            lconst_0
            aload 1 /* name */
            aload 0 /* this */
            aload 2 /* owner */
            invokespecial com.sun.tools.javac.code.Symbol$TypeVariableSymbol.<init>:(JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)V
            putfield com.sun.tools.javac.code.Type$TypeVar.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
         5: .line 1623
            aload 0 /* this */
            aconst_null
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
         6: .line 1624
            aload 0 /* this */
            aload 3 /* lower */
            putfield com.sun.tools.javac.code.Type$TypeVar.lower:Lcom/sun/tools/javac/code/Type;
         7: .line 1625
            return
        end local 3 // com.sun.tools.javac.code.Type lower
        end local 2 // com.sun.tools.javac.code.Symbol owner
        end local 1 // com.sun.tools.javac.util.Name name
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    8     1   name  Lcom/sun/tools/javac/util/Name;
            0    8     2  owner  Lcom/sun/tools/javac/code/Symbol;
            0    8     3  lower  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      name   
      owner  
      lower  

  public void <init>(com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        start local 2 // com.sun.tools.javac.code.Type bound
        start local 3 // com.sun.tools.javac.code.Type lower
         0: .line 1628
            aload 0 /* this */
            aload 1 /* tsym */
            aload 2 /* bound */
            aload 3 /* lower */
            getstatic com.sun.tools.javac.code.TypeMetadata.EMPTY:Lcom/sun/tools/javac/code/TypeMetadata;
            invokespecial com.sun.tools.javac.code.Type$TypeVar.<init>:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/TypeMetadata;)V
         1: .line 1629
            return
        end local 3 // com.sun.tools.javac.code.Type lower
        end local 2 // com.sun.tools.javac.code.Type bound
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    2     1   tsym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    2     2  bound  Lcom/sun/tools/javac/code/Type;
            0    2     3  lower  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      tsym   
      bound  
      lower  

  public void <init>(com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/TypeMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        start local 2 // com.sun.tools.javac.code.Type bound
        start local 3 // com.sun.tools.javac.code.Type lower
        start local 4 // com.sun.tools.javac.code.TypeMetadata metadata
         0: .line 1633
            aload 0 /* this */
            aload 1 /* tsym */
            aload 4 /* metadata */
            invokespecial com.sun.tools.javac.code.Type.<init>:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/TypeMetadata;)V
         1: .line 1610
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Type$TypeVar._bound:Lcom/sun/tools/javac/code/Type;
         2: .line 1667
            aload 0 /* this */
            iconst_m1
            putfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
         3: .line 1634
            aload 3 /* lower */
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 1635
            aload 0 /* this */
            aload 2 /* bound */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
         5: .line 1636
            aload 0 /* this */
            aload 3 /* lower */
            putfield com.sun.tools.javac.code.Type$TypeVar.lower:Lcom/sun/tools/javac/code/Type;
         6: .line 1637
            return
        end local 4 // com.sun.tools.javac.code.TypeMetadata metadata
        end local 3 // com.sun.tools.javac.code.Type lower
        end local 2 // com.sun.tools.javac.code.Type bound
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    7     1      tsym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    7     2     bound  Lcom/sun/tools/javac/code/Type;
            0    7     3     lower  Lcom/sun/tools/javac/code/Type;
            0    7     4  metadata  Lcom/sun/tools/javac/code/TypeMetadata;
    MethodParameters:
          Name  Flags
      tsym      
      bound     
      lower     
      metadata  

  public com.sun.tools.javac.code.Type$TypeVar cloneWithMetadata(com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/code/Type$TypeVar;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // com.sun.tools.javac.code.TypeMetadata md
         0: .line 1641
            new com.sun.tools.javac.code.Type$TypeVar$1
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type$TypeVar.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type$TypeVar.lower:Lcom/sun/tools/javac/code/Type;
            aload 1 /* md */
            invokespecial com.sun.tools.javac.code.Type$TypeVar$1.<init>:(Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/TypeMetadata;)V
            areturn
        end local 1 // com.sun.tools.javac.code.TypeMetadata md
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    1     1    md  Lcom/sun/tools/javac/code/TypeMetadata;
    MethodParameters:
      Name  Flags
      md    

  public com.sun.tools.javac.code.TypeTag getTag();
    descriptor: ()Lcom/sun/tools/javac/code/TypeTag;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
         0: .line 1654
            getstatic com.sun.tools.javac.code.TypeTag.TYPEVAR:Lcom/sun/tools/javac/code/TypeTag;
            areturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

  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$TypeVar this
        start local 1 // com.sun.tools.javac.code.Type$Visitor v
        start local 2 // java.lang.Object s
         0: .line 1659
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* s */
            invokeinterface com.sun.tools.javac.code.Type$Visitor.visitTypeVar:(Lcom/sun/tools/javac/code/Type$TypeVar;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$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;
            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 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$TypeVar this
         0: .line 1663
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type$TypeVar._bound:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

  public void setUpperBound(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // com.sun.tools.javac.code.Type bound
         0: .line 1665
            aload 0 /* this */
            aload 1 /* bound */
            putfield com.sun.tools.javac.code.Type$TypeVar._bound:Lcom/sun/tools/javac/code/Type;
            return
        end local 1 // com.sun.tools.javac.code.Type bound
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    1     1  bound  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      bound  

  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$TypeVar this
         0: .line 1671
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Type$TypeVar.lower:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

  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$TypeVar this
         0: .line 1676
            getstatic javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            areturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

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

  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$TypeVar this
         0: .line 1685
            iconst_1
            ireturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

  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$TypeVar this
         0: .line 1690
            iconst_1
            ireturn
        end local 0 // com.sun.tools.javac.code.Type$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;

  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=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Type$TypeVar this
        start local 1 // javax.lang.model.type.TypeVisitor v
        start local 2 // java.lang.Object p
         0: .line 1695
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* p */
            invokeinterface javax.lang.model.type.TypeVisitor.visitTypeVariable:(Ljavax/lang/model/type/TypeVariable;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        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$TypeVar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Type$TypeVar;
            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 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: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.cloneWithMetadata:(Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/code/Type$TypeVar;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.type.TypeMirror getLowerBound();
    descriptor: ()Ljavax/lang/model/type/TypeMirror;
    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$TypeVar.getLowerBound:()Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.element.Element asElement();
    descriptor: ()Ljavax/lang/model/element/Element;
    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$TypeVar.asElement:()Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.type.TypeMirror getUpperBound();
    descriptor: ()Ljavax/lang/model/type/TypeMirror;
    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$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Type.java"
NestHost: com.sun.tools.javac.code.Type
InnerClasses:
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public TypeVariableSymbol = com.sun.tools.javac.code.Symbol$TypeVariableSymbol of com.sun.tools.javac.code.Symbol
  public TypeVar = com.sun.tools.javac.code.Type$TypeVar of com.sun.tools.javac.code.Type
  com.sun.tools.javac.code.Type$TypeVar$1
  public abstract Visitor = com.sun.tools.javac.code.Type$Visitor of com.sun.tools.javac.code.Type