public class com.sun.tools.javac.code.Types
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.Types
  super_class: java.lang.Object
{
  protected static final com.sun.tools.javac.util.Context$Key<com.sun.tools.javac.code.Types> typesKey;
    descriptor: Lcom/sun/tools/javac/util/Context$Key;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lcom/sun/tools/javac/util/Context$Key<Lcom/sun/tools/javac/code/Types;>;

  final com.sun.tools.javac.code.Symtab syms;
    descriptor: Lcom/sun/tools/javac/code/Symtab;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.util.JavacMessages messages;
    descriptor: Lcom/sun/tools/javac/util/JavacMessages;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.util.Names names;
    descriptor: Lcom/sun/tools/javac/util/Names;
    flags: (0x0010) ACC_FINAL

  final boolean allowDefaultMethods;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final boolean mapCapturesToBounds;
    descriptor: Z
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Check chk;
    descriptor: Lcom/sun/tools/javac/comp/Check;
    flags: (0x0010) ACC_FINAL

  final com.sun.tools.javac.comp.Enter enter;
    descriptor: Lcom/sun/tools/javac/comp/Enter;
    flags: (0x0010) ACC_FINAL

  com.sun.tools.javac.util.JCDiagnostic$Factory diags;
    descriptor: Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
    flags: (0x0000) 

  com.sun.tools.javac.util.List<com.sun.tools.javac.util.Warner> warnStack;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/util/Warner;>;

  final com.sun.tools.javac.util.Name capturedName;
    descriptor: Lcom/sun/tools/javac/util/Name;
    flags: (0x0010) ACC_FINAL

  public final com.sun.tools.javac.util.Warner noWarnings;
    descriptor: Lcom/sun/tools/javac/util/Warner;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL

  private final com.sun.tools.javac.code.Types$UnaryVisitor<java.lang.Boolean> isUnbounded;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Ljava/lang/Boolean;>;

  private final com.sun.tools.javac.code.Types$SimpleVisitor<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol> asSub;
    descriptor: Lcom/sun/tools/javac/code/Types$SimpleVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$SimpleVisitor<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;>;

  private com.sun.tools.javac.code.Types$DescriptorCache descCache;
    descriptor: Lcom/sun/tools/javac/code/Types$DescriptorCache;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javac.util.Filter<com.sun.tools.javac.code.Symbol> bridgeFilter;
    descriptor: Lcom/sun/tools/javac/util/Filter;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Symbol;>;

  private com.sun.tools.javac.code.Types$TypeRelation isSubtype;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0002) ACC_PRIVATE

  com.sun.tools.javac.code.Types$TypeRelation isSameTypeVisitor;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0000) 

  private com.sun.tools.javac.code.Types$TypeRelation containsType;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javac.code.Types$TypeRelation isCastable;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javac.code.Types$TypeRelation disjointType;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0002) ACC_PRIVATE

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

  private com.sun.tools.javac.code.Types$UnaryVisitor<java.lang.Boolean> isReifiable;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Ljava/lang/Boolean;>;

  private com.sun.tools.javac.code.Types$TypeMapping<java.lang.Void> elemTypeFun;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeMapping;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$TypeMapping<Ljava/lang/Void;>;

  private com.sun.tools.javac.code.Types$SimpleVisitor<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol> asSuper;
    descriptor: Lcom/sun/tools/javac/code/Types$SimpleVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$SimpleVisitor<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;>;

  private com.sun.tools.javac.code.Types$SimpleVisitor<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol> memberType;
    descriptor: Lcom/sun/tools/javac/code/Types$SimpleVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$SimpleVisitor<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;>;

  private com.sun.tools.javac.code.Types$TypeMapping<java.lang.Boolean> erasure;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeMapping;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$TypeMapping<Ljava/lang/Boolean;>;

  private com.sun.tools.javac.code.Types$UnaryVisitor<com.sun.tools.javac.code.Type> supertype;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Lcom/sun/tools/javac/code/Type;>;

  private com.sun.tools.javac.code.Types$UnaryVisitor<com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> interfaces;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  private final com.sun.tools.javac.code.Types$UnaryVisitor<com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> directSupertypes;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  java.util.Map<com.sun.tools.javac.code.Type, java.lang.Boolean> isDerivedRawCache;
    descriptor: Ljava/util/Map;
    flags: (0x0000) 
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Type;Ljava/lang/Boolean;>;

  private com.sun.tools.javac.code.Types$UnaryVisitor<com.sun.tools.javac.code.Type> classBound;
    descriptor: Lcom/sun/tools/javac/code/Types$UnaryVisitor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/tools/javac/code/Types$UnaryVisitor<Lcom/sun/tools/javac/code/Type;>;

  private com.sun.tools.javac.code.Types$ImplementationCache implCache;
    descriptor: Lcom/sun/tools/javac/code/Types$ImplementationCache;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.tools.javac.code.Types$MembersClosureCache membersCache;
    descriptor: Lcom/sun/tools/javac/code/Types$MembersClosureCache;
    flags: (0x0002) ACC_PRIVATE

  public com.sun.tools.javac.code.Types$CandidatesCache candidatesCache;
    descriptor: Lcom/sun/tools/javac/code/Types$CandidatesCache;
    flags: (0x0001) ACC_PUBLIC

  com.sun.tools.javac.code.Types$TypeRelation hasSameArgs_strict;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0000) 

  com.sun.tools.javac.code.Types$TypeRelation hasSameArgs_nonstrict;
    descriptor: Lcom/sun/tools/javac/code/Types$TypeRelation;
    flags: (0x0000) 

  private static final com.sun.tools.javac.code.Types$TypeMapping<java.lang.Void> newInstanceFun;
    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;>;

  private final com.sun.tools.javac.code.Types$MapVisitor<com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> methodWithParameters;
    descriptor: Lcom/sun/tools/javac/code/Types$MapVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$MapVisitor<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  private final com.sun.tools.javac.code.Types$MapVisitor<com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> methodWithThrown;
    descriptor: Lcom/sun/tools/javac/code/Types$MapVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$MapVisitor<Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  private final com.sun.tools.javac.code.Types$MapVisitor<com.sun.tools.javac.code.Type> methodWithReturn;
    descriptor: Lcom/sun/tools/javac/code/Types$MapVisitor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/sun/tools/javac/code/Types$MapVisitor<Lcom/sun/tools/javac/code/Type;>;

  private java.util.Map<com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> closureCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;

  java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type> basicClosureSkip;
    descriptor: Ljava/util/function/BiPredicate;
    flags: (0x0000) 
    Signature: Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;

  java.util.Set<com.sun.tools.javac.code.Types$TypePair> mergeCache;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lcom/sun/tools/javac/code/Types$TypePair;>;

  private com.sun.tools.javac.code.Type arraySuperType;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE

  private static final com.sun.tools.javac.code.Types$HashCodeVisitor hashCodeVisitor;
    descriptor: Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final com.sun.tools.javac.code.Types$HashCodeVisitor hashCodeStrictVisitor;
    descriptor: Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static volatile int[] $SWITCH_TABLE$com$sun$tools$javac$code$BoundKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$com$sun$tools$javac$code$TypeTag;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 89
            new com.sun.tools.javac.util.Context$Key
            dup
            invokespecial com.sun.tools.javac.util.Context$Key.<init>:()V
            putstatic com.sun.tools.javac.code.Types.typesKey:Lcom/sun/tools/javac/util/Context$Key;
         1: .line 3453
            new com.sun.tools.javac.code.Types$19
            dup
            invokespecial com.sun.tools.javac.code.Types$19.<init>:()V
            putstatic com.sun.tools.javac.code.Types.newInstanceFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
         2: .line 4137
            new com.sun.tools.javac.code.Types$HashCodeVisitor
            dup
            invokespecial com.sun.tools.javac.code.Types$HashCodeVisitor.<init>:()V
            putstatic com.sun.tools.javac.code.Types.hashCodeVisitor:Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
         3: .line 4138
            new com.sun.tools.javac.code.Types$23
            dup
            invokespecial com.sun.tools.javac.code.Types$23.<init>:()V
            putstatic com.sun.tools.javac.code.Types.hashCodeStrictVisitor:Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
         4: .line 4143
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.sun.tools.javac.code.Types instance(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Types;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.util.Context context
         0: .line 106
            aload 0 /* context */
            getstatic com.sun.tools.javac.code.Types.typesKey:Lcom/sun/tools/javac/util/Context$Key;
            invokevirtual com.sun.tools.javac.util.Context.get:(Lcom/sun/tools/javac/util/Context$Key;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Types
            astore 1 /* instance */
        start local 1 // com.sun.tools.javac.code.Types instance
         1: .line 107
            aload 1 /* instance */
            ifnonnull 3
         2: .line 108
            new com.sun.tools.javac.code.Types
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.code.Types.<init>:(Lcom/sun/tools/javac/util/Context;)V
            astore 1 /* instance */
         3: .line 109
      StackMap locals: com.sun.tools.javac.code.Types
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javac.code.Types instance
        end local 0 // com.sun.tools.javac.util.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0   context  Lcom/sun/tools/javac/util/Context;
            1    4     1  instance  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
         Name  Flags
      context  

  protected void <init>(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 112
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 99
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
         2: .line 501
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$1
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$1.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.isUnbounded:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
         3: .line 542
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$2
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$2.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.asSub:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
         4: .line 812
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$DescriptorCache
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$DescriptorCache.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.descCache:Lcom/sun/tools/javac/code/Types$DescriptorCache;
         5: .line 947
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$3
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$3.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.bridgeFilter:Lcom/sun/tools/javac/util/Filter;
         6: .line 1099
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$4
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$4.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.isSubtype:Lcom/sun/tools/javac/code/Types$TypeRelation;
         7: .line 1344
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$5
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$5.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.isSameTypeVisitor:Lcom/sun/tools/javac/code/Types$TypeRelation;
         8: .line 1552
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$6
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$6.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.containsType:Lcom/sun/tools/javac/code/Types$TypeRelation;
         9: .line 1658
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$7
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$7.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.isCastable:Lcom/sun/tools/javac/code/Types$TypeRelation;
        10: .line 1867
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$8
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$8.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.disjointType:Lcom/sun/tools/javac/code/Types$TypeRelation;
        11: .line 1938
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$9
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$9.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.cvarLowerBoundMapping:Lcom/sun/tools/javac/code/Types$TypeMapping;
        12: .line 1981
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$10
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$10.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.isReifiable:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
        13: .line 2050
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$11
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$11.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.elemTypeFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
        14: .line 2116
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$12
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$12.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.asSuper:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
        15: .line 2244
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$13
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$13.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.memberType:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
        16: .line 2356
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$14
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$14.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.erasure:Lcom/sun/tools/javac/code/Types$TypeMapping;
        17: .line 2473
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$15
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$15.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.supertype:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
        18: .line 2543
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$16
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$16.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.interfaces:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
        19: .line 2601
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$17
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$17.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.directSupertypes:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
        20: .line 2624
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.code.Types.isDerivedRawCache:Ljava/util/Map;
        21: .line 2711
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$18
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$18.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.classBound:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
        22: .line 2957
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$ImplementationCache
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$ImplementationCache.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.implCache:Lcom/sun/tools/javac/code/Types$ImplementationCache;
        23: .line 3045
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$MembersClosureCache
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$MembersClosureCache.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.membersCache:Lcom/sun/tools/javac/code/Types$MembersClosureCache;
        24: .line 3143
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$CandidatesCache
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$CandidatesCache.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.candidatesCache:Lcom/sun/tools/javac/code/Types$CandidatesCache;
        25: .line 3258
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$HasSameArgs
            dup
            aload 0 /* this */
            iconst_1
            invokespecial com.sun.tools.javac.code.Types$HasSameArgs.<init>:(Lcom/sun/tools/javac/code/Types;Z)V
            putfield com.sun.tools.javac.code.Types.hasSameArgs_strict:Lcom/sun/tools/javac/code/Types$TypeRelation;
        26: .line 3259
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$HasSameArgs
            dup
            aload 0 /* this */
            iconst_0
            invokespecial com.sun.tools.javac.code.Types$HasSameArgs.<init>:(Lcom/sun/tools/javac/code/Types;Z)V
            putfield com.sun.tools.javac.code.Types.hasSameArgs_nonstrict:Lcom/sun/tools/javac/code/Types$TypeRelation;
        27: .line 3465
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$20
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$20.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.methodWithParameters:Lcom/sun/tools/javac/code/Types$MapVisitor;
        28: .line 3481
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$21
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$21.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.methodWithThrown:Lcom/sun/tools/javac/code/Types$MapVisitor;
        29: .line 3497
            aload 0 /* this */
            new com.sun.tools.javac.code.Types$22
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$22.<init>:(Lcom/sun/tools/javac/code/Types;)V
            putfield com.sun.tools.javac.code.Types.methodWithReturn:Lcom/sun/tools/javac/code/Types$MapVisitor;
        30: .line 3663
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield com.sun.tools.javac.code.Types.closureCache:Ljava/util/Map;
        31: .line 3725
            aload 0 /* this */
            invokedynamic test()Ljava/util/function/BiPredicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Z
                  com/sun/tools/javac/code/Types.lambda$0(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z (6)
                  (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            putfield com.sun.tools.javac.code.Types.basicClosureSkip:Ljava/util/function/BiPredicate;
        32: .line 3815
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.tools.javac.code.Types.mergeCache:Ljava/util/Set;
        33: .line 4039
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Types.arraySuperType:Lcom/sun/tools/javac/code/Type;
        34: .line 113
            aload 1 /* context */
            getstatic com.sun.tools.javac.code.Types.typesKey:Lcom/sun/tools/javac/util/Context$Key;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.Context.put:(Lcom/sun/tools/javac/util/Context$Key;Ljava/lang/Object;)V
        35: .line 114
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Symtab.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Symtab;
            putfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
        36: .line 115
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.Names.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/Names;
            putfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
        37: .line 116
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Source.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Source;
            astore 2 /* source */
        start local 2 // com.sun.tools.javac.code.Source source
        38: .line 117
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Source$Feature.DEFAULT_METHODS:Lcom/sun/tools/javac/code/Source$Feature;
            aload 2 /* source */
            invokevirtual com.sun.tools.javac.code.Source$Feature.allowedInSource:(Lcom/sun/tools/javac/code/Source;)Z
            putfield com.sun.tools.javac.code.Types.allowDefaultMethods:Z
        39: .line 118
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Source$Feature.MAP_CAPTURES_TO_BOUNDS:Lcom/sun/tools/javac/code/Source$Feature;
            aload 2 /* source */
            invokevirtual com.sun.tools.javac.code.Source$Feature.allowedInSource:(Lcom/sun/tools/javac/code/Source;)Z
            putfield com.sun.tools.javac.code.Types.mapCapturesToBounds:Z
        40: .line 119
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Check.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Check;
            putfield com.sun.tools.javac.code.Types.chk:Lcom/sun/tools/javac/comp/Check;
        41: .line 120
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.comp.Enter.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/comp/Enter;
            putfield com.sun.tools.javac.code.Types.enter:Lcom/sun/tools/javac/comp/Enter;
        42: .line 121
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            ldc "<captured wildcard>"
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            putfield com.sun.tools.javac.code.Types.capturedName:Lcom/sun/tools/javac/util/Name;
        43: .line 122
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.JavacMessages.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/JavacMessages;
            putfield com.sun.tools.javac.code.Types.messages:Lcom/sun/tools/javac/util/JavacMessages;
        44: .line 123
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.util.JCDiagnostic$Factory.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
            putfield com.sun.tools.javac.code.Types.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
        45: .line 124
            aload 0 /* this */
            new com.sun.tools.javac.util.Warner
            dup
            aconst_null
            invokespecial com.sun.tools.javac.util.Warner.<init>:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
            putfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
        46: .line 125
            return
        end local 2 // com.sun.tools.javac.code.Source source
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   47     0     this  Lcom/sun/tools/javac/code/Types;
            0   47     1  context  Lcom/sun/tools/javac/util/Context;
           38   47     2   source  Lcom/sun/tools/javac/code/Source;
    MethodParameters:
         Name  Flags
      context  

  public com.sun.tools.javac.code.Type wildUpperBound(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=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 134
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 7
         1: .line 135
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 2 /* w */
        start local 2 // com.sun.tools.javac.code.Type$WildcardType w
         2: .line 136
            aload 2 /* w */
            invokevirtual com.sun.tools.javac.code.Type$WildcardType.isSuperBound:()Z
            ifeq 6
         3: .line 137
            aload 2 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.bound:Lcom/sun/tools/javac/code/Type$TypeVar;
            ifnonnull 4
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            goto 5
      StackMap locals: com.sun.tools.javac.code.Type$WildcardType
      StackMap stack:
         4: aload 2 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.bound:Lcom/sun/tools/javac/code/Type$TypeVar;
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         5: areturn
         6: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 2 // com.sun.tools.javac.code.Type$WildcardType w
         7: .line 141
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/javac/code/Types;
            0    8     1     t  Lcom/sun/tools/javac/code/Type;
            2    7     2     w  Lcom/sun/tools/javac/code/Type$WildcardType;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type cvarUpperBound(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=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 149
            aload 1 /* t */
            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 5
         1: .line 150
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 2 /* v */
        start local 2 // com.sun.tools.javac.code.Type$TypeVar v
         2: .line 151
            aload 2 /* v */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.isCaptured:()Z
            ifeq 3
            aload 0 /* this */
            aload 2 /* v */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.cvarUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            goto 4
      StackMap locals: com.sun.tools.javac.code.Type$TypeVar
      StackMap stack:
         3: aload 2 /* v */
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         4: areturn
        end local 2 // com.sun.tools.javac.code.Type$TypeVar v
         5: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1     t  Lcom/sun/tools/javac/code/Type;
            2    5     2     v  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type wildLowerBound(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=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 161
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 5
         1: .line 162
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 2 /* w */
        start local 2 // com.sun.tools.javac.code.Type$WildcardType w
         2: .line 163
            aload 2 /* w */
            invokevirtual com.sun.tools.javac.code.Type$WildcardType.isExtendsBound:()Z
            ifeq 3
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            goto 4
      StackMap locals: com.sun.tools.javac.code.Type$WildcardType
      StackMap stack:
         3: aload 0 /* this */
            aload 2 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.wildLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         4: areturn
        end local 2 // com.sun.tools.javac.code.Type$WildcardType w
         5: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1     t  Lcom/sun/tools/javac/code/Type;
            2    5     2     w  Lcom/sun/tools/javac/code/Type$WildcardType;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type cvarLowerBound(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=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 173
            aload 1 /* t */
            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 2
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.isCaptured:()Z
            ifeq 2
         1: .line 174
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getLowerBound:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.cvarLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
         2: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types;
            0    3     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type skipTypeVars(com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type site
        start local 2 // boolean capture
         0: .line 185
            goto 2
         1: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* site */
            invokevirtual com.sun.tools.javac.code.Type.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            astore 1 /* site */
         2: .line 185
      StackMap locals:
      StackMap stack:
            aload 1 /* site */
            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
            ifne 1
         3: .line 188
            iload 2 /* capture */
            ifeq 4
            aload 0 /* this */
            aload 1 /* site */
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            goto 5
      StackMap locals:
      StackMap stack:
         4: aload 1 /* site */
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         5: areturn
        end local 2 // boolean capture
        end local 1 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/sun/tools/javac/code/Types;
            0    6     1     site  Lcom/sun/tools/javac/code/Type;
            0    6     2  capture  Z
    MethodParameters:
         Name  Flags
      site     
      capture  

  public com.sun.tools.javac.code.Type upward(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.util.List vars
         0: .line 419
            aload 1 /* t */
            new com.sun.tools.javac.code.Types$TypeProjection
            dup
            aload 0 /* this */
            aload 2 /* vars */
            invokespecial com.sun.tools.javac.code.Types$TypeProjection.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/util/List;)V
            getstatic com.sun.tools.javac.code.Types$ProjectionKind.UPWARDS:Lcom/sun/tools/javac/code/Types$ProjectionKind;
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;Ljava/lang/Object;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 2 // com.sun.tools.javac.util.List vars
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2  vars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      vars  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> captures(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 431
            new com.sun.tools.javac.code.Types$CaptureScanner
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Types$CaptureScanner.<init>:(Lcom/sun/tools/javac/code/Types;)V
            astore 2 /* cs */
        start local 2 // com.sun.tools.javac.code.Types$CaptureScanner cs
         1: .line 432
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* captures */
        start local 3 // java.util.Set captures
         2: .line 433
            aload 2 /* cs */
            aload 1 /* t */
            aload 3 /* captures */
            invokevirtual com.sun.tools.javac.code.Types$CaptureScanner.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 434
            aload 3 /* captures */
            invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // java.util.Set captures
        end local 2 // com.sun.tools.javac.code.Types$CaptureScanner cs
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/javac/code/Types;
            0    4     1         t  Lcom/sun/tools/javac/code/Type;
            1    4     2        cs  Lcom/sun/tools/javac/code/Types$CaptureScanner;
            2    4     3  captures  Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public boolean isUnbounded(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.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 498
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isUnbounded:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type asSub(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)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.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 539
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.asSub:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types$SimpleVisitor.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2   sym  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
      Name  Flags
      t     
      sym   

  public boolean isConvertible(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 601
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
         1: .line 602
            iconst_1
            ireturn
         2: .line 604
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            istore 4 /* tPrimitive */
        start local 4 // boolean tPrimitive
         3: .line 605
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            istore 5 /* sPrimitive */
        start local 5 // boolean sPrimitive
         4: .line 606
            iload 4 /* tPrimitive */
            iload 5 /* sPrimitive */
            if_icmpne 6
         5: .line 607
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUnchecked:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
         6: .line 609
      StackMap locals: int int
      StackMap stack:
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            istore 6 /* tUndet */
        start local 6 // boolean tUndet
         7: .line 610
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            istore 7 /* sUndet */
        start local 7 // boolean sUndet
         8: .line 612
            iload 6 /* tUndet */
            ifne 9
            iload 7 /* sUndet */
            ifeq 13
         9: .line 613
      StackMap locals: int int
      StackMap stack:
            iload 6 /* tUndet */
            ifeq 11
        10: .line 614
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.boxedTypeOrType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            goto 12
        11: .line 615
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.boxedTypeOrType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
        12: .line 613
      StackMap locals:
      StackMap stack: int
            ireturn
        13: .line 618
      StackMap locals:
      StackMap stack:
            iload 4 /* tPrimitive */
            ifeq 15
        14: .line 619
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.boxedClass:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            goto 16
        15: .line 620
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.unboxedType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
        16: .line 618
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 7 // boolean sUndet
        end local 6 // boolean tUndet
        end local 5 // boolean sPrimitive
        end local 4 // boolean tPrimitive
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/sun/tools/javac/code/Types;
            0   17     1           t  Lcom/sun/tools/javac/code/Type;
            0   17     2           s  Lcom/sun/tools/javac/code/Type;
            0   17     3        warn  Lcom/sun/tools/javac/util/Warner;
            3   17     4  tPrimitive  Z
            4   17     5  sPrimitive  Z
            7   17     6      tUndet  Z
            8   17     7      sUndet  Z
    MethodParameters:
      Name  Flags
      t     
      s     
      warn  

  public boolean isConvertible(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 628
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.code.Types.isConvertible:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public com.sun.tools.javac.code.Symbol findDescriptorSymbol(com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
         0: .line 819
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.descCache:Lcom/sun/tools/javac/code/Types$DescriptorCache;
            aload 1 /* origin */
            invokevirtual com.sun.tools.javac.code.Types$DescriptorCache.get:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Types$DescriptorCache$FunctionDescriptor;
            invokevirtual com.sun.tools.javac.code.Types$DescriptorCache$FunctionDescriptor.getSymbol:()Lcom/sun/tools/javac/code/Symbol;
            areturn
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/code/Types;
            0    1     1  origin  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
    Exceptions:
      throws com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
    MethodParameters:
        Name  Flags
      origin  

  public com.sun.tools.javac.code.Type findDescriptorType(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=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type origin
         0: .line 827
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.descCache:Lcom/sun/tools/javac/code/Types$DescriptorCache;
            aload 1 /* origin */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types$DescriptorCache.get:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Types$DescriptorCache$FunctionDescriptor;
            aload 1 /* origin */
            invokevirtual com.sun.tools.javac.code.Types$DescriptorCache$FunctionDescriptor.getType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.code.Type origin
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/code/Types;
            0    1     1  origin  Lcom/sun/tools/javac/code/Type;
    Exceptions:
      throws com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
    MethodParameters:
        Name  Flags
      origin  

  public boolean isFunctionalInterface(com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
         0: .line 835
            aload 0 /* this */
            aload 1 /* tsym */
            invokevirtual com.sun.tools.javac.code.Types.findDescriptorSymbol:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
            pop
         1: .line 836
            iconst_1
            ireturn
         2: .line 837
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
            pop
         3: .line 838
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol tsym
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1  tsym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
      Exception table:
        from    to  target  type
           0     1       2  Class com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
    MethodParameters:
      Name  Flags
      tsym  

  public boolean isFunctionalInterface(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.Types this
        start local 1 // com.sun.tools.javac.code.Type site
         0: .line 844
            aload 0 /* this */
            aload 1 /* site */
            invokevirtual com.sun.tools.javac.code.Types.findDescriptorType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            pop
         1: .line 845
            iconst_1
            ireturn
         2: .line 846
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
            pop
         3: .line 847
            iconst_0
            ireturn
        end local 1 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1  site  Lcom/sun/tools/javac/code/Type;
      Exception table:
        from    to  target  type
           0     1       2  Class com.sun.tools.javac.code.Types$FunctionDescriptorLookupError
    MethodParameters:
      Name  Flags
      site  

  public com.sun.tools.javac.code.Type removeWildcards(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=4, locals=10, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type site
         0: .line 852
            aload 1 /* site */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
            invokedynamic test()Ljava/util/function/Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Z
                  com/sun/tools/javac/code/Types.lambda$1(Lcom/sun/tools/javac/code/Type;)Z (6)
                  (Lcom/sun/tools/javac/code/Type;)Z
            invokeinterface java.util.stream.Stream.anyMatch:(Ljava/util/function/Predicate;)Z
            ifeq 26
         1: .line 854
            aload 1 /* site */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 2 /* actuals */
        start local 2 // com.sun.tools.javac.util.List actuals
         2: .line 855
            aload 1 /* site */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 3 /* formals */
        start local 3 // com.sun.tools.javac.util.List formals
         3: .line 856
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* targs */
        start local 4 // com.sun.tools.javac.util.ListBuffer targs
         4: .line 857
            aload 3 /* formals */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 24
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* formal */
        start local 5 // com.sun.tools.javac.code.Type formal
         6: .line 858
            aload 2 /* actuals */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* actual */
        start local 7 // com.sun.tools.javac.code.Type actual
         7: .line 859
            aload 5 /* formal */
            invokevirtual com.sun.tools.javac.code.Type.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            astore 8 /* bound */
        start local 8 // com.sun.tools.javac.code.Type bound
         8: .line 860
            aload 2 /* actuals */
            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.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 22
         9: .line 861
            aload 7 /* actual */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 9 /* wt */
        start local 9 // com.sun.tools.javac.code.Type$WildcardType wt
        10: .line 863
            aload 8 /* bound */
            aload 3 /* formals */
            invokevirtual com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;)Z
            ifeq 13
        11: .line 864
            aload 4 /* targs */
            aload 9 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        12: .line 865
            goto 23
        13: .line 867
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$WildcardType
      StackMap stack:
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:()[I
            aload 9 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 16
                    2: 18
                    3: 14
              default: 20
          }
        14: .line 869
      StackMap locals:
      StackMap stack:
            aload 4 /* targs */
            aload 8 /* bound */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        15: .line 870
            goto 23
        16: .line 872
      StackMap locals:
      StackMap stack:
            aload 4 /* targs */
            aload 0 /* this */
            aload 8 /* bound */
            aload 9 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.glb:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        17: .line 873
            goto 23
        18: .line 875
      StackMap locals:
      StackMap stack:
            aload 4 /* targs */
            aload 9 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        19: .line 876
            goto 23
        20: .line 878
      StackMap locals:
      StackMap stack:
            ldc "Cannot get here!"
            invokestatic com.sun.tools.javac.util.Assert.error:(Ljava/lang/String;)V
        end local 9 // com.sun.tools.javac.code.Type$WildcardType wt
        21: .line 881
            goto 23
        22: .line 883
      StackMap locals:
      StackMap stack:
            aload 4 /* targs */
            aload 7 /* actual */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        23: .line 885
      StackMap locals:
      StackMap stack:
            aload 2 /* actuals */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* actuals */
        end local 8 // com.sun.tools.javac.code.Type bound
        end local 7 // com.sun.tools.javac.code.Type actual
        end local 5 // com.sun.tools.javac.code.Type formal
        24: .line 857
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        25: .line 887
            aload 0 /* this */
            aload 1 /* site */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 3 /* formals */
            aload 4 /* targs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 4 // com.sun.tools.javac.util.ListBuffer targs
        end local 3 // com.sun.tools.javac.util.List formals
        end local 2 // com.sun.tools.javac.util.List actuals
        26: .line 889
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* site */
            areturn
        end local 1 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0     this  Lcom/sun/tools/javac/code/Types;
            0   27     1     site  Lcom/sun/tools/javac/code/Type;
            2   26     2  actuals  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   26     3  formals  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            4   26     4    targs  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            6   24     5   formal  Lcom/sun/tools/javac/code/Type;
            7   24     7   actual  Lcom/sun/tools/javac/code/Type;
            8   24     8    bound  Lcom/sun/tools/javac/code/Type;
           10   21     9       wt  Lcom/sun/tools/javac/code/Type$WildcardType;
    MethodParameters:
      Name  Flags
      site  

  public com.sun.tools.javac.code.Symbol$ClassSymbol makeFunctionalInterfaceClass(com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Type, long);
    descriptor: (Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;J)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=5
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.comp.Env env
        start local 2 // com.sun.tools.javac.util.Name name
        start local 3 // com.sun.tools.javac.code.Type target
        start local 4 // long cflags
         0: .line 900
            aload 3 /* target */
            ifnull 1
            aload 3 /* target */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.unknownType:Lcom/sun/tools/javac/code/Type;
            if_acmpne 2
         1: .line 901
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 903
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* target */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.findDescriptorSymbol:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
            astore 6 /* descSym */
        start local 6 // com.sun.tools.javac.code.Symbol descSym
         3: .line 904
            aload 0 /* this */
            aload 3 /* target */
            invokevirtual com.sun.tools.javac.code.Types.findDescriptorType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 7 /* descType */
        start local 7 // com.sun.tools.javac.code.Type descType
         4: .line 905
            new com.sun.tools.javac.code.Symbol$ClassSymbol
            dup
            lload 4 /* cflags */
            aload 2 /* name */
            aload 1 /* env */
            getfield com.sun.tools.javac.comp.Env.enclClass:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.outermostClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokespecial com.sun.tools.javac.code.Symbol$ClassSymbol.<init>:(JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)V
            astore 8 /* csym */
        start local 8 // com.sun.tools.javac.code.Symbol$ClassSymbol csym
         5: .line 906
            aload 8 /* csym */
            getstatic com.sun.tools.javac.code.Symbol$Completer.NULL_COMPLETER:Lcom/sun/tools/javac/code/Symbol$Completer;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
         6: .line 907
            aload 8 /* csym */
            aload 8 /* csym */
            invokestatic com.sun.tools.javac.code.Scope$WriteableScope.create:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Scope$WriteableScope;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
         7: .line 908
            new com.sun.tools.javac.code.Symbol$MethodSymbol
            dup
            aload 6 /* descSym */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            aload 6 /* descSym */
            getfield com.sun.tools.javac.code.Symbol.name:Lcom/sun/tools/javac/util/Name;
            aload 7 /* descType */
            aload 8 /* csym */
            invokespecial com.sun.tools.javac.code.Symbol$MethodSymbol.<init>:(JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)V
            astore 9 /* instDescSym */
        start local 9 // com.sun.tools.javac.code.Symbol$MethodSymbol instDescSym
         8: .line 909
            aload 8 /* csym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 9 /* instDescSym */
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.enter:(Lcom/sun/tools/javac/code/Symbol;)V
         9: .line 910
            new com.sun.tools.javac.code.Type$ClassType
            dup
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            aload 8 /* csym */
            invokespecial com.sun.tools.javac.code.Type$ClassType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            astore 10 /* ctype */
        start local 10 // com.sun.tools.javac.code.Type$ClassType ctype
        10: .line 911
            aload 10 /* ctype */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
        11: .line 912
            aload 10 /* ctype */
            aload 3 /* target */
            invokevirtual com.sun.tools.javac.code.Type.isIntersection:()Z
            ifeq 13
        12: .line 913
            aload 0 /* this */
            aload 3 /* target */
            invokevirtual com.sun.tools.javac.code.Types.directSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            goto 14
        13: .line 914
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.comp.Env com.sun.tools.javac.util.Name com.sun.tools.javac.code.Type long com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Type$ClassType
      StackMap stack: com.sun.tools.javac.code.Type$ClassType
            aload 3 /* target */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
        14: .line 912
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.comp.Env com.sun.tools.javac.util.Name com.sun.tools.javac.code.Type long com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Type$ClassType
      StackMap stack: com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.List
            putfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
        15: .line 915
            aload 8 /* csym */
            aload 10 /* ctype */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
        16: .line 916
            aload 8 /* csym */
            aload 8 /* csym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.sourcefile:Ljavax/tools/JavaFileObject;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.sourcefile:Ljavax/tools/JavaFileObject;
        17: .line 917
            aload 8 /* csym */
            areturn
        end local 10 // com.sun.tools.javac.code.Type$ClassType ctype
        end local 9 // com.sun.tools.javac.code.Symbol$MethodSymbol instDescSym
        end local 8 // com.sun.tools.javac.code.Symbol$ClassSymbol csym
        end local 7 // com.sun.tools.javac.code.Type descType
        end local 6 // com.sun.tools.javac.code.Symbol descSym
        end local 4 // long cflags
        end local 3 // com.sun.tools.javac.code.Type target
        end local 2 // com.sun.tools.javac.util.Name name
        end local 1 // com.sun.tools.javac.comp.Env env
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lcom/sun/tools/javac/code/Types;
            0   18     1          env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0   18     2         name  Lcom/sun/tools/javac/util/Name;
            0   18     3       target  Lcom/sun/tools/javac/code/Type;
            0   18     4       cflags  J
            3   18     6      descSym  Lcom/sun/tools/javac/code/Symbol;
            4   18     7     descType  Lcom/sun/tools/javac/code/Type;
            5   18     8         csym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            8   18     9  instDescSym  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
           10   18    10        ctype  Lcom/sun/tools/javac/code/Type$ClassType;
    Signature: (Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;J)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    MethodParameters:
        Name  Flags
      env     
      name    
      target  
      cflags  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol> functionalInterfaceBridges(com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
         0: .line 926
            aload 0 /* this */
            aload 1 /* origin */
            invokevirtual com.sun.tools.javac.code.Types.isFunctionalInterface:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
            invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         1: .line 927
            aload 0 /* this */
            aload 1 /* origin */
            invokevirtual com.sun.tools.javac.code.Types.findDescriptorSymbol:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
            astore 2 /* descSym */
        start local 2 // com.sun.tools.javac.code.Symbol descSym
         2: .line 928
            aload 0 /* this */
            aload 1 /* origin */
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.membersClosure:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Scope$CompoundScope;
            astore 3 /* members */
        start local 3 // com.sun.tools.javac.code.Scope$CompoundScope members
         3: .line 929
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* overridden */
        start local 4 // com.sun.tools.javac.util.ListBuffer overridden
         4: .line 930
            aload 3 /* members */
            aload 2 /* descSym */
            getfield com.sun.tools.javac.code.Symbol.name:Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.bridgeFilter:Lcom/sun/tools/javac/util/Filter;
            invokevirtual com.sun.tools.javac.code.Scope$CompoundScope.getSymbolsByName:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/Filter;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope$CompoundScope com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         5: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 5 /* m2 */
        start local 5 // com.sun.tools.javac.code.Symbol m2
         6: .line 931
            aload 5 /* m2 */
            aload 2 /* descSym */
            if_acmpne 7
            goto 17
         7: .line 932
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope$CompoundScope com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol java.util.Iterator
      StackMap stack:
            aload 2 /* descSym */
            aload 5 /* m2 */
            aload 1 /* origin */
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Symbol.overrides:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;Z)Z
            ifeq 17
         8: .line 933
            aload 4 /* overridden */
            invokevirtual com.sun.tools.javac.util.ListBuffer.iterator:()Ljava/util/Iterator;
            astore 8
            goto 15
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope$CompoundScope com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol java.util.Iterator top java.util.Iterator
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 7 /* m3 */
        start local 7 // com.sun.tools.javac.code.Symbol m3
        10: .line 934
            aload 0 /* this */
            aload 7 /* m3 */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
            aload 5 /* m2 */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 17
        11: .line 935
            aload 7 /* m3 */
            aload 5 /* m2 */
            aload 1 /* origin */
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Symbol.overrides:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;Z)Z
            ifeq 15
        12: .line 936
            aload 0 /* this */
            aload 1 /* origin */
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            aload 7 /* m3 */
            invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual com.sun.tools.javac.code.Types.pendingBridges:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
            ifne 17
        13: .line 937
            aload 5 /* m2 */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            aload 7 /* m3 */
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.binaryImplementation:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            ifnull 15
        14: .line 938
            goto 17
        end local 7 // com.sun.tools.javac.code.Symbol m3
        15: .line 933
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        16: .line 941
            aload 4 /* overridden */
            aload 5 /* m2 */
            invokevirtual com.sun.tools.javac.util.ListBuffer.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // com.sun.tools.javac.code.Symbol m2
        17: .line 930
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Scope$CompoundScope com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        18: .line 944
            aload 4 /* overridden */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 4 // com.sun.tools.javac.util.ListBuffer overridden
        end local 3 // com.sun.tools.javac.code.Scope$CompoundScope members
        end local 2 // com.sun.tools.javac.code.Symbol descSym
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lcom/sun/tools/javac/code/Types;
            0   19     1      origin  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            2   19     2     descSym  Lcom/sun/tools/javac/code/Symbol;
            3   19     3     members  Lcom/sun/tools/javac/code/Scope$CompoundScope;
            4   19     4  overridden  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Symbol;>;
            6   17     5          m2  Lcom/sun/tools/javac/code/Symbol;
           10   15     7          m3  Lcom/sun/tools/javac/code/Symbol;
    Signature: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol;>;
    MethodParameters:
        Name  Flags
      origin  

  private boolean pendingBridges(com.sun.tools.javac.code.Symbol$ClassSymbol, com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol origin
        start local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol s
         0: .line 959
            aload 1 /* origin */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            ifnull 4
         1: .line 960
            aload 1 /* origin */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
            invokeinterface javax.tools.JavaFileObject.getKind:()Ljavax/tools/JavaFileObject$Kind;
            getstatic javax.tools.JavaFileObject$Kind.CLASS:Ljavax/tools/JavaFileObject$Kind;
            if_acmpne 4
         2: .line 961
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.enter:Lcom/sun/tools/javac/comp/Enter;
            aload 1 /* origin */
            invokevirtual com.sun.tools.javac.comp.Enter.getEnv:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/comp/Env;
            ifnonnull 4
         3: .line 962
            iconst_0
            ireturn
         4: .line 964
      StackMap locals:
      StackMap stack:
            aload 1 /* origin */
            aload 2 /* s */
            if_acmpne 6
         5: .line 965
            iconst_1
            ireturn
         6: .line 967
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* origin */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 10
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$TypeSymbol top java.util.Iterator
      StackMap stack:
         7: 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
         8: .line 968
            aload 0 /* this */
            aload 3 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.pendingBridges:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
            ifeq 10
         9: .line 969
            iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.code.Type t
        10: .line 967
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        11: .line 972
            iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol s
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol origin
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/sun/tools/javac/code/Types;
            0   12     1  origin  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0   12     2       s  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            8   10     3       t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
        Name  Flags
      origin  
      s       

  public boolean isSubtypeUnchecked(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1002
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUnchecked:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isSubtypeUnchecked(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 1008
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iconst_1
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;ZLcom/sun/tools/javac/util/Warner;)Z
            istore 4 /* result */
        start local 4 // boolean result
         1: .line 1009
            iload 4 /* result */
            ifeq 3
         2: .line 1010
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.checkUnsafeVarargsConversion:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)V
         3: .line 1012
      StackMap locals: int
      StackMap stack:
            iload 4 /* result */
            ireturn
        end local 4 // boolean result
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/sun/tools/javac/code/Types;
            0    4     1       t  Lcom/sun/tools/javac/code/Type;
            0    4     2       s  Lcom/sun/tools/javac/code/Type;
            0    4     3    warn  Lcom/sun/tools/javac/util/Warner;
            1    4     4  result  Z
    MethodParameters:
      Name  Flags
      t     
      s     
      warn  

  private boolean isSubtypeUncheckedInternal(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, boolean, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;ZLcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // boolean capture
        start local 4 // com.sun.tools.javac.util.Warner warn
         0: .line 1016
            aload 1 /* t */
            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 4
            aload 2 /* s */
            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 4
         1: .line 1017
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ArrayType
            getfield com.sun.tools.javac.code.Type$ArrayType.elemtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 3
         2: .line 1018
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
         3: .line 1020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            iconst_0
            aload 4 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;ZLcom/sun/tools/javac/util/Warner;)Z
            ireturn
         4: .line 1022
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iload 3 /* capture */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ifeq 6
         5: .line 1023
            iconst_1
            ireturn
         6: .line 1024
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            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 1025
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            iconst_0
            aload 4 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUncheckedInternal:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;ZLcom/sun/tools/javac/util/Warner;)Z
            ireturn
         8: .line 1026
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isRaw:()Z
            ifne 16
         9: .line 1027
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* t2 */
        start local 5 // com.sun.tools.javac.code.Type t2
        10: .line 1028
            aload 5 /* t2 */
            ifnull 16
            aload 5 /* t2 */
            invokevirtual com.sun.tools.javac.code.Type.isRaw:()Z
            ifeq 16
        11: .line 1029
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isReifiable:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 14
        12: .line 1030
            aload 4 /* warn */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.silentWarn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        13: .line 1031
            goto 15
        14: .line 1032
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 4 /* warn */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.warn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        15: .line 1034
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // com.sun.tools.javac.code.Type t2
        16: .line 1037
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.sun.tools.javac.util.Warner warn
        end local 3 // boolean capture
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lcom/sun/tools/javac/code/Types;
            0   17     1        t  Lcom/sun/tools/javac/code/Type;
            0   17     2        s  Lcom/sun/tools/javac/code/Type;
            0   17     3  capture  Z
            0   17     4     warn  Lcom/sun/tools/javac/util/Warner;
           10   16     5       t2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      t        
      s        
      capture  
      warn     

  private void checkUnsafeVarargsConversion(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 1041
            aload 1 /* t */
            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 1
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isReifiable:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
         1: .line 1042
      StackMap locals:
      StackMap stack:
            return
         2: .line 1044
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ArrayType
            astore 4 /* from */
        start local 4 // com.sun.tools.javac.code.Type$ArrayType from
         3: .line 1045
            iconst_0
            istore 5 /* shouldWarn */
        start local 5 // boolean shouldWarn
         4: .line 1046
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 10 - 11
                   10: 13
                   11: 5
              default: 14
          }
         5: .line 1048
      StackMap locals: com.sun.tools.javac.code.Type$ArrayType int
      StackMap stack:
            aload 2 /* s */
            checkcast com.sun.tools.javac.code.Type$ArrayType
            astore 6 /* to */
        start local 6 // com.sun.tools.javac.code.Type$ArrayType to
         6: .line 1049
            aload 4 /* from */
            invokevirtual com.sun.tools.javac.code.Type$ArrayType.isVarargs:()Z
            ifeq 10
         7: .line 1050
            aload 6 /* to */
            invokevirtual com.sun.tools.javac.code.Type$ArrayType.isVarargs:()Z
            ifne 10
         8: .line 1051
            aload 0 /* this */
            aload 4 /* from */
            invokevirtual com.sun.tools.javac.code.Types.isReifiable:(Lcom/sun/tools/javac/code/Type;)Z
            ifne 10
         9: .line 1049
            iconst_1
            goto 11
      StackMap locals: com.sun.tools.javac.code.Type$ArrayType
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: istore 5 /* shouldWarn */
        12: .line 1052
            goto 14
        end local 6 // com.sun.tools.javac.code.Type$ArrayType to
        13: .line 1054
      StackMap locals:
      StackMap stack:
            aload 4 /* from */
            invokevirtual com.sun.tools.javac.code.Type$ArrayType.isVarargs:()Z
            istore 5 /* shouldWarn */
        14: .line 1057
      StackMap locals:
      StackMap stack:
            iload 5 /* shouldWarn */
            ifeq 16
        15: .line 1058
            aload 3 /* warn */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.VARARGS:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.warn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        16: .line 1060
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean shouldWarn
        end local 4 // com.sun.tools.javac.code.Type$ArrayType from
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/sun/tools/javac/code/Types;
            0   17     1           t  Lcom/sun/tools/javac/code/Type;
            0   17     2           s  Lcom/sun/tools/javac/code/Type;
            0   17     3        warn  Lcom/sun/tools/javac/util/Warner;
            3   17     4        from  Lcom/sun/tools/javac/code/Type$ArrayType;
            4   17     5  shouldWarn  Z
            6   13     6          to  Lcom/sun/tools/javac/code/Type$ArrayType;
    MethodParameters:
      Name  Flags
      t     
      s     
      warn  

  public final boolean isSubtype(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1067
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public final boolean isSubtypeNoCapture(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1070
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isSubtype(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // boolean capture
         0: .line 1073
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.equalsIgnoreMetadata:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
         1: .line 1074
            iconst_1
            ireturn
         2: .line 1075
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPartial:()Z
            ifeq 4
         3: .line 1076
            aload 0 /* this */
            aload 2 /* s */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isSuperType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
         4: .line 1078
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifeq 11
         5: .line 1079
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 9
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int top java.util.Iterator
      StackMap stack:
         6: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* s2 */
        start local 4 // com.sun.tools.javac.code.Type s2
         7: .line 1080
            aload 0 /* this */
            aload 1 /* t */
            aload 4 /* s2 */
            iload 3 /* capture */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ifne 9
         8: .line 1081
            iconst_0
            ireturn
        end local 4 // com.sun.tools.javac.code.Type s2
         9: .line 1079
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        10: .line 1083
            iconst_1
            ireturn
        11: .line 1089
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int
      StackMap stack:
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 17
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifne 17
        12: .line 1091
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.wildLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.cvarLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 4 /* lower */
        start local 4 // com.sun.tools.javac.code.Type lower
        13: .line 1092
            aload 2 /* s */
            aload 4 /* lower */
            if_acmpeq 17
            aload 4 /* lower */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 17
        14: .line 1093
            aload 0 /* this */
            iload 3 /* capture */
            ifeq 15
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            goto 16
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int com.sun.tools.javac.code.Type
      StackMap stack: com.sun.tools.javac.code.Types
        15: aload 1 /* t */
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int com.sun.tools.javac.code.Type
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type
        16: aload 4 /* lower */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ireturn
        end local 4 // com.sun.tools.javac.code.Type lower
        17: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isSubtype:Lcom/sun/tools/javac/code/Types$TypeRelation;
            iload 3 /* capture */
            ifeq 18
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            goto 19
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Types$TypeRelation
        18: aload 1 /* t */
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int
      StackMap stack: com.sun.tools.javac.code.Types$TypeRelation com.sun.tools.javac.code.Type
        19: aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // boolean capture
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/sun/tools/javac/code/Types;
            0   20     1        t  Lcom/sun/tools/javac/code/Type;
            0   20     2        s  Lcom/sun/tools/javac/code/Type;
            0   20     3  capture  Z
            7    9     4       s2  Lcom/sun/tools/javac/code/Type;
           13   17     4    lower  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      t        
      s        
      capture  

  public boolean isSubtypeUnchecked(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.util.List ts
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 1236
            aload 2 /* ts */
            astore 4 /* l */
        start local 4 // com.sun.tools.javac.util.List l
         1: goto 5
         2: .line 1237
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUnchecked:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ifne 4
         3: .line 1238
            iconst_0
            ireturn
         4: .line 1236
      StackMap locals:
      StackMap stack:
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
      StackMap locals:
      StackMap stack:
         5: aload 4 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 2
        end local 4 // com.sun.tools.javac.util.List l
         6: .line 1239
            iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.util.List ts
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1     t  Lcom/sun/tools/javac/code/Type;
            0    7     2    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     3  warn  Lcom/sun/tools/javac/util/Warner;
            1    6     4     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/Warner;)Z
    MethodParameters:
      Name  Flags
      t     
      ts    
      warn  

  public boolean isSubtypes(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
         0: .line 1247
            goto 3
         1: .line 1250
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         2: .line 1251
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         3: .line 1247
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
         4: .line 1249
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 1
         5: .line 1253
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2    ss  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;>;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    

  public boolean isSubtypesUnchecked(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 1263
            goto 3
         1: .line 1266
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         2: .line 1267
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         3: .line 1263
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
         4: .line 1265
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUnchecked:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ifne 1
         5: .line 1269
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2    ss  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     3  warn  Lcom/sun/tools/javac/util/Warner;
    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;>;Lcom/sun/tools/javac/util/Warner;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    
      warn  

  public boolean isSuperType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1279
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 21 - 23
                   21: 1
                   22: 10
                   23: 2
              default: 10
          }
         1: .line 1281
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1283
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 3 /* undet */
        start local 3 // com.sun.tools.javac.code.Type$UndetVar undet
         3: .line 1284
            aload 1 /* t */
            aload 2 /* s */
            if_acmpeq 7
         4: .line 1285
            aload 3 /* undet */
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            if_acmpeq 7
         5: .line 1286
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 7
         6: .line 1287
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.BOT: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 1288
      StackMap locals: com.sun.tools.javac.code.Type$UndetVar
      StackMap stack:
            iconst_1
            ireturn
         8: .line 1290
      StackMap locals:
      StackMap stack:
            aload 3 /* undet */
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.LOWER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aload 2 /* s */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
         9: .line 1291
            iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.code.Type$UndetVar undet
        10: .line 1294
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/tools/javac/code/Types;
            0   11     1      t  Lcom/sun/tools/javac/code/Type;
            0   11     2      s  Lcom/sun/tools/javac/code/Type;
            3   10     3  undet  Lcom/sun/tools/javac/code/Type$UndetVar;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isSameTypes(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
         0: .line 1305
            goto 3
         1: .line 1308
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         2: .line 1309
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         3: .line 1305
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
         4: .line 1307
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 1
         5: .line 1311
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2    ss  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;>;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    

  public boolean isSignaturePolymorphic(com.sun.tools.javac.code.Symbol$MethodSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol msym
         0: .line 1324
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            astore 2 /* argtypes */
        start local 2 // com.sun.tools.javac.util.List argtypes
         1: .line 1325
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.flags_field:J
            ldc 256
            land
            lconst_0
            lcmp
            ifeq 7
         2: .line 1326
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.methodHandleType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpeq 3
            aload 1 /* msym */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.varHandleType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 7
         3: .line 1327
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 2 /* argtypes */
            invokevirtual com.sun.tools.javac.util.List.length:()I
            iconst_1
            if_icmpne 7
         4: .line 1328
            aload 2 /* argtypes */
            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 7
         5: .line 1329
            aload 2 /* argtypes */
            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;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 7
         6: .line 1325
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List argtypes
        end local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol msym
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Lcom/sun/tools/javac/code/Types;
            0    8     1      msym  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            1    8     2  argtypes  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      msym  

  public boolean isSameType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1336
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isSameTypeVisitor:Lcom/sun/tools/javac/code/Types$TypeRelation;
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean containedBy(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1484
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 21 - 23
                   21: 13
                   22: 14
                   23: 1
              default: 14
          }
         1: .line 1486
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 12
         2: .line 1487
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$UndetVar
            astore 3 /* undetvar */
        start local 3 // com.sun.tools.javac.code.Type$UndetVar undetvar
         3: .line 1488
            aload 2 /* s */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 4 /* wt */
        start local 4 // com.sun.tools.javac.code.Type$WildcardType wt
         4: .line 1489
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:()[I
            aload 4 /* wt */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 6
                    2: 9
                    3: 5
              default: 11
          }
         5: .line 1491
      StackMap locals: com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$WildcardType
      StackMap stack:
            goto 11
         6: .line 1493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* bound */
        start local 5 // com.sun.tools.javac.code.Type bound
         7: .line 1494
            aload 3 /* undetvar */
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.UPPER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aload 5 /* bound */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
         8: .line 1495
            goto 11
        end local 5 // com.sun.tools.javac.code.Type bound
         9: .line 1498
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.wildLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* bound */
        start local 5 // com.sun.tools.javac.code.Type bound
        10: .line 1499
            aload 3 /* undetvar */
            getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.LOWER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
            aload 5 /* bound */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Type$UndetVar.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
        end local 5 // com.sun.tools.javac.code.Type bound
        11: .line 1503
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // com.sun.tools.javac.code.Type$WildcardType wt
        end local 3 // com.sun.tools.javac.code.Type$UndetVar undetvar
        12: .line 1505
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        13: .line 1508
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        14: .line 1510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lcom/sun/tools/javac/code/Types;
            0   15     1         t  Lcom/sun/tools/javac/code/Type;
            0   15     2         s  Lcom/sun/tools/javac/code/Type;
            3   12     3  undetvar  Lcom/sun/tools/javac/code/Type$UndetVar;
            4   12     4        wt  Lcom/sun/tools/javac/code/Type$WildcardType;
            7    9     5     bound  Lcom/sun/tools/javac/code/Type;
           10   11     5     bound  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  boolean containsType(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: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
         0: .line 1515
            goto 3
         1: .line 1517
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         2: .line 1518
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         3: .line 1515
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 5
            aload 2 /* ss */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 5
         4: .line 1516
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 1
         5: .line 1520
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
            aload 2 /* ss */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2    ss  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;>;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    

  public boolean containsType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1549
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.containsType:Lcom/sun/tools/javac/code/Types$TypeRelation;
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isCaptureOf(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type$WildcardType);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$WildcardType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type s
        start local 2 // com.sun.tools.javac.code.Type$WildcardType t
         0: .line 1604
            aload 1 /* s */
            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 1
            aload 1 /* s */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.isCaptured:()Z
            ifne 2
         1: .line 1605
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1606
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* t */
            aload 1 /* s */
            checkcast com.sun.tools.javac.code.Type$CapturedType
            getfield com.sun.tools.javac.code.Type$CapturedType.wildcard:Lcom/sun/tools/javac/code/Type$WildcardType;
            invokevirtual com.sun.tools.javac.code.Types.isSameWildcard:(Lcom/sun/tools/javac/code/Type$WildcardType;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type$WildcardType t
        end local 1 // com.sun.tools.javac.code.Type s
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types;
            0    3     1     s  Lcom/sun/tools/javac/code/Type;
            0    3     2     t  Lcom/sun/tools/javac/code/Type$WildcardType;
    MethodParameters:
      Name  Flags
      s     
      t     

  public boolean isSameWildcard(com.sun.tools.javac.code.Type$WildcardType, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type$WildcardType;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$WildcardType t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1610
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 2
         1: .line 1611
            iconst_0
            ireturn
         2: .line 1612
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 3 /* w */
        start local 3 // com.sun.tools.javac.code.Type$WildcardType w
         3: .line 1613
            aload 3 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            if_acmpne 4
            aload 3 /* w */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$WildcardType.type:Lcom/sun/tools/javac/code/Type;
            if_acmpne 4
            iconst_1
            ireturn
      StackMap locals: com.sun.tools.javac.code.Type$WildcardType
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // com.sun.tools.javac.code.Type$WildcardType w
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type$WildcardType t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/code/Types;
            0    5     1     t  Lcom/sun/tools/javac/code/Type$WildcardType;
            0    5     2     s  Lcom/sun/tools/javac/code/Type;
            3    5     3     w  Lcom/sun/tools/javac/code/Type$WildcardType;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean containsTypeEquivalent(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
         0: .line 1617
            goto 3
         1: .line 1619
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         2: .line 1620
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         3: .line 1617
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 5
            aload 2 /* ss */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 5
         4: .line 1618
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.containsTypeEquivalent:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 1
         5: .line 1622
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
            aload 2 /* ss */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2    ss  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;>;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    

  public boolean isCastable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1628
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.code.Types.isCastable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isCastable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 1637
            aload 1 /* t */
            aload 2 /* s */
            if_acmpne 2
         1: .line 1638
            iconst_1
            ireturn
         2: .line 1639
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            if_icmpeq 9
         3: .line 1640
            aload 0 /* this */
            aload 1 /* t */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.skipTypeVars:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
         4: .line 1641
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isConvertible:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ifne 8
         5: .line 1642
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 7
         6: .line 1643
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.boxedClass:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 8
         7: .line 1641
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         8: iconst_1
            ireturn
         9: .line 1645
      StackMap locals:
      StackMap stack:
            aload 3 /* warn */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            if_acmpeq 18
        10: .line 1647
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
        11: .line 1648
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.checkUnsafeVarargsConversion:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)V
        12: .line 1649
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isCastable:Lcom/sun/tools/javac/code/Types$TypeRelation;
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            istore 5
        13: .line 1651
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
        14: .line 1649
            iload 5
            ireturn
        15: .line 1650
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
        16: .line 1651
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Types.warnStack:Lcom/sun/tools/javac/util/List;
        17: .line 1652
            aload 4
            athrow
        18: .line 1654
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isCastable:Lcom/sun/tools/javac/code/Types$TypeRelation;
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lcom/sun/tools/javac/code/Types;
            0   19     1     t  Lcom/sun/tools/javac/code/Type;
            0   19     2     s  Lcom/sun/tools/javac/code/Type;
            0   19     3  warn  Lcom/sun/tools/javac/util/Warner;
      Exception table:
        from    to  target  type
          10    13      15  any
    MethodParameters:
      Name  Flags
      t     
      s     
      warn  

  public boolean disjointTypes(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List ss
         0: .line 1846
            goto 4
         1: .line 1847
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.disjointType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
            iconst_1
            ireturn
         2: .line 1848
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* ts */
         3: .line 1849
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* ss */
         4: .line 1846
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnull 5
            aload 2 /* ss */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            ifnonnull 1
         5: .line 1851
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.util.List ss
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    6     2    ss  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;>;)Z
    MethodParameters:
      Name  Flags
      ts    
      ss    

  public boolean disjointType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1864
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.disjointType:Lcom/sun/tools/javac/code/Types$TypeRelation;
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> cvarLowerBounds(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: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 1936
            aload 1 /* ts */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.cvarLowerBoundMapping:Lcom/sun/tools/javac/code/Types$TypeMapping;
            invokevirtual com.sun.tools.javac.util.List.map:(Ljava/util/function/Function;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    ts  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    

  public boolean notSoftSubtype(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 1956
            aload 1 /* t */
            aload 2 /* s */
            if_acmpne 1
            iconst_0
            ireturn
         1: .line 1957
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            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 11
         2: .line 1958
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 3 /* tv */
        start local 3 // com.sun.tools.javac.code.Type$TypeVar tv
         3: .line 1959
            aload 0 /* this */
            aload 3 /* tv */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
         4: .line 1960
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.relaxBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
         5: .line 1961
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
         6: .line 1959
            invokevirtual com.sun.tools.javac.code.Types.isCastable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
         7: .line 1961
            ifeq 9
         8: .line 1959
            iconst_0
            goto 10
      StackMap locals: com.sun.tools.javac.code.Type$TypeVar
      StackMap stack:
         9: iconst_1
      StackMap locals:
      StackMap stack: int
        10: ireturn
        end local 3 // com.sun.tools.javac.code.Type$TypeVar tv
        11: .line 1963
      StackMap locals:
      StackMap stack:
            aload 2 /* s */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 13
        12: .line 1964
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.cvarUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* s */
        13: .line 1966
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.relaxBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 14
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack:
        14: iconst_1
      StackMap locals:
      StackMap stack: int
        15: ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/sun/tools/javac/code/Types;
            0   16     1     t  Lcom/sun/tools/javac/code/Type;
            0   16     2     s  Lcom/sun/tools/javac/code/Type;
            3   11     3    tv  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
      Name  Flags
      t     
      s     

  private com.sun.tools.javac.code.Type relaxBound(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 1970
            aload 1 /* t */
            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 2
         1: .line 1971
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.skipTypeVars:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
            iconst_1
            iconst_1
            invokevirtual com.sun.tools.javac.code.Types.rewriteQuantifiers:(Lcom/sun/tools/javac/code/Type;ZZ)Lcom/sun/tools/javac/code/Type;
            goto 3
         2: .line 1972
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
         3: .line 1970
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public boolean isReifiable(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.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 1978
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isReifiable:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public boolean isArray(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.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2017
            goto 2
         1: .line 2018
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
         2: .line 2017
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
         3: .line 2019
            aload 1 /* t */
            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
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type elemtype(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=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2026
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            lookupswitch { // 4
                   11: 2
                   16: 1
                   17: 3
                   21: 4
              default: 5
          }
         1: .line 2028
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
         2: .line 2030
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ArrayType
            getfield com.sun.tools.javac.code.Type$ArrayType.elemtype:Lcom/sun/tools/javac/code/Type;
            areturn
         3: .line 2032
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ForAll
            getfield com.sun.tools.javac.code.Type$ForAll.qtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
         4: .line 2034
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
         5: .line 2036
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type elemtypeOrType(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=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2041
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* elemtype */
        start local 2 // com.sun.tools.javac.code.Type elemtype
         1: .line 2042
            aload 2 /* elemtype */
            ifnull 3
         2: .line 2043
            aload 2 /* elemtype */
            goto 4
         3: .line 2044
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* t */
         4: .line 2042
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 2 // com.sun.tools.javac.code.Type elemtype
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/tools/javac/code/Types;
            0    5     1         t  Lcom/sun/tools/javac/code/Type;
            1    5     2  elemtype  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public int dimensions(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2066
            iconst_0
            istore 2 /* result */
        start local 2 // int result
         1: .line 2067
            goto 4
         2: .line 2068
      StackMap locals: int
      StackMap stack:
            iinc 2 /* result */ 1
         3: .line 2069
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.elemtype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
         4: .line 2067
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            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
            ifne 2
         5: .line 2071
            iload 2 /* result */
            ireturn
        end local 2 // int result
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/tools/javac/code/Types;
            0    6     1       t  Lcom/sun/tools/javac/code/Type;
            1    6     2  result  I
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type$ArrayType makeArrayType(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type$ArrayType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2081
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.PACKAGE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
         1: .line 2082
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "Type t must not be a VOID or PACKAGE type, "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.sun.tools.javac.util.Assert.error:(Ljava/lang/String;)V
         2: .line 2084
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Type$ArrayType
            dup
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.arrayClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokespecial com.sun.tools.javac.code.Type$ArrayType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types;
            0    3     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type asSuper(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)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.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 2110
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            if_acmpne 2
         1: .line 2111
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            areturn
         2: .line 2113
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.asSuper:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types$SimpleVisitor.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types;
            0    3     1     t  Lcom/sun/tools/javac/code/Type;
            0    3     2   sym  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
      Name  Flags
      t     
      sym   

  public com.sun.tools.javac.code.Type asOuterSuper(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 2181
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            lookupswitch { // 4
                   10: 1
                   11: 6
                   15: 9
                   21: 10
              default: 11
          }
         1: .line 2184
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* s */
        start local 3 // com.sun.tools.javac.code.Type s
         2: .line 2185
            aload 3 /* s */
            ifnull 3
            aload 3 /* s */
            areturn
         3: .line 2186
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
        end local 3 // com.sun.tools.javac.code.Type s
         4: .line 2187
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
         5: .line 2188
            aconst_null
            areturn
         6: .line 2190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 7
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            goto 8
      StackMap locals:
      StackMap stack:
         7: aconst_null
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         8: areturn
         9: .line 2192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            areturn
        10: .line 2194
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        11: .line 2196
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/tools/javac/code/Types;
            0   12     1     t  Lcom/sun/tools/javac/code/Type;
            0   12     2   sym  Lcom/sun/tools/javac/code/Symbol;
            2    4     3     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      sym   

  public com.sun.tools.javac.code.Type asEnclosingSuper(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 2208
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            lookupswitch { // 4
                   10: 1
                   11: 10
                   15: 13
                   21: 14
              default: 15
          }
         1: .line 2211
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* s */
        start local 3 // com.sun.tools.javac.code.Type s
         2: .line 2212
            aload 3 /* s */
            ifnull 3
            aload 3 /* s */
            areturn
         3: .line 2213
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            astore 4 /* outer */
        start local 4 // com.sun.tools.javac.code.Type outer
         4: .line 2214
            aload 4 /* outer */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 5
            aload 4 /* outer */
            goto 7
         5: .line 2215
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            ifnull 6
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            goto 7
         6: .line 2216
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
         7: .line 2214
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            astore 1 /* t */
        end local 4 // com.sun.tools.javac.code.Type outer
        end local 3 // com.sun.tools.javac.code.Type s
         8: .line 2217
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
         9: .line 2218
            aconst_null
            areturn
        10: .line 2220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 11
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            goto 12
      StackMap locals:
      StackMap stack:
        11: aconst_null
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
        12: areturn
        13: .line 2222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            areturn
        14: .line 2224
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        15: .line 2226
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0   this  Lcom/sun/tools/javac/code/Types;
            0   16     1      t  Lcom/sun/tools/javac/code/Type;
            0   16     2    sym  Lcom/sun/tools/javac/code/Symbol;
            2    8     3      s  Lcom/sun/tools/javac/code/Type;
            4    8     4  outer  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      sym   

  public com.sun.tools.javac.code.Type memberType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 2239
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            ldc 8
            land
            lconst_0
            lcmp
            ifeq 2
         1: .line 2240
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            goto 3
         2: .line 2241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.memberType:Lcom/sun/tools/javac/code/Types$SimpleVisitor;
            aload 1 /* t */
            aload 2 /* sym */
            invokevirtual com.sun.tools.javac.code.Types$SimpleVisitor.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
         3: .line 2239
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
            0    4     2   sym  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
      Name  Flags
      t     
      sym   

  public boolean isAssignable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 2295
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.code.Types.isAssignable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean isAssignable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 2305
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
         1: .line 2306
            iconst_1
            ireturn
         2: .line 2307
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            getstatic com.sun.tools.javac.code.TypeTag.INT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.isSubRangeOf:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 9
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.constValue:()Ljava/lang/Object;
            ifnull 9
         3: .line 2308
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.constValue:()Ljava/lang/Object;
            checkcast java.lang.Number
            invokevirtual java.lang.Number.intValue:()I
            istore 4 /* value */
        start local 4 // int value
         4: .line 2309
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 1 - 10
                    1: 5
                    2: 5
                    3: 5
                    4: 9
                    5: 9
                    6: 5
                    7: 9
                    8: 9
                    9: 9
                   10: 7
              default: 9
          }
         5: .line 2314
      StackMap locals: int
      StackMap stack:
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            iload 4 /* value */
            invokevirtual com.sun.tools.javac.code.TypeTag.checkRange:(I)Z
            ifeq 9
         6: .line 2315
            iconst_1
            ireturn
         7: .line 2318
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.unboxedType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 8
                    2: 8
                    3: 8
              default: 9
          }
         8: .line 2322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.unboxedType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isAssignable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 4 // int value
         9: .line 2327
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warn */
            invokevirtual com.sun.tools.javac.code.Types.isConvertible:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lcom/sun/tools/javac/code/Types;
            0   10     1      t  Lcom/sun/tools/javac/code/Type;
            0   10     2      s  Lcom/sun/tools/javac/code/Type;
            0   10     3   warn  Lcom/sun/tools/javac/util/Warner;
            4    9     4  value  I
    MethodParameters:
      Name  Flags
      t     
      s     
      warn  

  public com.sun.tools.javac.code.Type erasure(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=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2337
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.eraseNotNeeded:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 1
            aload 1 /* t */
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            aload 1 /* t */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         2: areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Types;
            0    3     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  private boolean eraseNotNeeded(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2344
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpeq 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Types;
            0    2     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  private com.sun.tools.javac.code.Type erasure(com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // boolean recurse
         0: .line 2348
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 2
         1: .line 2349
            aload 1 /* t */
            areturn
         2: .line 2351
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.erasure:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aload 1 /* t */
            iload 2 /* recurse */
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            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
            astore 3 /* out */
        start local 3 // com.sun.tools.javac.code.Type out
         3: .line 2352
            aload 3 /* out */
            areturn
        end local 3 // com.sun.tools.javac.code.Type out
        end local 2 // boolean recurse
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lcom/sun/tools/javac/code/Types;
            0    4     1        t  Lcom/sun/tools/javac/code/Type;
            0    4     2  recurse  Z
            3    4     3      out  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
         Name  Flags
      t        
      recurse  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> erasure(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 2412
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.erasure:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aload 1 /* ts */
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.visit:(Lcom/sun/tools/javac/util/List;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    ts  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    

  public com.sun.tools.javac.code.Type erasureRecursive(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=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2416
            aload 0 /* this */
            aload 1 /* t */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> erasureRecursive(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 2420
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.erasure:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aload 1 /* ts */
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.visit:(Lcom/sun/tools/javac/util/List;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    ts  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    

  public com.sun.tools.javac.code.Type$IntersectionClassType makeIntersectionType(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List bounds
         0: .line 2433
            aload 0 /* this */
            aload 1 /* bounds */
            aload 1 /* bounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.isInterface:()Z
            invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;Z)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
            areturn
        end local 1 // com.sun.tools.javac.util.List bounds
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/code/Types;
            0    1     1  bounds  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$IntersectionClassType;
    MethodParameters:
        Name  Flags
      bounds  

  public com.sun.tools.javac.code.Type$IntersectionClassType makeIntersectionType(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, boolean);
    descriptor: (Lcom/sun/tools/javac/util/List;Z)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List bounds
        start local 2 // boolean allInterfaces
         0: .line 2446
            aload 1 /* bounds */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         1: .line 2447
            aload 1 /* bounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* firstExplicitBound */
        start local 3 // com.sun.tools.javac.code.Type firstExplicitBound
         2: .line 2448
            iload 2 /* allInterfaces */
            ifeq 4
         3: .line 2449
            aload 1 /* bounds */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 1 /* bounds */
         4: .line 2452
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            new com.sun.tools.javac.code.Symbol$ClassSymbol
            dup
            ldc 1090524161
         5: .line 2453
            getstatic com.sun.tools.javac.code.Type.moreInfo:Z
            ifeq 7
         6: .line 2454
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            aload 1 /* bounds */
            invokevirtual com.sun.tools.javac.util.List.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            goto 8
         7: .line 2455
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type
      StackMap stack: new 4 new 4 long
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.empty:Lcom/sun/tools/javac/util/Name;
         8: .line 2456
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type
      StackMap stack: new 4 new 4 long com.sun.tools.javac.util.Name
            aconst_null
         9: .line 2457
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.noSymbol:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
        10: .line 2452
            invokespecial com.sun.tools.javac.code.Symbol$ClassSymbol.<init>:(JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)V
        11: .line 2451
            astore 4 /* bc */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol bc
        12: .line 2458
            new com.sun.tools.javac.code.Type$IntersectionClassType
            dup
            aload 1 /* bounds */
            aload 4 /* bc */
            iload 2 /* allInterfaces */
            invokespecial com.sun.tools.javac.code.Type$IntersectionClassType.<init>:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Z)V
            astore 5 /* intersectionType */
        start local 5 // com.sun.tools.javac.code.Type$IntersectionClassType intersectionType
        13: .line 2459
            aload 4 /* bc */
            aload 5 /* intersectionType */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
        14: .line 2460
            aload 4 /* bc */
            aload 1 /* bounds */
            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.TYPEVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 16
        15: .line 2461
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            goto 17
        16: .line 2462
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Type$IntersectionClassType
      StackMap stack: com.sun.tools.javac.code.Symbol$ClassSymbol
            aload 0 /* this */
            aload 3 /* firstExplicitBound */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
        17: .line 2460
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Type$IntersectionClassType
      StackMap stack: com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Type
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.erasure_field:Lcom/sun/tools/javac/code/Type;
        18: .line 2463
            aload 4 /* bc */
            aload 4 /* bc */
            invokestatic com.sun.tools.javac.code.Scope$WriteableScope.create:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Scope$WriteableScope;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
        19: .line 2464
            aload 5 /* intersectionType */
            areturn
        end local 5 // com.sun.tools.javac.code.Type$IntersectionClassType intersectionType
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol bc
        end local 3 // com.sun.tools.javac.code.Type firstExplicitBound
        end local 2 // boolean allInterfaces
        end local 1 // com.sun.tools.javac.util.List bounds
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   20     0                this  Lcom/sun/tools/javac/code/Types;
            0   20     1              bounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   20     2       allInterfaces  Z
            2   20     3  firstExplicitBound  Lcom/sun/tools/javac/code/Type;
           12   20     4                  bc  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           13   20     5    intersectionType  Lcom/sun/tools/javac/code/Type$IntersectionClassType;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Z)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
    MethodParameters:
               Name  Flags
      bounds         
      allInterfaces  

  public com.sun.tools.javac.code.Type supertype(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=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2470
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.supertype:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> interfaces(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2540
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.interfaces:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> directSupertypes(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2598
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.directSupertypes:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public boolean isDirectSuperInterface(com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol isym
        start local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
         0: .line 2616
            aload 0 /* this */
            aload 2 /* origin */
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 3
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol$TypeSymbol top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* i2 */
        start local 3 // com.sun.tools.javac.code.Type i2
         2: .line 2617
            aload 1 /* isym */
            aload 3 /* i2 */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 3
            iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.code.Type i2
         3: .line 2616
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 2619
            iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol isym
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/tools/javac/code/Types;
            0    5     1    isym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    5     2  origin  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            2    3     3      i2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
        Name  Flags
      isym    
      origin  

  public boolean isDerivedRaw(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2627
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isDerivedRawCache:Ljava/util/Map;
            aload 1 /* t */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 2 /* result */
        start local 2 // java.lang.Boolean result
         1: .line 2628
            aload 2 /* result */
            ifnonnull 4
         2: .line 2629
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isDerivedRawInternal:(Lcom/sun/tools/javac/code/Type;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 2 /* result */
         3: .line 2630
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isDerivedRawCache:Ljava/util/Map;
            aload 1 /* t */
            aload 2 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 2632
      StackMap locals: java.lang.Boolean
      StackMap stack:
            aload 2 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 2 // java.lang.Boolean result
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/tools/javac/code/Types;
            0    5     1       t  Lcom/sun/tools/javac/code/Type;
            1    5     2  result  Ljava/lang/Boolean;
    MethodParameters:
      Name  Flags
      t     

  public boolean isDerivedRawInternal(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2636
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifeq 2
         1: .line 2637
            iconst_0
            ireturn
         2: .line 2639
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isRaw:()Z
            ifne 6
         3: .line 2640
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            if_acmpeq 4
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isDerivedRaw:(Lcom/sun/tools/javac/code/Type;)Z
            ifne 6
         4: .line 2641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.isDerivedRaw:(Lcom/sun/tools/javac/util/List;)Z
            ifne 6
         5: .line 2638
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_1
            ireturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public boolean isDerivedRaw(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=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 2645
            aload 1 /* ts */
            astore 2 /* l */
        start local 2 // com.sun.tools.javac.util.List l
         1: .line 2646
            goto 3
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
         2: aload 2 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 2 /* l */
      StackMap locals:
      StackMap stack:
         3: aload 2 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 4
            aload 0 /* this */
            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.Types.isDerivedRaw:(Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
         4: .line 2647
      StackMap locals:
      StackMap stack:
            aload 2 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ireturn
        end local 2 // com.sun.tools.javac.util.List l
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/code/Types;
            0    5     1    ts  Lcom/sun/tools/javac/util/List<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;>;)Z
    MethodParameters:
      Name  Flags
      ts    

  public void setBounds(com.sun.tools.javac.code.Type$TypeVar, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
        start local 2 // com.sun.tools.javac.util.List bounds
         0: .line 2663
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* bounds */
            aload 2 /* bounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.isInterface:()Z
            invokevirtual com.sun.tools.javac.code.Types.setBounds:(Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List;Z)V
         1: .line 2664
            return
        end local 2 // com.sun.tools.javac.util.List bounds
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/code/Types;
            0    2     1       t  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    2     2  bounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
        Name  Flags
      t       
      bounds  

  public void setBounds(com.sun.tools.javac.code.Type$TypeVar, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, );
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
        start local 2 // com.sun.tools.javac.util.List bounds
        start local 3 // boolean allInterfaces
         0: .line 2676
            aload 1 /* t */
            aload 2 /* bounds */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         1: .line 2677
            aload 2 /* bounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            goto 3
         2: .line 2678
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type$TypeVar
            aload 0 /* this */
            aload 2 /* bounds */
            iload 3 /* allInterfaces */
            invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;Z)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
         3: .line 2676
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar com.sun.tools.javac.util.List int
      StackMap stack: com.sun.tools.javac.code.Type$TypeVar com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
         4: .line 2679
            aload 1 /* t */
            iconst_m1
            putfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
         5: .line 2680
            return
        end local 3 // boolean allInterfaces
        end local 2 // com.sun.tools.javac.util.List bounds
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Lcom/sun/tools/javac/code/Types;
            0    6     1              t  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    6     2         bounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    6     3  allInterfaces  Z
    Signature: (Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Z)V
    MethodParameters:
               Name  Flags
      t              
      bounds         
      allInterfaces  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getBounds(com.sun.tools.javac.code.Type$TypeVar);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
         0: .line 2688
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.NONE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
         1: .line 2689
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
         2: .line 2690
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifne 3
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifne 4
         3: .line 2691
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         4: .line 2692
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            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
            ifne 6
         5: .line 2693
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         6: .line 2697
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/code/Types;
            0    7     1     t  Lcom/sun/tools/javac/code/Type$TypeVar;
    Signature: (Lcom/sun/tools/javac/code/Type$TypeVar;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type classBound(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=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 2708
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.classBound:Lcom/sun/tools/javac/code/Types$UnaryVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$UnaryVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

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

  public boolean isSubSignature(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // boolean strict
         0: .line 2756
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iload 3 /* strict */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ifne 1
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            iload 3 /* strict */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 3 // boolean strict
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/code/Types;
            0    2     1       t  Lcom/sun/tools/javac/code/Type;
            0    2     2       s  Lcom/sun/tools/javac/code/Type;
            0    2     3  strict  Z
    MethodParameters:
        Name  Flags
      t       
      s       
      strict  

  public boolean overrideEquivalent(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 2773
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 3
         1: .line 2774
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 3
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 3
         2: .line 2773
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
            0    4     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public boolean overridesObjectMethod(com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Symbol;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        start local 2 // com.sun.tools.javac.code.Symbol msym
         0: .line 2778
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 2 /* msym */
            getfield com.sun.tools.javac.code.Symbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Scope$WriteableScope.getSymbolsByName:(Lcom/sun/tools/javac/util/Name;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Symbol top java.util.Iterator
      StackMap stack:
         1: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 3 /* sym */
        start local 3 // com.sun.tools.javac.code.Symbol sym
         2: .line 2779
            aload 2 /* msym */
            aload 3 /* sym */
            aload 1 /* origin */
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Symbol.overrides:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;Z)Z
            ifeq 4
         3: .line 2780
            iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.code.Symbol sym
         4: .line 2778
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 2783
            iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.code.Symbol msym
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/tools/javac/code/Types;
            0    6     1  origin  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    6     2    msym  Lcom/sun/tools/javac/code/Symbol;
            2    4     3     sym  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
        Name  Flags
      origin  
      msym    

  public java.util.Optional<com.sun.tools.javac.code.Symbol> mergeAbstracts(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol>, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Z)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=18, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ambiguousInOrder
        start local 2 // com.sun.tools.javac.code.Type site
        start local 3 // boolean sigCheck
         0: .line 2832
            iconst_0
            istore 4 /* shouldErase */
        start local 4 // boolean shouldErase
         1: .line 2833
            aload 1 /* ambiguousInOrder */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            astore 5 /* erasedParams */
        start local 5 // com.sun.tools.javac.util.List erasedParams
         2: .line 2834
            aload 1 /* ambiguousInOrder */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 9
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         3: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 6 /* s */
        start local 6 // com.sun.tools.javac.code.Symbol s
         4: .line 2835
            aload 6 /* s */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            ldc 1024
            land
            lconst_0
            lcmp
            ifeq 6
         5: .line 2836
            iload 3 /* sigCheck */
            ifeq 7
            aload 0 /* this */
            aload 5 /* erasedParams */
            aload 6 /* s */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.isSameTypes:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
            ifne 7
         6: .line 2837
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Symbol java.util.Iterator
      StackMap stack:
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
         7: .line 2838
      StackMap locals:
      StackMap stack:
            aload 6 /* s */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 9
         8: .line 2839
            iconst_1
            istore 4 /* shouldErase */
        end local 6 // com.sun.tools.javac.code.Symbol s
         9: .line 2834
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        10: .line 2843
            invokestatic com.sun.tools.javac.code.Types$MostSpecificReturnCheck.values:()[Lcom/sun/tools/javac/code/Types$MostSpecificReturnCheck;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 43
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List top int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[]
      StackMap stack:
        11: aload 9
            iload 7
            aaload
            astore 6 /* mostSpecificReturnCheck */
        start local 6 // com.sun.tools.javac.code.Types$MostSpecificReturnCheck mostSpecificReturnCheck
        12: .line 2844
            aload 1 /* ambiguousInOrder */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 11
            goto 41
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] top java.util.Iterator
      StackMap stack:
        13: aload 11
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 10 /* s */
        start local 10 // com.sun.tools.javac.code.Symbol s
        14: .line 2845
            aload 0 /* this */
            aload 2 /* site */
            aload 10 /* s */
            invokevirtual com.sun.tools.javac.code.Types.memberType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 12 /* mt */
        start local 12 // com.sun.tools.javac.code.Type mt
        15: .line 2846
            aload 12 /* mt */
            invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
            astore 13 /* allThrown */
        start local 13 // com.sun.tools.javac.util.List allThrown
        16: .line 2847
            aload 1 /* ambiguousInOrder */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 15
            goto 31
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
        17: aload 15
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 14 /* s2 */
        start local 14 // com.sun.tools.javac.code.Symbol s2
        18: .line 2848
            aload 10 /* s */
            aload 14 /* s2 */
            if_acmpeq 31
        19: .line 2849
            aload 0 /* this */
            aload 2 /* site */
            aload 14 /* s2 */
            invokevirtual com.sun.tools.javac.code.Types.memberType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 16 /* mt2 */
        start local 16 // com.sun.tools.javac.code.Type mt2
        20: .line 2850
            aload 0 /* this */
            aload 12 /* mt */
            aload 16 /* mt2 */
            invokevirtual com.sun.tools.javac.code.Types.isSubSignature:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 41
        21: .line 2851
            aload 6 /* mostSpecificReturnCheck */
            aload 12 /* mt */
            aload 16 /* mt2 */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Types$MostSpecificReturnCheck.test:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)Z
            ifne 23
        22: .line 2853
            goto 41
        23: .line 2855
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Type com.sun.tools.javac.util.List com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Type
      StackMap stack:
            aload 16 /* mt2 */
            invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
            astore 17 /* thrownTypes2 */
        start local 17 // com.sun.tools.javac.util.List thrownTypes2
        24: .line 2856
            aload 12 /* mt */
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 27
            iload 4 /* shouldErase */
            ifeq 27
        25: .line 2857
            aload 0 /* this */
            aload 17 /* thrownTypes2 */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 17 /* thrownTypes2 */
        26: .line 2858
            goto 30
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
        27: aload 12 /* mt */
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 30
        28: .line 2861
            aload 16 /* mt2 */
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
        29: .line 2863
            aload 0 /* this */
            aload 17 /* thrownTypes2 */
            aload 16 /* mt2 */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            aload 12 /* mt */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 17 /* thrownTypes2 */
        30: .line 2865
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.chk:Lcom/sun/tools/javac/comp/Check;
            aload 13 /* allThrown */
            aload 17 /* thrownTypes2 */
            invokevirtual com.sun.tools.javac.comp.Check.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 13 /* allThrown */
        end local 17 // com.sun.tools.javac.util.List thrownTypes2
        end local 16 // com.sun.tools.javac.code.Type mt2
        end local 14 // com.sun.tools.javac.code.Symbol s2
        31: .line 2847
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
            aload 15
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        32: .line 2869
            aload 13 /* allThrown */
            aload 12 /* mt */
            invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
            if_acmpne 34
        33: .line 2870
            aload 10 /* s */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            goto 40
        34: .line 2871
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Type com.sun.tools.javac.util.List
      StackMap stack:
            new com.sun.tools.javac.code.Types$24
            dup
            aload 0 /* this */
        35: .line 2872
            aload 10 /* s */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
        36: .line 2873
            aload 10 /* s */
            getfield com.sun.tools.javac.code.Symbol.name:Lcom/sun/tools/javac/util/Name;
        37: .line 2874
            aload 0 /* this */
            aload 10 /* s */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            aload 13 /* allThrown */
            invokevirtual com.sun.tools.javac.code.Types.createMethodTypeWithThrown:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
        38: .line 2875
            aload 10 /* s */
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
        39: .line 2871
            aload 10 /* s */
            invokespecial com.sun.tools.javac.code.Types$24.<init>:(Lcom/sun/tools/javac/code/Types;JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol;)V
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
        40: .line 2869
      StackMap locals:
      StackMap stack: java.util.Optional
            areturn
        end local 13 // com.sun.tools.javac.util.List allThrown
        end local 12 // com.sun.tools.javac.code.Type mt
        end local 10 // com.sun.tools.javac.code.Symbol s
        41: .line 2844
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List com.sun.tools.javac.code.Types$MostSpecificReturnCheck int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[] top java.util.Iterator
      StackMap stack:
            aload 11
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 13
        end local 6 // com.sun.tools.javac.code.Types$MostSpecificReturnCheck mostSpecificReturnCheck
        42: .line 2843
            iinc 7 1
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type int int com.sun.tools.javac.util.List top int int com.sun.tools.javac.code.Types$MostSpecificReturnCheck[]
      StackMap stack:
        43: iload 7
            iload 8
            if_icmplt 11
        44: .line 2883
            invokestatic java.util.Optional.empty:()Ljava/util/Optional;
            areturn
        end local 5 // com.sun.tools.javac.util.List erasedParams
        end local 4 // boolean shouldErase
        end local 3 // boolean sigCheck
        end local 2 // com.sun.tools.javac.code.Type site
        end local 1 // com.sun.tools.javac.util.List ambiguousInOrder
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   45     0                     this  Lcom/sun/tools/javac/code/Types;
            0   45     1         ambiguousInOrder  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol;>;
            0   45     2                     site  Lcom/sun/tools/javac/code/Type;
            0   45     3                 sigCheck  Z
            1   45     4              shouldErase  Z
            2   45     5             erasedParams  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            4    9     6                        s  Lcom/sun/tools/javac/code/Symbol;
           12   42     6  mostSpecificReturnCheck  Lcom/sun/tools/javac/code/Types$MostSpecificReturnCheck;
           14   41    10                        s  Lcom/sun/tools/javac/code/Symbol;
           15   41    12                       mt  Lcom/sun/tools/javac/code/Type;
           16   41    13                allThrown  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           18   31    14                       s2  Lcom/sun/tools/javac/code/Symbol;
           20   31    16                      mt2  Lcom/sun/tools/javac/code/Type;
           24   31    17             thrownTypes2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol;>;Lcom/sun/tools/javac/code/Type;Z)Ljava/util/Optional<Lcom/sun/tools/javac/code/Symbol;>;
    MethodParameters:
                  Name  Flags
      ambiguousInOrder  
      site              
      sigCheck          

  public com.sun.tools.javac.code.Symbol$MethodSymbol implementation(com.sun.tools.javac.code.Symbol$MethodSymbol, com.sun.tools.javac.code.Symbol$TypeSymbol, boolean, com.sun.tools.javac.util.Filter<com.sun.tools.javac.code.Symbol>);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;ZLcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol ms
        start local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        start local 3 // boolean checkResult
        start local 4 // com.sun.tools.javac.util.Filter implFilter
         0: .line 2960
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.implCache:Lcom/sun/tools/javac/code/Types$ImplementationCache;
            aload 1 /* ms */
            aload 2 /* origin */
            iload 3 /* checkResult */
            aload 4 /* implFilter */
            invokevirtual com.sun.tools.javac.code.Types$ImplementationCache.get:(Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;ZLcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            areturn
        end local 4 // com.sun.tools.javac.util.Filter implFilter
        end local 3 // boolean checkResult
        end local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol origin
        end local 1 // com.sun.tools.javac.code.Symbol$MethodSymbol ms
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/sun/tools/javac/code/Types;
            0    1     1           ms  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            0    1     2       origin  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    1     3  checkResult  Z
            0    1     4   implFilter  Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Symbol;>;
    Signature: (Lcom/sun/tools/javac/code/Symbol$MethodSymbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;ZLcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Symbol;>;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    MethodParameters:
             Name  Flags
      ms           
      origin       
      checkResult  
      implFilter   

  public com.sun.tools.javac.code.Scope$CompoundScope membersClosure(com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Scope$CompoundScope;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type site
        start local 2 // boolean skipInterface
         0: .line 3048
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.membersCache:Lcom/sun/tools/javac/code/Types$MembersClosureCache;
            aload 1 /* site */
            aconst_null
            invokevirtual com.sun.tools.javac.code.Types$MembersClosureCache.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Scope$CompoundScope
            astore 3 /* cs */
        start local 3 // com.sun.tools.javac.code.Scope$CompoundScope cs
         1: .line 3049
            aload 3 /* cs */
            aload 1 /* site */
            invokedynamic get(Lcom/sun/tools/javac/code/Type;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/sun/tools/javac/code/Types.lambda$2(Lcom/sun/tools/javac/code/Type;)Ljava/lang/String; (6)
                  ()Ljava/lang/String;
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;
            pop
         2: .line 3050
            iload 2 /* skipInterface */
            ifeq 3
            new com.sun.tools.javac.code.Types$MembersClosureCache$MembersScope
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.membersCache:Lcom/sun/tools/javac/code/Types$MembersClosureCache;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 3 /* cs */
            invokespecial com.sun.tools.javac.code.Types$MembersClosureCache$MembersScope.<init>:(Lcom/sun/tools/javac/code/Types$MembersClosureCache;Lcom/sun/tools/javac/code/Scope$CompoundScope;)V
            goto 4
      StackMap locals: com.sun.tools.javac.code.Scope$CompoundScope
      StackMap stack:
         3: aload 3 /* cs */
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Scope$CompoundScope
         4: areturn
        end local 3 // com.sun.tools.javac.code.Scope$CompoundScope cs
        end local 2 // boolean skipInterface
        end local 1 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/sun/tools/javac/code/Types;
            0    5     1           site  Lcom/sun/tools/javac/code/Type;
            0    5     2  skipInterface  Z
            1    5     3             cs  Lcom/sun/tools/javac/code/Scope$CompoundScope;
    MethodParameters:
               Name  Flags
      site           
      skipInterface  

  public com.sun.tools.javac.code.Symbol$MethodSymbol firstUnimplementedAbstract(com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         0: .line 3059
            aload 0 /* this */
            aload 1 /* sym */
            aload 1 /* sym */
            invokevirtual com.sun.tools.javac.code.Types.firstUnimplementedAbstractImpl:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
         1: areturn
         2: .line 3060
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Symbol$CompletionFailure
            astore 2 /* ex */
        start local 2 // com.sun.tools.javac.code.Symbol$CompletionFailure ex
         3: .line 3061
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.chk:Lcom/sun/tools/javac/comp/Check;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.enter:Lcom/sun/tools/javac/comp/Enter;
            aload 1 /* sym */
            invokevirtual com.sun.tools.javac.comp.Enter.getEnv:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.tree:Lcom/sun/tools/javac/tree/JCTree;
            invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 2 /* ex */
            invokevirtual com.sun.tools.javac.comp.Check.completionError:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol$CompletionFailure;)Lcom/sun/tools/javac/code/Type;
            pop
         4: .line 3062
            aconst_null
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol$CompletionFailure ex
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/code/Types;
            0    5     1   sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            3    5     2    ex  Lcom/sun/tools/javac/code/Symbol$CompletionFailure;
      Exception table:
        from    to  target  type
           0     1       2  Class com.sun.tools.javac.code.Symbol$CompletionFailure
    MethodParameters:
      Name  Flags
      sym   

  private com.sun.tools.javac.code.Symbol$MethodSymbol firstUnimplementedAbstractImpl(com.sun.tools.javac.code.Symbol$ClassSymbol, com.sun.tools.javac.code.Symbol$ClassSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
        start local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol c
         0: .line 3067
            aconst_null
            astore 3 /* undef */
        start local 3 // com.sun.tools.javac.code.Symbol$MethodSymbol undef
         1: .line 3070
            aload 2 /* c */
            aload 1 /* impl */
            if_acmpeq 2
            aload 2 /* c */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            ldc 1536
            land
            lconst_0
            lcmp
            ifeq 27
         2: .line 3071
      StackMap locals: com.sun.tools.javac.code.Symbol$MethodSymbol
      StackMap stack:
            aload 2 /* c */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            astore 4 /* s */
        start local 4 // com.sun.tools.javac.code.Scope s
         3: .line 3072
            aload 4 /* s */
            getstatic com.sun.tools.javac.code.Scope$LookupKind.NON_RECURSIVE:Lcom/sun/tools/javac/code/Scope$LookupKind;
            invokevirtual com.sun.tools.javac.code.Scope.getSymbols:(Lcom/sun/tools/javac/code/Scope$LookupKind;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Scope top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 5 /* sym */
        start local 5 // com.sun.tools.javac.code.Symbol sym
         5: .line 3073
            aload 5 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 17
         6: .line 3074
            aload 5 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            ldc 8796093023234
            land
            ldc 1024
            lcmp
            ifne 17
         7: .line 3075
            aload 5 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 7 /* absmeth */
        start local 7 // com.sun.tools.javac.code.Symbol$MethodSymbol absmeth
         8: .line 3076
            aload 7 /* absmeth */
            aload 1 /* impl */
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.implementation:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;Z)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            astore 8 /* implmeth */
        start local 8 // com.sun.tools.javac.code.Symbol$MethodSymbol implmeth
         9: .line 3077
            aload 8 /* implmeth */
            ifnull 10
            aload 8 /* implmeth */
            aload 7 /* absmeth */
            if_acmpne 14
        10: .line 3079
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Scope com.sun.tools.javac.code.Symbol java.util.Iterator com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Symbol$MethodSymbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.allowDefaultMethods:Z
            ifeq 14
        11: .line 3080
            aload 0 /* this */
            aload 1 /* impl */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 7 /* absmeth */
            invokevirtual com.sun.tools.javac.code.Types.interfaceCandidates:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 9 /* prov */
        start local 9 // com.sun.tools.javac.code.Symbol$MethodSymbol prov
        12: .line 3081
            aload 9 /* prov */
            ifnull 14
            aload 9 /* prov */
            aload 7 /* absmeth */
            aload 1 /* impl */
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.overrides:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;Z)Z
            ifeq 14
        13: .line 3082
            aload 9 /* prov */
            astore 8 /* implmeth */
        end local 9 // com.sun.tools.javac.code.Symbol$MethodSymbol prov
        14: .line 3086
      StackMap locals:
      StackMap stack:
            aload 8 /* implmeth */
            ifnull 15
            aload 8 /* implmeth */
            aload 7 /* absmeth */
            if_acmpne 17
        15: .line 3087
      StackMap locals:
      StackMap stack:
            aload 7 /* absmeth */
            astore 3 /* undef */
        16: .line 3088
            goto 18
        end local 8 // com.sun.tools.javac.code.Symbol$MethodSymbol implmeth
        end local 7 // com.sun.tools.javac.code.Symbol$MethodSymbol absmeth
        end local 5 // com.sun.tools.javac.code.Symbol sym
        17: .line 3072
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Scope top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        18: .line 3092
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Scope
      StackMap stack:
            aload 3 /* undef */
            ifnonnull 22
        19: .line 3093
            aload 0 /* this */
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* st */
        start local 5 // com.sun.tools.javac.code.Type st
        20: .line 3094
            aload 5 /* st */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 22
        21: .line 3095
            aload 0 /* this */
            aload 1 /* impl */
            aload 5 /* st */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            invokevirtual com.sun.tools.javac.code.Types.firstUnimplementedAbstractImpl:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            astore 3 /* undef */
        end local 5 // com.sun.tools.javac.code.Type st
        22: .line 3097
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 5 /* l */
        start local 5 // com.sun.tools.javac.util.List l
        23: .line 3098
            goto 26
        24: .line 3100
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* impl */
            aload 5 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            invokevirtual com.sun.tools.javac.code.Types.firstUnimplementedAbstractImpl:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            astore 3 /* undef */
        25: .line 3099
            aload 5 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 5 /* l */
        26: .line 3098
      StackMap locals:
      StackMap stack:
            aload 3 /* undef */
            ifnonnull 27
            aload 5 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 24
        end local 5 // com.sun.tools.javac.util.List l
        end local 4 // com.sun.tools.javac.code.Scope s
        27: .line 3103
      StackMap locals:
      StackMap stack:
            aload 3 /* undef */
            areturn
        end local 3 // com.sun.tools.javac.code.Symbol$MethodSymbol undef
        end local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol impl
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Lcom/sun/tools/javac/code/Types;
            0   28     1      impl  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0   28     2         c  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            1   28     3     undef  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            3   27     4         s  Lcom/sun/tools/javac/code/Scope;
            5   17     5       sym  Lcom/sun/tools/javac/code/Symbol;
            8   17     7   absmeth  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            9   17     8  implmeth  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
           12   14     9      prov  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
           20   22     5        st  Lcom/sun/tools/javac/code/Type;
           23   27     5         l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      impl  
      c     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$MethodSymbol> interfaceCandidates(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol$MethodSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type site
        start local 2 // com.sun.tools.javac.code.Symbol$MethodSymbol ms
         0: .line 3147
            new com.sun.tools.javac.code.Types$CandidatesCache$Entry
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.candidatesCache:Lcom/sun/tools/javac/code/Types$CandidatesCache;
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            aload 1 /* site */
            aload 2 /* ms */
            invokespecial com.sun.tools.javac.code.Types$CandidatesCache$Entry.<init>:(Lcom/sun/tools/javac/code/Types$CandidatesCache;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)V
            astore 3 /* e */
        start local 3 // com.sun.tools.javac.code.Types$CandidatesCache$Entry e
         1: .line 3148
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.candidatesCache:Lcom/sun/tools/javac/code/Types$CandidatesCache;
            aload 3 /* e */
            invokevirtual com.sun.tools.javac.code.Types$CandidatesCache.get:(Lcom/sun/tools/javac/code/Types$CandidatesCache$Entry;)Lcom/sun/tools/javac/util/List;
            astore 4 /* candidates */
        start local 4 // com.sun.tools.javac.util.List candidates
         2: .line 3149
            aload 4 /* candidates */
            ifnonnull 14
         3: .line 3150
            new com.sun.tools.javac.code.Types$MethodFilter
            dup
            aload 0 /* this */
            aload 2 /* ms */
            aload 1 /* site */
            invokespecial com.sun.tools.javac.code.Types$MethodFilter.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Type;)V
            astore 5 /* filter */
        start local 5 // com.sun.tools.javac.util.Filter filter
         4: .line 3151
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 6 /* candidates2 */
        start local 6 // com.sun.tools.javac.util.List candidates2
         5: .line 3152
            aload 0 /* this */
            aload 1 /* site */
            iconst_0
            invokevirtual com.sun.tools.javac.code.Types.membersClosure:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Scope$CompoundScope;
            aload 5 /* filter */
            invokevirtual com.sun.tools.javac.code.Scope$CompoundScope.getSymbols:(Lcom/sun/tools/javac/util/Filter;)Ljava/lang/Iterable;
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 8
            goto 11
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Types$CandidatesCache$Entry com.sun.tools.javac.util.List com.sun.tools.javac.util.Filter com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         6: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 7 /* s */
        start local 7 // com.sun.tools.javac.code.Symbol s
         7: .line 3153
            aload 1 /* site */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.isInterface:()Z
            ifne 9
            aload 7 /* s */
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Symbol.isInterface:()Z
            ifne 9
         8: .line 3154
            aload 7 /* s */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         9: .line 3155
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Types$CandidatesCache$Entry com.sun.tools.javac.util.List com.sun.tools.javac.util.Filter com.sun.tools.javac.util.List com.sun.tools.javac.code.Symbol java.util.Iterator
      StackMap stack:
            aload 6 /* candidates2 */
            aload 7 /* s */
            invokevirtual com.sun.tools.javac.util.List.contains:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 3156
            aload 6 /* candidates2 */
            aload 7 /* s */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 6 /* candidates2 */
        end local 7 // com.sun.tools.javac.code.Symbol s
        11: .line 3152
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Types$CandidatesCache$Entry com.sun.tools.javac.util.List com.sun.tools.javac.util.Filter com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        12: .line 3159
            aload 0 /* this */
            aload 6 /* candidates2 */
            invokevirtual com.sun.tools.javac.code.Types.prune:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 4 /* candidates */
        13: .line 3160
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.candidatesCache:Lcom/sun/tools/javac/code/Types$CandidatesCache;
            aload 3 /* e */
            aload 4 /* candidates */
            invokevirtual com.sun.tools.javac.code.Types$CandidatesCache.put:(Lcom/sun/tools/javac/code/Types$CandidatesCache$Entry;Lcom/sun/tools/javac/util/List;)V
        end local 6 // com.sun.tools.javac.util.List candidates2
        end local 5 // com.sun.tools.javac.util.Filter filter
        14: .line 3162
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Types$CandidatesCache$Entry com.sun.tools.javac.util.List
      StackMap stack:
            aload 4 /* candidates */
            areturn
        end local 4 // com.sun.tools.javac.util.List candidates
        end local 3 // com.sun.tools.javac.code.Types$CandidatesCache$Entry e
        end local 2 // com.sun.tools.javac.code.Symbol$MethodSymbol ms
        end local 1 // com.sun.tools.javac.code.Type site
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   15     0         this  Lcom/sun/tools/javac/code/Types;
            0   15     1         site  Lcom/sun/tools/javac/code/Type;
            0   15     2           ms  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            1   15     3            e  Lcom/sun/tools/javac/code/Types$CandidatesCache$Entry;
            2   15     4   candidates  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
            4   14     5       filter  Lcom/sun/tools/javac/util/Filter<Lcom/sun/tools/javac/code/Symbol;>;
            5   14     6  candidates2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
            7   11     7            s  Lcom/sun/tools/javac/code/Symbol;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$MethodSymbol;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
    MethodParameters:
      Name  Flags
      site  
      ms    

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$MethodSymbol> prune(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$MethodSymbol>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List methods
         0: .line 3166
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* methodsMin */
        start local 2 // com.sun.tools.javac.util.ListBuffer methodsMin
         1: .line 3167
            aload 1 /* methods */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 14
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List 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.Symbol$MethodSymbol
            astore 3 /* m1 */
        start local 3 // com.sun.tools.javac.code.Symbol$MethodSymbol m1
         3: .line 3168
            iconst_1
            istore 5 /* isMin_m1 */
        start local 5 // boolean isMin_m1
         4: .line 3169
            aload 1 /* methods */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol$MethodSymbol java.util.Iterator int top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 6 /* m2 */
        start local 6 // com.sun.tools.javac.code.Symbol$MethodSymbol m2
         6: .line 3170
            aload 3 /* m1 */
            aload 6 /* m2 */
            if_acmpne 7
            goto 11
         7: .line 3171
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol$MethodSymbol java.util.Iterator int com.sun.tools.javac.code.Symbol$MethodSymbol java.util.Iterator
      StackMap stack:
            aload 6 /* m2 */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            aload 3 /* m1 */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            if_acmpeq 11
         8: .line 3172
            aload 0 /* this */
            aload 6 /* m2 */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            aload 3 /* m1 */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            ifnull 11
         9: .line 3173
            iconst_0
            istore 5 /* isMin_m1 */
        10: .line 3174
            goto 12
        end local 6 // com.sun.tools.javac.code.Symbol$MethodSymbol m2
        11: .line 3169
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol$MethodSymbol java.util.Iterator int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 3177
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Symbol$MethodSymbol java.util.Iterator int
      StackMap stack:
            iload 5 /* isMin_m1 */
            ifeq 14
        13: .line 3178
            aload 2 /* methodsMin */
            aload 3 /* m1 */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 5 // boolean isMin_m1
        end local 3 // com.sun.tools.javac.code.Symbol$MethodSymbol m1
        14: .line 3167
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        15: .line 3180
            aload 2 /* methodsMin */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer methodsMin
        end local 1 // com.sun.tools.javac.util.List methods
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lcom/sun/tools/javac/code/Types;
            0   16     1     methods  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
            1   16     2  methodsMin  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
            3   14     3          m1  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            4   14     5    isMin_m1  Z
            6   11     6          m2  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
    Signature: (Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
    MethodParameters:
         Name  Flags
      methods  

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

  public boolean hasSameArgs(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Z)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // boolean strict
         0: .line 3217
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            iload 3 /* strict */
            ifeq 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.hasSameArgs_strict:Lcom/sun/tools/javac/code/Types$TypeRelation;
            goto 2
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type
         1: aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.hasSameArgs_nonstrict:Lcom/sun/tools/javac/code/Types$TypeRelation;
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.code.Types$TypeRelation
         2: invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types$TypeRelation;)Z
            ireturn
        end local 3 // boolean strict
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lcom/sun/tools/javac/code/Types;
            0    3     1       t  Lcom/sun/tools/javac/code/Type;
            0    3     2       s  Lcom/sun/tools/javac/code/Type;
            0    3     3  strict  Z
    MethodParameters:
        Name  Flags
      t       
      s       
      strict  

  private boolean hasSameArgs(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Types$TypeRelation);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types$TypeRelation;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.code.Types$TypeRelation hasSameArgs
         0: .line 3221
            aload 3 /* hasSameArgs */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types$TypeRelation.visit:(Lcom/sun/tools/javac/code/Type;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // com.sun.tools.javac.code.Types$TypeRelation hasSameArgs
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/sun/tools/javac/code/Types;
            0    1     1            t  Lcom/sun/tools/javac/code/Type;
            0    1     2            s  Lcom/sun/tools/javac/code/Type;
            0    1     3  hasSameArgs  Lcom/sun/tools/javac/code/Types$TypeRelation;
    MethodParameters:
             Name  Flags
      t            
      s            
      hasSameArgs  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> subst(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, 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;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
        start local 2 // com.sun.tools.javac.util.List from
        start local 3 // com.sun.tools.javac.util.List to
         0: .line 3267
            aload 1 /* ts */
            new com.sun.tools.javac.code.Types$Subst
            dup
            aload 0 /* this */
            aload 2 /* from */
            aload 3 /* to */
            invokespecial com.sun.tools.javac.code.Types$Subst.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
            invokevirtual com.sun.tools.javac.util.List.map:(Ljava/util/function/Function;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // com.sun.tools.javac.util.List to
        end local 2 // com.sun.tools.javac.util.List from
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    1     2  from  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    1     3    to  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;>;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    
      from  
      to    

  public com.sun.tools.javac.code.Type subst(com.sun.tools.javac.code.Type, 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/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.util.List from
        start local 3 // com.sun.tools.javac.util.List to
         0: .line 3277
            aload 1 /* t */
            new com.sun.tools.javac.code.Types$Subst
            dup
            aload 0 /* this */
            aload 2 /* from */
            aload 3 /* to */
            invokespecial com.sun.tools.javac.code.Types$Subst.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
            invokevirtual com.sun.tools.javac.code.Type.map:(Lcom/sun/tools/javac/code/Types$TypeMapping;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 3 // com.sun.tools.javac.util.List to
        end local 2 // com.sun.tools.javac.util.List from
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
            0    1     2  from  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    1     3    to  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      from  
      to    

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> substBounds(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, 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;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List tvars
        start local 2 // com.sun.tools.javac.util.List from
        start local 3 // com.sun.tools.javac.util.List to
         0: .line 3368
            aload 1 /* tvars */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         1: .line 3369
            aload 1 /* tvars */
            areturn
         2: .line 3370
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 4 /* newBoundsBuf */
        start local 4 // com.sun.tools.javac.util.ListBuffer newBoundsBuf
         3: .line 3371
            iconst_0
            istore 5 /* changed */
        start local 5 // boolean changed
         4: .line 3373
            aload 1 /* tvars */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 6 /* t */
        start local 6 // com.sun.tools.javac.code.Type t
         6: .line 3374
            aload 6 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 8 /* tv */
        start local 8 // com.sun.tools.javac.code.Type$TypeVar tv
         7: .line 3375
            aload 0 /* this */
            aload 8 /* tv */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            aload 2 /* from */
            aload 3 /* to */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            astore 9 /* bound */
        start local 9 // com.sun.tools.javac.code.Type bound
         8: .line 3376
            aload 9 /* bound */
            aload 8 /* tv */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            if_acmpeq 10
         9: .line 3377
            iconst_1
            istore 5 /* changed */
        10: .line 3378
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type$TypeVar com.sun.tools.javac.code.Type
      StackMap stack:
            aload 4 /* newBoundsBuf */
            aload 9 /* bound */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 9 // com.sun.tools.javac.code.Type bound
        end local 8 // com.sun.tools.javac.code.Type$TypeVar tv
        end local 6 // com.sun.tools.javac.code.Type t
        11: .line 3373
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        12: .line 3380
            iload 5 /* changed */
            ifne 14
        13: .line 3381
            aload 1 /* tvars */
            areturn
        14: .line 3382
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int
      StackMap stack:
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 6 /* newTvars */
        start local 6 // com.sun.tools.javac.util.ListBuffer newTvars
        15: .line 3384
            aload 1 /* tvars */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 20
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
        16: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* t */
        start local 7 // com.sun.tools.javac.code.Type t
        17: .line 3385
            aload 6 /* newTvars */
            new com.sun.tools.javac.code.Type$TypeVar
            dup
            aload 7 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aconst_null
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
        18: .line 3386
            aload 7 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getMetadata:()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
        19: .line 3385
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 7 // com.sun.tools.javac.code.Type t
        20: .line 3384
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        21: .line 3390
            aload 4 /* newBoundsBuf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            astore 7 /* newBounds */
        start local 7 // com.sun.tools.javac.util.List newBounds
        22: .line 3391
            aload 1 /* tvars */
            astore 2 /* from */
        23: .line 3392
            aload 6 /* newTvars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            astore 3 /* to */
        24: .line 3393
            goto 27
        25: .line 3394
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List
      StackMap stack:
            aload 7 /* newBounds */
            aload 0 /* this */
            aload 7 /* newBounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* from */
            aload 3 /* to */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
        26: .line 3393
            aload 7 /* newBounds */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 7 /* newBounds */
      StackMap locals:
      StackMap stack:
        27: aload 7 /* newBounds */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 25
        28: .line 3396
            aload 4 /* newBoundsBuf */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            astore 7 /* newBounds */
        29: .line 3398
            aload 6 /* newTvars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 34
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
        30: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 8 /* t */
        start local 8 // com.sun.tools.javac.code.Type t
        31: .line 3399
            aload 8 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 10 /* tv */
        start local 10 // com.sun.tools.javac.code.Type$TypeVar tv
        32: .line 3400
            aload 10 /* tv */
            aload 7 /* newBounds */
            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$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
        33: .line 3401
            aload 7 /* newBounds */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 7 /* newBounds */
        end local 10 // com.sun.tools.javac.code.Type$TypeVar tv
        end local 8 // com.sun.tools.javac.code.Type t
        34: .line 3398
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 30
        35: .line 3403
            aload 6 /* newTvars */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 7 // com.sun.tools.javac.util.List newBounds
        end local 6 // com.sun.tools.javac.util.ListBuffer newTvars
        end local 5 // boolean changed
        end local 4 // com.sun.tools.javac.util.ListBuffer newBoundsBuf
        end local 3 // com.sun.tools.javac.util.List to
        end local 2 // com.sun.tools.javac.util.List from
        end local 1 // com.sun.tools.javac.util.List tvars
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   36     0          this  Lcom/sun/tools/javac/code/Types;
            0   36     1         tvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   36     2          from  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   36     3            to  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   36     4  newBoundsBuf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            4   36     5       changed  Z
            6   11     6             t  Lcom/sun/tools/javac/code/Type;
            7   11     8            tv  Lcom/sun/tools/javac/code/Type$TypeVar;
            8   11     9         bound  Lcom/sun/tools/javac/code/Type;
           15   36     6      newTvars  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
           17   20     7             t  Lcom/sun/tools/javac/code/Type;
           22   36     7     newBounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           31   34     8             t  Lcom/sun/tools/javac/code/Type;
           32   34    10            tv  Lcom/sun/tools/javac/code/Type$TypeVar;
    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;>;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
      tvars  
      from   
      to     

  public com.sun.tools.javac.code.Type$TypeVar substBound(com.sun.tools.javac.code.Type$TypeVar, 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/code/Type$TypeVar;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type$TypeVar;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
        start local 2 // com.sun.tools.javac.util.List from
        start local 3 // com.sun.tools.javac.util.List to
         0: .line 3407
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            aload 2 /* from */
            aload 3 /* to */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            astore 4 /* bound1 */
        start local 4 // com.sun.tools.javac.code.Type bound1
         1: .line 3408
            aload 4 /* bound1 */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            if_acmpne 3
         2: .line 3409
            aload 1 /* t */
            areturn
         3: .line 3412
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            new com.sun.tools.javac.code.Type$TypeVar
            dup
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$TypeVar.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aconst_null
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
         4: .line 3413
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getMetadata:()Lcom/sun/tools/javac/code/TypeMetadata;
         5: .line 3412
            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
            astore 5 /* tv */
        start local 5 // com.sun.tools.javac.code.Type$TypeVar tv
         6: .line 3416
            aload 5 /* tv */
            aload 0 /* this */
            aload 4 /* bound1 */
            aload 1 /* t */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            aload 5 /* tv */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
         7: .line 3417
            aload 5 /* tv */
            areturn
        end local 5 // com.sun.tools.javac.code.Type$TypeVar tv
        end local 4 // com.sun.tools.javac.code.Type bound1
        end local 3 // com.sun.tools.javac.util.List to
        end local 2 // com.sun.tools.javac.util.List from
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/tools/javac/code/Types;
            0    8     1       t  Lcom/sun/tools/javac/code/Type$TypeVar;
            0    8     2    from  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    8     3      to  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    8     4  bound1  Lcom/sun/tools/javac/code/Type;
            6    8     5      tv  Lcom/sun/tools/javac/code/Type$TypeVar;
    Signature: (Lcom/sun/tools/javac/code/Type$TypeVar;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
      Name  Flags
      t     
      from  
      to    

  public boolean hasSameBounds(com.sun.tools.javac.code.Type$ForAll, com.sun.tools.javac.code.Type$ForAll);
    descriptor: (Lcom/sun/tools/javac/code/Type$ForAll;Lcom/sun/tools/javac/code/Type$ForAll;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$ForAll t
        start local 2 // com.sun.tools.javac.code.Type$ForAll s
         0: .line 3427
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ForAll.tvars:Lcom/sun/tools/javac/util/List;
            astore 3 /* l1 */
        start local 3 // com.sun.tools.javac.util.List l1
         1: .line 3428
            aload 2 /* s */
            getfield com.sun.tools.javac.code.Type$ForAll.tvars:Lcom/sun/tools/javac/util/List;
            astore 4 /* l2 */
        start local 4 // com.sun.tools.javac.util.List l2
         2: .line 3429
            goto 5
         3: .line 3434
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 3 /* l1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 3 /* l1 */
         4: .line 3435
            aload 4 /* l2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* l2 */
         5: .line 3429
      StackMap locals:
      StackMap stack:
            aload 3 /* l1 */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 13
            aload 4 /* l2 */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 13
         6: .line 3430
            aload 0 /* this */
            aload 3 /* l1 */
            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.getUpperBound:()Lcom/sun/tools/javac/code/Type;
         7: .line 3431
            aload 0 /* this */
            aload 4 /* l2 */
            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.getUpperBound:()Lcom/sun/tools/javac/code/Type;
         8: .line 3432
            aload 2 /* s */
            getfield com.sun.tools.javac.code.Type$ForAll.tvars:Lcom/sun/tools/javac/util/List;
         9: .line 3433
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ForAll.tvars:Lcom/sun/tools/javac/util/List;
        10: .line 3431
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
        11: .line 3430
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
        12: .line 3433
            ifne 3
        13: .line 3437
      StackMap locals:
      StackMap stack:
            aload 3 /* l1 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 14
            aload 4 /* l2 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 14
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        14: iconst_0
            ireturn
        end local 4 // com.sun.tools.javac.util.List l2
        end local 3 // com.sun.tools.javac.util.List l1
        end local 2 // com.sun.tools.javac.code.Type$ForAll s
        end local 1 // com.sun.tools.javac.code.Type$ForAll t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/sun/tools/javac/code/Types;
            0   15     1     t  Lcom/sun/tools/javac/code/Type$ForAll;
            0   15     2     s  Lcom/sun/tools/javac/code/Type$ForAll;
            1   15     3    l1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2   15     4    l2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     
      s     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> newInstances(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: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List tvars
         0: .line 3446
            aload 1 /* tvars */
            getstatic com.sun.tools.javac.code.Types.newInstanceFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
            invokevirtual com.sun.tools.javac.util.List.map:(Ljava/util/function/Function;)Lcom/sun/tools/javac/util/List;
            astore 2 /* tvars1 */
        start local 2 // com.sun.tools.javac.util.List tvars1
         1: .line 3447
            aload 2 /* tvars1 */
            astore 3 /* l */
        start local 3 // com.sun.tools.javac.util.List l
         2: goto 6
         3: .line 3448
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 3 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 4 /* tv */
        start local 4 // com.sun.tools.javac.code.Type$TypeVar tv
         4: .line 3449
            aload 4 /* tv */
            aload 0 /* this */
            aload 4 /* tv */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            aload 1 /* tvars */
            aload 2 /* tvars1 */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
        end local 4 // com.sun.tools.javac.code.Type$TypeVar tv
         5: .line 3447
            aload 3 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 3 /* l */
      StackMap locals:
      StackMap stack:
         6: aload 3 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 3
        end local 3 // com.sun.tools.javac.util.List l
         7: .line 3451
            aload 2 /* tvars1 */
            areturn
        end local 2 // com.sun.tools.javac.util.List tvars1
        end local 1 // com.sun.tools.javac.util.List tvars
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/tools/javac/code/Types;
            0    8     1   tvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    8     2  tvars1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    7     3       l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            4    5     4      tv  Lcom/sun/tools/javac/code/Type$TypeVar;
    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
      tvars  

  public com.sun.tools.javac.code.Type createMethodTypeWithParameters(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)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.Types this
        start local 1 // com.sun.tools.javac.code.Type original
        start local 2 // com.sun.tools.javac.util.List newParams
         0: .line 3462
            aload 1 /* original */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.methodWithParameters:Lcom/sun/tools/javac/code/Types$MapVisitor;
            aload 2 /* newParams */
            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 2 // com.sun.tools.javac.util.List newParams
        end local 1 // com.sun.tools.javac.code.Type original
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/sun/tools/javac/code/Types;
            0    1     1   original  Lcom/sun/tools/javac/code/Type;
            0    1     2  newParams  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
           Name  Flags
      original   
      newParams  

  public com.sun.tools.javac.code.Type createMethodTypeWithThrown(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)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.Types this
        start local 1 // com.sun.tools.javac.code.Type original
        start local 2 // com.sun.tools.javac.util.List newThrown
         0: .line 3478
            aload 1 /* original */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.methodWithThrown:Lcom/sun/tools/javac/code/Types$MapVisitor;
            aload 2 /* newThrown */
            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 2 // com.sun.tools.javac.util.List newThrown
        end local 1 // com.sun.tools.javac.code.Type original
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/sun/tools/javac/code/Types;
            0    1     1   original  Lcom/sun/tools/javac/code/Type;
            0    1     2  newThrown  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
           Name  Flags
      original   
      newThrown  

  public com.sun.tools.javac.code.Type createMethodTypeWithReturn(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)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.Types this
        start local 1 // com.sun.tools.javac.code.Type original
        start local 2 // com.sun.tools.javac.code.Type newReturn
         0: .line 3494
            aload 1 /* original */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.methodWithReturn:Lcom/sun/tools/javac/code/Types$MapVisitor;
            aload 2 /* newReturn */
            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 2 // com.sun.tools.javac.code.Type newReturn
        end local 1 // com.sun.tools.javac.code.Type original
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/sun/tools/javac/code/Types;
            0    1     1   original  Lcom/sun/tools/javac/code/Type;
            0    1     2  newReturn  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
           Name  Flags
      original   
      newReturn  

  public com.sun.tools.javac.code.Type createErrorType(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=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type originalType
         0: .line 3521
            new com.sun.tools.javac.code.Type$ErrorType
            dup
            aload 1 /* originalType */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.errSymbol:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokespecial com.sun.tools.javac.code.Type$ErrorType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            areturn
        end local 1 // com.sun.tools.javac.code.Type originalType
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/tools/javac/code/Types;
            0    1     1  originalType  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
              Name  Flags
      originalType  

  public com.sun.tools.javac.code.Type createErrorType(com.sun.tools.javac.code.Symbol$ClassSymbol, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        start local 2 // com.sun.tools.javac.code.Type originalType
         0: .line 3525
            new com.sun.tools.javac.code.Type$ErrorType
            dup
            aload 1 /* c */
            aload 2 /* originalType */
            invokespecial com.sun.tools.javac.code.Type$ErrorType.<init>:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Type;)V
            areturn
        end local 2 // com.sun.tools.javac.code.Type originalType
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/tools/javac/code/Types;
            0    1     1             c  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    1     2  originalType  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
              Name  Flags
      c             
      originalType  

  public com.sun.tools.javac.code.Type createErrorType(com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Symbol$TypeSymbol, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.Name name
        start local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol container
        start local 3 // com.sun.tools.javac.code.Type originalType
         0: .line 3529
            new com.sun.tools.javac.code.Type$ErrorType
            dup
            aload 1 /* name */
            aload 2 /* container */
            aload 3 /* originalType */
            invokespecial com.sun.tools.javac.code.Type$ErrorType.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type;)V
            areturn
        end local 3 // com.sun.tools.javac.code.Type originalType
        end local 2 // com.sun.tools.javac.code.Symbol$TypeSymbol container
        end local 1 // com.sun.tools.javac.util.Name name
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/tools/javac/code/Types;
            0    1     1          name  Lcom/sun/tools/javac/util/Name;
            0    1     2     container  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            0    1     3  originalType  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
              Name  Flags
      name          
      container     
      originalType  

  public int rank(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 3540
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            lookupswitch { // 4
                   10: 1
                   15: 15
                   20: 25
                   21: 25
              default: 26
          }
         1: .line 3542
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 2 /* cls */
        start local 2 // com.sun.tools.javac.code.Type$ClassType cls
         2: .line 3543
            aload 2 /* cls */
            getfield com.sun.tools.javac.code.Type$ClassType.rank_field:I
            ifge 14
         3: .line 3544
            aload 2 /* cls */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.getQualifiedName:()Lcom/sun/tools/javac/util/Name;
            astore 3 /* fullname */
        start local 3 // com.sun.tools.javac.util.Name fullname
         4: .line 3545
            aload 3 /* fullname */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.java_lang_Object:Lcom/sun/tools/javac/util/Name;
            if_acmpne 6
         5: .line 3546
            aload 2 /* cls */
            iconst_0
            putfield com.sun.tools.javac.code.Type$ClassType.rank_field:I
            goto 14
         6: .line 3548
      StackMap locals: com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.Name
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            istore 4 /* r */
        start local 4 // int r
         7: .line 3549
            aload 0 /* this */
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 5 /* l */
        start local 5 // com.sun.tools.javac.util.List l
         8: .line 3550
            goto 12
         9: .line 3552
      StackMap locals: int com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 5 /* 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.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            iload 4 /* r */
            if_icmple 11
        10: .line 3553
            aload 0 /* this */
            aload 5 /* 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.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            istore 4 /* r */
        11: .line 3551
      StackMap locals:
      StackMap stack:
            aload 5 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 5 /* l */
        12: .line 3550
      StackMap locals:
      StackMap stack:
            aload 5 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 9
        end local 5 // com.sun.tools.javac.util.List l
        13: .line 3555
            aload 2 /* cls */
            iload 4 /* r */
            iconst_1
            iadd
            putfield com.sun.tools.javac.code.Type$ClassType.rank_field:I
        end local 4 // int r
        end local 3 // com.sun.tools.javac.util.Name fullname
        14: .line 3558
      StackMap locals:
      StackMap stack:
            aload 2 /* cls */
            getfield com.sun.tools.javac.code.Type$ClassType.rank_field:I
            ireturn
        end local 2 // com.sun.tools.javac.code.Type$ClassType cls
        15: .line 3561
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            astore 2 /* tvar */
        start local 2 // com.sun.tools.javac.code.Type$TypeVar tvar
        16: .line 3562
            aload 2 /* tvar */
            getfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
            ifge 24
        17: .line 3563
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* tvar */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            istore 3 /* r */
        start local 3 // int r
        18: .line 3564
            aload 0 /* this */
            aload 2 /* tvar */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
        start local 4 // com.sun.tools.javac.util.List l
        19: .line 3565
            goto 22
        20: .line 3567
      StackMap locals: com.sun.tools.javac.code.Type$TypeVar int com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 4 /* 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.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            iload 3 /* r */
            if_icmple 21
            aload 0 /* this */
            aload 4 /* 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.Types.rank:(Lcom/sun/tools/javac/code/Type;)I
            istore 3 /* r */
        21: .line 3566
      StackMap locals:
      StackMap stack:
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
        22: .line 3565
      StackMap locals:
      StackMap stack:
            aload 4 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 20
        end local 4 // com.sun.tools.javac.util.List l
        23: .line 3569
            aload 2 /* tvar */
            iload 3 /* r */
            iconst_1
            iadd
            putfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
        end local 3 // int r
        24: .line 3571
      StackMap locals:
      StackMap stack:
            aload 2 /* tvar */
            getfield com.sun.tools.javac.code.Type$TypeVar.rank_field:I
            ireturn
        end local 2 // com.sun.tools.javac.code.Type$TypeVar tvar
        25: .line 3575
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        26: .line 3577
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   27     0      this  Lcom/sun/tools/javac/code/Types;
            0   27     1         t  Lcom/sun/tools/javac/code/Type;
            2   15     2       cls  Lcom/sun/tools/javac/code/Type$ClassType;
            4   14     3  fullname  Lcom/sun/tools/javac/util/Name;
            7   14     4         r  I
            8   13     5         l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           16   25     2      tvar  Lcom/sun/tools/javac/code/Type$TypeVar;
           18   24     3         r  I
           19   23     4         l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public java.lang.String toString(com.sun.tools.javac.code.Type, java.util.Locale);
    descriptor: (Lcom/sun/tools/javac/code/Type;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // java.util.Locale locale
         0: .line 3587
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.messages:Lcom/sun/tools/javac/util/JavacMessages;
            invokestatic com.sun.tools.javac.code.Printer.createStandardPrinter:(Lcom/sun/tools/javac/api/Messages;)Lcom/sun/tools/javac/code/Printer;
            aload 1 /* t */
            aload 2 /* locale */
            invokevirtual com.sun.tools.javac.code.Printer.visit:(Lcom/sun/tools/javac/code/Type;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 2 // java.util.Locale locale
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/code/Types;
            0    1     1       t  Lcom/sun/tools/javac/code/Type;
            0    1     2  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      t       
      locale  

  public java.lang.String toString(com.sun.tools.javac.code.Symbol, java.util.Locale);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol t
        start local 2 // java.util.Locale locale
         0: .line 3595
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.messages:Lcom/sun/tools/javac/util/JavacMessages;
            invokestatic com.sun.tools.javac.code.Printer.createStandardPrinter:(Lcom/sun/tools/javac/api/Messages;)Lcom/sun/tools/javac/code/Printer;
            aload 1 /* t */
            aload 2 /* locale */
            invokevirtual com.sun.tools.javac.code.Printer.visit:(Lcom/sun/tools/javac/code/Symbol;Ljava/util/Locale;)Ljava/lang/String;
            areturn
        end local 2 // java.util.Locale locale
        end local 1 // com.sun.tools.javac.code.Symbol t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/tools/javac/code/Types;
            0    1     1       t  Lcom/sun/tools/javac/code/Symbol;
            0    1     2  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      t       
      locale  

  public java.lang.String toString(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 3607
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 3
         1: .line 3608
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ForAll
            astore 2 /* forAll */
        start local 2 // com.sun.tools.javac.code.Type$ForAll forAll
         2: .line 3609
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            aload 2 /* forAll */
            getfield com.sun.tools.javac.code.Type$ForAll.tvars:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.typaramsString:(Lcom/sun/tools/javac/util/List;)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* forAll */
            getfield com.sun.tools.javac.code.Type$ForAll.qtype:Lcom/sun/tools/javac/code/Type;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // com.sun.tools.javac.code.Type$ForAll forAll
         3: .line 3611
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/sun/tools/javac/code/Types;
            0    4     1       t  Lcom/sun/tools/javac/code/Type;
            2    3     2  forAll  Lcom/sun/tools/javac/code/Type$ForAll;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      t     

  private java.lang.String typaramsString(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List tvars
         0: .line 3615
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* s */
        start local 2 // java.lang.StringBuilder s
         1: .line 3616
            aload 2 /* s */
            bipush 60
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         2: .line 3617
            iconst_1
            istore 3 /* first */
        start local 3 // boolean first
         3: .line 3618
            aload 1 /* tvars */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 8
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
         4: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* t */
        start local 4 // com.sun.tools.javac.code.Type t
         5: .line 3619
            iload 3 /* first */
            ifne 6
            aload 2 /* s */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 3620
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List java.lang.StringBuilder int com.sun.tools.javac.code.Type java.util.Iterator
      StackMap stack:
            iconst_0
            istore 3 /* first */
         7: .line 3621
            aload 0 /* this */
            aload 4 /* t */
            checkcast com.sun.tools.javac.code.Type$TypeVar
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.appendTyparamString:(Lcom/sun/tools/javac/code/Type$TypeVar;Ljava/lang/StringBuilder;)V
        end local 4 // com.sun.tools.javac.code.Type t
         8: .line 3618
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List java.lang.StringBuilder int top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 3623
            aload 2 /* s */
            bipush 62
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 3624
            aload 2 /* s */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // boolean first
        end local 2 // java.lang.StringBuilder s
        end local 1 // com.sun.tools.javac.util.List tvars
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/tools/javac/code/Types;
            0   11     1  tvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1   11     2      s  Ljava/lang/StringBuilder;
            3   11     3  first  Z
            5    8     4      t  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
      tvars  

  private void appendTyparamString(com.sun.tools.javac.code.Type$TypeVar, java.lang.StringBuilder);
    descriptor: (Lcom/sun/tools/javac/code/Type$TypeVar;Ljava/lang/StringBuilder;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type$TypeVar t
        start local 2 // java.lang.StringBuilder buf
         0: .line 3627
            aload 2 /* buf */
            aload 1 /* t */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         1: .line 3628
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            ifnull 3
         2: .line 3629
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.getQualifiedName:()Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.java_lang_Object:Lcom/sun/tools/javac/util/Name;
            if_acmpne 4
         3: .line 3630
      StackMap locals:
      StackMap stack:
            return
         4: .line 3631
      StackMap locals:
      StackMap stack:
            aload 2 /* buf */
            ldc " extends "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 3632
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$TypeVar.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            astore 3 /* bound */
        start local 3 // com.sun.tools.javac.code.Type bound
         6: .line 3633
            aload 3 /* bound */
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifne 9
         7: .line 3634
            aload 2 /* buf */
            aload 3 /* bound */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
         8: .line 3635
            goto 24
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
         9: aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            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
            ifne 17
        10: .line 3636
            aload 2 /* buf */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        11: .line 3637
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 15
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type top java.util.Iterator
      StackMap stack:
        12: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* intf */
        start local 4 // com.sun.tools.javac.code.Type intf
        13: .line 3638
            aload 2 /* buf */
            bipush 38
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 3639
            aload 2 /* buf */
            aload 4 /* intf */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 4 // com.sun.tools.javac.code.Type intf
        15: .line 3637
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        16: .line 3641
            goto 24
        17: .line 3644
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type
      StackMap stack:
            iconst_1
            istore 4 /* first */
        start local 4 // boolean first
        18: .line 3645
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 23
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type int top java.util.Iterator
      StackMap stack:
        19: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* intf */
        start local 5 // com.sun.tools.javac.code.Type intf
        20: .line 3646
            iload 4 /* first */
            ifne 21
            aload 2 /* buf */
            bipush 38
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        21: .line 3647
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type int com.sun.tools.javac.code.Type java.util.Iterator
      StackMap stack:
            iconst_0
            istore 4 /* first */
        22: .line 3648
            aload 2 /* buf */
            aload 5 /* intf */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            pop
        end local 5 // com.sun.tools.javac.code.Type intf
        23: .line 3645
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 19
        end local 4 // boolean first
        24: .line 3651
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type$TypeVar java.lang.StringBuilder com.sun.tools.javac.code.Type
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.code.Type bound
        end local 2 // java.lang.StringBuilder buf
        end local 1 // com.sun.tools.javac.code.Type$TypeVar t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   25     0   this  Lcom/sun/tools/javac/code/Types;
            0   25     1      t  Lcom/sun/tools/javac/code/Type$TypeVar;
            0   25     2    buf  Ljava/lang/StringBuilder;
            6   25     3  bound  Lcom/sun/tools/javac/code/Type;
           13   15     4   intf  Lcom/sun/tools/javac/code/Type;
           18   24     4  first  Z
           20   23     5   intf  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      buf   

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> closure(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 3669
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.closureCache:Ljava/util/Map;
            aload 1 /* t */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.util.List
            astore 2 /* cl */
        start local 2 // com.sun.tools.javac.util.List cl
         1: .line 3670
            aload 2 /* cl */
            ifnonnull 19
         2: .line 3671
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* st */
        start local 3 // com.sun.tools.javac.code.Type st
         3: .line 3672
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifne 12
         4: .line 3673
            aload 3 /* st */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 7
         5: .line 3674
            aload 0 /* this */
            aload 0 /* this */
            aload 3 /* st */
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.insert:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 2 /* cl */
         6: .line 3675
            goto 13
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.code.Type
      StackMap stack:
         7: aload 3 /* st */
            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 10
         8: .line 3676
            aload 0 /* this */
            aload 3 /* st */
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 2 /* cl */
         9: .line 3677
            goto 13
        10: .line 3678
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 2 /* cl */
        11: .line 3680
            goto 13
        12: .line 3681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 2 /* cl */
        13: .line 3683
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
        start local 4 // com.sun.tools.javac.util.List l
        14: goto 17
        15: .line 3684
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 2 /* cl */
            aload 0 /* this */
            aload 4 /* 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.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 2 /* cl */
        16: .line 3683
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
      StackMap locals:
      StackMap stack:
        17: aload 4 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 15
        end local 4 // com.sun.tools.javac.util.List l
        18: .line 3685
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.closureCache:Ljava/util/Map;
            aload 1 /* t */
            aload 2 /* cl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // com.sun.tools.javac.code.Type st
        19: .line 3687
      StackMap locals:
      StackMap stack:
            aload 2 /* cl */
            areturn
        end local 2 // com.sun.tools.javac.util.List cl
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lcom/sun/tools/javac/code/Types;
            0   20     1     t  Lcom/sun/tools/javac/code/Type;
            1   20     2    cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   19     3    st  Lcom/sun/tools/javac/code/Type;
           14   18     4     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public java.util.stream.Collector<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Types$ClosureHolder, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> closureCollector(boolean, java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type>);
    descriptor: (ZLjava/util/function/BiPredicate;)Ljava/util/stream/Collector;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // boolean minClosure
        start local 2 // java.util.function.BiPredicate shouldSkip
         0: .line 3694
            aload 0 /* this */
            iload 1 /* minClosure */
            aload 2 /* shouldSkip */
            invokedynamic get(Lcom/sun/tools/javac/code/Types;ZLjava/util/function/BiPredicate;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/sun/tools/javac/code/Types.lambda$3(ZLjava/util/function/BiPredicate;)Lcom/sun/tools/javac/code/Types$ClosureHolder; (7)
                  ()Lcom/sun/tools/javac/code/Types$ClosureHolder;
         1: .line 3695
            invokedynamic accept()Ljava/util/function/BiConsumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)V
                  com/sun/tools/javac/code/Types$ClosureHolder.add(Lcom/sun/tools/javac/code/Type;)V (5)
                  (Lcom/sun/tools/javac/code/Types$ClosureHolder;Lcom/sun/tools/javac/code/Type;)V
         2: .line 3696
            invokedynamic apply()Ljava/util/function/BinaryOperator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/javac/code/Types$ClosureHolder.merge(Lcom/sun/tools/javac/code/Types$ClosureHolder;)Lcom/sun/tools/javac/code/Types$ClosureHolder; (5)
                  (Lcom/sun/tools/javac/code/Types$ClosureHolder;Lcom/sun/tools/javac/code/Types$ClosureHolder;)Lcom/sun/tools/javac/code/Types$ClosureHolder;
         3: .line 3697
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  com/sun/tools/javac/code/Types$ClosureHolder.closure()Lcom/sun/tools/javac/util/List; (5)
                  (Lcom/sun/tools/javac/code/Types$ClosureHolder;)Lcom/sun/tools/javac/util/List;
            iconst_0
            anewarray java.util.stream.Collector$Characteristics
         4: .line 3694
            invokestatic java.util.stream.Collector.of:(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BinaryOperator;Ljava/util/function/Function;[Ljava/util/stream/Collector$Characteristics;)Ljava/util/stream/Collector;
            areturn
        end local 2 // java.util.function.BiPredicate shouldSkip
        end local 1 // boolean minClosure
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/tools/javac/code/Types;
            0    5     1  minClosure  Z
            0    5     2  shouldSkip  Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;
    Signature: (ZLjava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;)Ljava/util/stream/Collector<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types$ClosureHolder;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;
    MethodParameters:
            Name  Flags
      minClosure  
      shouldSkip  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> insert(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.code.Type, java.util.function.BiPredicate<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;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl
        start local 2 // com.sun.tools.javac.code.Type t
        start local 3 // java.util.function.BiPredicate shouldSkip
         0: .line 3731
            aload 1 /* cl */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         1: .line 3732
            aload 1 /* cl */
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         2: .line 3733
      StackMap locals:
      StackMap stack:
            aload 3 /* shouldSkip */
            aload 2 /* t */
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 4
         3: .line 3734
            aload 1 /* cl */
            areturn
         4: .line 3735
      StackMap locals:
      StackMap stack:
            aload 2 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.precedes:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;)Z
            ifeq 6
         5: .line 3736
            aload 1 /* cl */
            aload 2 /* t */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         6: .line 3739
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* t */
            aload 3 /* shouldSkip */
            invokevirtual com.sun.tools.javac.code.Types.insert:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // java.util.function.BiPredicate shouldSkip
        end local 2 // com.sun.tools.javac.code.Type t
        end local 1 // com.sun.tools.javac.util.List cl
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/sun/tools/javac/code/Types;
            0    7     1          cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    7     2           t  Lcom/sun/tools/javac/code/Type;
            0    7     3  shouldSkip  Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;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;Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
            Name  Flags
      cl          
      t           
      shouldSkip  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> insert(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;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl
        start local 2 // com.sun.tools.javac.code.Type t
         0: .line 3744
            aload 0 /* this */
            aload 1 /* cl */
            aload 2 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.basicClosureSkip:Ljava/util/function/BiPredicate;
            invokevirtual com.sun.tools.javac.code.Types.insert:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.code.Type t
        end local 1 // com.sun.tools.javac.util.List cl
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    1     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/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      cl    
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> union(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl1
        start local 2 // com.sun.tools.javac.util.List cl2
        start local 3 // java.util.function.BiPredicate shouldSkip
         0: .line 3751
            aload 1 /* cl1 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 2
         1: .line 3752
            aload 2 /* cl2 */
            areturn
         2: .line 3753
      StackMap locals:
      StackMap stack:
            aload 2 /* cl2 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 4
         3: .line 3754
            aload 1 /* cl1 */
            areturn
         4: .line 3755
      StackMap locals:
      StackMap stack:
            aload 3 /* shouldSkip */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokeinterface java.util.function.BiPredicate.test:(Ljava/lang/Object;Ljava/lang/Object;)Z
            ifeq 6
         5: .line 3756
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 3 /* shouldSkip */
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         6: .line 3757
      StackMap locals:
      StackMap stack:
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.precedes:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;)Z
            ifeq 8
         7: .line 3758
            aload 0 /* this */
            aload 1 /* cl1 */
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 3 /* shouldSkip */
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
         8: .line 3760
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            aload 3 /* shouldSkip */
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // java.util.function.BiPredicate shouldSkip
        end local 2 // com.sun.tools.javac.util.List cl2
        end local 1 // com.sun.tools.javac.util.List cl1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Lcom/sun/tools/javac/code/Types;
            0    9     1         cl1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    9     2         cl2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    9     3  shouldSkip  Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;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;>;Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
            Name  Flags
      cl1         
      cl2         
      shouldSkip  

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> union(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;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl1
        start local 2 // com.sun.tools.javac.util.List cl2
         0: .line 3765
            aload 0 /* this */
            aload 1 /* cl1 */
            aload 2 /* cl2 */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.basicClosureSkip:Ljava/util/function/BiPredicate;
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Ljava/util/function/BiPredicate;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.List cl2
        end local 1 // com.sun.tools.javac.util.List cl1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1   cl1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0    1     2   cl2  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;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      cl1   
      cl2   

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> intersect(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;)Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl1
        start local 2 // com.sun.tools.javac.util.List cl2
         0: .line 3772
            aload 1 /* cl1 */
            aload 2 /* cl2 */
            if_acmpne 2
         1: .line 3773
            aload 1 /* cl1 */
            areturn
         2: .line 3774
      StackMap locals:
      StackMap stack:
            aload 1 /* cl1 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 3
            aload 2 /* cl2 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 4
         3: .line 3775
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
         4: .line 3776
      StackMap locals:
      StackMap stack:
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.precedes:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;)Z
            ifeq 6
         5: .line 3777
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            areturn
         6: .line 3778
      StackMap locals:
      StackMap stack:
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.precedes:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Types;)Z
            ifeq 8
         7: .line 3779
            aload 0 /* this */
            aload 1 /* cl1 */
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            areturn
         8: .line 3780
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 10
         9: .line 3781
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        10: .line 3782
      StackMap locals:
      StackMap stack:
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 17
        11: .line 3783
            aload 1 /* cl1 */
            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.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 17
            aload 2 /* cl2 */
            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.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 17
        12: .line 3784
            aload 1 /* cl1 */
            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.isParameterized:()Z
            ifeq 15
            aload 2 /* cl2 */
            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.isParameterized:()Z
            ifeq 15
        13: .line 3785
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.merge:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* merge */
        start local 3 // com.sun.tools.javac.code.Type merge
        14: .line 3786
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            aload 3 /* merge */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 3 // com.sun.tools.javac.code.Type merge
        15: .line 3788
      StackMap locals:
      StackMap stack:
            aload 1 /* cl1 */
            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.isRaw:()Z
            ifne 16
            aload 2 /* cl2 */
            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.isRaw:()Z
            ifeq 17
        16: .line 3789
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            areturn
        17: .line 3791
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            aload 2 /* cl2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.List cl2
        end local 1 // com.sun.tools.javac.util.List cl1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0   this  Lcom/sun/tools/javac/code/Types;
            0   18     1    cl1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   18     2    cl2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           14   15     3  merge  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;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      cl1   
      cl2   

  private com.sun.tools.javac.code.Type merge(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=11, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type c1
        start local 2 // com.sun.tools.javac.code.Type c2
         0: .line 3817
            aload 1 /* c1 */
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 3 /* class1 */
        start local 3 // com.sun.tools.javac.code.Type$ClassType class1
         1: .line 3818
            aload 3 /* class1 */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 4 /* act1 */
        start local 4 // com.sun.tools.javac.util.List act1
         2: .line 3819
            aload 2 /* c2 */
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 5 /* class2 */
        start local 5 // com.sun.tools.javac.code.Type$ClassType class2
         3: .line 3820
            aload 5 /* class2 */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 6 /* act2 */
        start local 6 // com.sun.tools.javac.util.List act2
         4: .line 3821
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 7 /* merged */
        start local 7 // com.sun.tools.javac.util.ListBuffer merged
         5: .line 3822
            aload 3 /* class1 */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 8 /* typarams */
        start local 8 // com.sun.tools.javac.util.List typarams
         6: .line 3824
            goto 31
         7: .line 3825
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.List com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 4 /* act1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 6 /* act2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 10
         8: .line 3826
            aload 7 /* merged */
            aload 4 /* act1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
         9: .line 3827
            goto 28
      StackMap locals:
      StackMap stack:
        10: aload 0 /* this */
            aload 6 /* act2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 4 /* act1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 13
        11: .line 3828
            aload 7 /* merged */
            aload 6 /* act2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        12: .line 3829
            goto 28
        13: .line 3830
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Types$TypePair
            dup
            aload 0 /* this */
            aload 1 /* c1 */
            aload 2 /* c2 */
            invokespecial com.sun.tools.javac.code.Types$TypePair.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)V
            astore 9 /* pair */
        start local 9 // com.sun.tools.javac.code.Types$TypePair pair
        14: .line 3832
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.mergeCache:Ljava/util/Set;
            aload 9 /* pair */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            ifeq 23
        15: .line 3833
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 0 /* this */
            iconst_2
            anewarray com.sun.tools.javac.code.Type
            dup
            iconst_0
            aload 0 /* this */
            aload 4 /* act1 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aastore
            dup
            iconst_1
        16: .line 3834
            aload 0 /* this */
            aload 6 /* act2 */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.wildUpperBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aastore
        17: .line 3833
            invokevirtual com.sun.tools.javac.code.Types.lub:([Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
        18: .line 3835
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
        19: .line 3836
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
        20: .line 3833
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            astore 10 /* m */
        start local 10 // com.sun.tools.javac.code.Type m
        21: .line 3837
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.mergeCache:Ljava/util/Set;
            aload 9 /* pair */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
        22: .line 3838
            goto 27
        end local 10 // com.sun.tools.javac.code.Type m
        23: .line 3839
      StackMap locals: com.sun.tools.javac.code.Types$TypePair
      StackMap stack:
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
        24: .line 3840
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
        25: .line 3841
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
        26: .line 3839
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            astore 10 /* m */
        start local 10 // com.sun.tools.javac.code.Type m
        27: .line 3843
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 7 /* merged */
            aload 10 /* m */
            aload 8 /* typarams */
            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.withTypeVar:(Lcom/sun/tools/javac/code/Type;)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 10 // com.sun.tools.javac.code.Type m
        end local 9 // com.sun.tools.javac.code.Types$TypePair pair
        28: .line 3845
      StackMap locals:
      StackMap stack:
            aload 4 /* act1 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* act1 */
        29: .line 3846
            aload 6 /* act2 */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 6 /* act2 */
        30: .line 3847
            aload 8 /* typarams */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 8 /* typarams */
        31: .line 3824
      StackMap locals:
      StackMap stack:
            aload 4 /* act1 */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 32
            aload 6 /* act2 */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 32
            aload 8 /* typarams */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 7
        32: .line 3849
      StackMap locals:
      StackMap stack:
            aload 4 /* act1 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 33
            aload 6 /* act2 */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 33
            aload 8 /* typarams */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 33
            iconst_1
            goto 34
      StackMap locals:
      StackMap stack:
        33: iconst_0
      StackMap locals:
      StackMap stack: int
        34: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
        35: .line 3852
            new com.sun.tools.javac.code.Type$ClassType
            dup
            aload 3 /* class1 */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            aload 7 /* merged */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
        36: .line 3853
            aload 3 /* class1 */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
        37: .line 3852
            invokespecial com.sun.tools.javac.code.Type$ClassType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            areturn
        end local 8 // com.sun.tools.javac.util.List typarams
        end local 7 // com.sun.tools.javac.util.ListBuffer merged
        end local 6 // com.sun.tools.javac.util.List act2
        end local 5 // com.sun.tools.javac.code.Type$ClassType class2
        end local 4 // com.sun.tools.javac.util.List act1
        end local 3 // com.sun.tools.javac.code.Type$ClassType class1
        end local 2 // com.sun.tools.javac.code.Type c2
        end local 1 // com.sun.tools.javac.code.Type c1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0      this  Lcom/sun/tools/javac/code/Types;
            0   38     1        c1  Lcom/sun/tools/javac/code/Type;
            0   38     2        c2  Lcom/sun/tools/javac/code/Type;
            1   38     3    class1  Lcom/sun/tools/javac/code/Type$ClassType;
            2   38     4      act1  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3   38     5    class2  Lcom/sun/tools/javac/code/Type$ClassType;
            4   38     6      act2  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            5   38     7    merged  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            6   38     8  typarams  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           14   28     9      pair  Lcom/sun/tools/javac/code/Types$TypePair;
           21   23    10         m  Lcom/sun/tools/javac/code/Type;
           27   28    10         m  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      c1    
      c2    

  private com.sun.tools.javac.code.Type compoundMin(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl
         0: .line 3861
            aload 1 /* cl */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 1
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            areturn
         1: .line 3862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cl */
            invokevirtual com.sun.tools.javac.code.Types.closureMin:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 2 /* compound */
        start local 2 // com.sun.tools.javac.util.List compound
         2: .line 3863
            aload 2 /* compound */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 4
         3: .line 3864
            aconst_null
            areturn
         4: .line 3865
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 2 /* compound */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 6
         5: .line 3866
            aload 2 /* compound */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
         6: .line 3868
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* compound */
            invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
            areturn
        end local 2 // com.sun.tools.javac.util.List compound
        end local 1 // com.sun.tools.javac.util.List cl
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/tools/javac/code/Types;
            0    7     1        cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    7     2  compound  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;
    MethodParameters:
      Name  Flags
      cl    

  private com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> closureMin(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: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List cl
         0: .line 3876
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* classes */
        start local 2 // com.sun.tools.javac.util.ListBuffer classes
         1: .line 3877
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 3 /* interfaces */
        start local 3 // com.sun.tools.javac.util.ListBuffer interfaces
         2: .line 3878
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 4 /* toSkip */
        start local 4 // java.util.Set toSkip
         3: .line 3879
            goto 25
         4: .line 3880
      StackMap locals: com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer java.util.Set
      StackMap stack:
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* current */
        start local 5 // com.sun.tools.javac.code.Type current
         5: .line 3881
            aload 4 /* toSkip */
            aload 5 /* current */
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 6
            iconst_0
            goto 7
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 6 /* keep */
        start local 6 // boolean keep
         8: .line 3882
            iload 6 /* keep */
            ifeq 15
            aload 5 /* current */
            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 15
         9: .line 3884
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 14
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer java.util.Set com.sun.tools.javac.code.Type int top java.util.Iterator
      StackMap stack:
        10: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* t */
        start local 7 // com.sun.tools.javac.code.Type t
        11: .line 3885
            aload 0 /* this */
            aload 7 /* t */
            aload 5 /* current */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeNoCapture:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 14
        12: .line 3886
            iconst_0
            istore 6 /* keep */
        13: .line 3887
            goto 15
        end local 7 // com.sun.tools.javac.code.Type t
        14: .line 3884
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        15: .line 3891
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer java.util.Set com.sun.tools.javac.code.Type int
      StackMap stack:
            iload 6 /* keep */
            ifeq 24
        16: .line 3892
            aload 5 /* current */
            invokevirtual com.sun.tools.javac.code.Type.isInterface:()Z
            ifeq 18
        17: .line 3893
            aload 3 /* interfaces */
            aload 5 /* current */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
            goto 19
        18: .line 3895
      StackMap locals:
      StackMap stack:
            aload 2 /* classes */
            aload 5 /* current */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        19: .line 3896
      StackMap locals:
      StackMap stack:
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 23
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer java.util.Set com.sun.tools.javac.code.Type int top java.util.Iterator
      StackMap stack:
        20: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* t */
        start local 7 // com.sun.tools.javac.code.Type t
        21: .line 3898
            aload 0 /* this */
            aload 5 /* current */
            aload 7 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeNoCapture:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 23
        22: .line 3899
            aload 4 /* toSkip */
            aload 7 /* t */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.sun.tools.javac.code.Type t
        23: .line 3896
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        24: .line 3902
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer java.util.Set com.sun.tools.javac.code.Type int
      StackMap stack:
            aload 1 /* cl */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 1 /* cl */
        end local 6 // boolean keep
        end local 5 // com.sun.tools.javac.code.Type current
        25: .line 3879
      StackMap locals:
      StackMap stack:
            aload 1 /* cl */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 4
        26: .line 3904
            aload 2 /* classes */
            aload 3 /* interfaces */
            invokevirtual com.sun.tools.javac.util.ListBuffer.appendList:(Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/util/ListBuffer;
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 4 // java.util.Set toSkip
        end local 3 // com.sun.tools.javac.util.ListBuffer interfaces
        end local 2 // com.sun.tools.javac.util.ListBuffer classes
        end local 1 // com.sun.tools.javac.util.List cl
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Lcom/sun/tools/javac/code/Types;
            0   27     1          cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1   27     2     classes  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            2   27     3  interfaces  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3   27     4      toSkip  Ljava/util/Set<Lcom/sun/tools/javac/code/Type;>;
            5   25     5     current  Lcom/sun/tools/javac/code/Type;
            8   25     6        keep  Z
           11   14     7           t  Lcom/sun/tools/javac/code/Type;
           21   23     7           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
      cl    

  public com.sun.tools.javac.code.Type lub(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)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.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 3912
            aload 0 /* this */
            aload 1 /* ts */
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.length:()I
            anewarray com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type[]
            invokevirtual com.sun.tools.javac.code.Types.lub:([Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1    ts  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;
    MethodParameters:
      Name  Flags
      ts    

  public com.sun.tools.javac.code.Type lub(com.sun.tools.javac.code.Type[]);
    descriptor: ([Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=5, locals=14, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type[] ts
         0: .line 3924
            aload 1 /* ts */
            arraylength
            newarray 10
            astore 2 /* kinds */
        start local 2 // int[] kinds
         1: .line 3926
            iconst_0
            istore 3 /* boundkind */
        start local 3 // int boundkind
         2: .line 3927
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 21
         4: .line 3928
      StackMap locals: int[] int int
      StackMap stack:
            aload 1 /* ts */
            iload 4 /* i */
            aaload
            astore 5 /* t */
        start local 5 // com.sun.tools.javac.code.Type t
         5: .line 3929
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:()[I
            aload 5 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iaload
            tableswitch { // 10 - 15
                   10: 6
                   11: 8
                   12: 17
                   13: 17
                   14: 17
                   15: 10
              default: 17
          }
         6: .line 3931
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            iload 3 /* boundkind */
            aload 2 /* kinds */
            iload 4 /* i */
            iconst_2
            dup_x2
            iastore
            ior
            istore 3 /* boundkind */
         7: .line 3932
            goto 20
         8: .line 3934
      StackMap locals:
      StackMap stack:
            iload 3 /* boundkind */
            aload 2 /* kinds */
            iload 4 /* i */
            iconst_1
            dup_x2
            iastore
            ior
            istore 3 /* boundkind */
         9: .line 3935
            goto 20
        10: .line 3938
      StackMap locals:
      StackMap stack:
            aload 5 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            astore 5 /* t */
        11: .line 3939
            aload 5 /* t */
            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
            ifne 10
        12: .line 3940
            aload 5 /* t */
            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 15
        13: .line 3941
            iload 3 /* boundkind */
            aload 2 /* kinds */
            iload 4 /* i */
            iconst_1
            dup_x2
            iastore
            ior
            istore 3 /* boundkind */
        14: .line 3942
            goto 20
        15: .line 3943
      StackMap locals:
      StackMap stack:
            iload 3 /* boundkind */
            aload 2 /* kinds */
            iload 4 /* i */
            iconst_2
            dup_x2
            iastore
            ior
            istore 3 /* boundkind */
        16: .line 3945
            goto 20
        17: .line 3947
      StackMap locals:
      StackMap stack:
            aload 2 /* kinds */
            iload 4 /* i */
            iconst_0
            iastore
        18: .line 3948
            aload 5 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 20
        19: .line 3949
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.errType:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 5 // com.sun.tools.javac.code.Type t
        20: .line 3927
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 4 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 4
        end local 4 // int i
        22: .line 3952
            iload 3 /* boundkind */
            tableswitch { // 0 - 2
                    0: 23
                    1: 24
                    2: 40
              default: 76
          }
        23: .line 3954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            areturn
        24: .line 3958
      StackMap locals:
      StackMap stack:
            aload 1 /* ts */
            arraylength
            anewarray com.sun.tools.javac.code.Type
            astore 4 /* elements */
        start local 4 // com.sun.tools.javac.code.Type[] elements
        25: .line 3959
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        26: goto 38
        27: .line 3960
      StackMap locals: com.sun.tools.javac.code.Type[] int
      StackMap stack:
            aload 4 /* elements */
            iload 5 /* i */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.elemTypeFun:Lcom/sun/tools/javac/code/Types$TypeMapping;
            aload 1 /* ts */
            iload 5 /* i */
            aaload
            invokevirtual com.sun.tools.javac.code.Types$TypeMapping.apply:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            dup_x2
            aastore
            astore 6 /* elem */
        start local 6 // com.sun.tools.javac.code.Type elem
        28: .line 3961
            aload 6 /* elem */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 37
        29: .line 3965
            aload 1 /* ts */
            iconst_0
            aaload
            astore 7 /* first */
        start local 7 // com.sun.tools.javac.code.Type first
        30: .line 3966
            iconst_1
            istore 8 /* j */
        start local 8 // int j
        31: goto 35
        32: .line 3967
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type int
      StackMap stack:
            aload 0 /* this */
            aload 7 /* first */
            aload 1 /* ts */
            iload 8 /* j */
            aaload
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 34
        33: .line 3969
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Types.arraySuperType:()Lcom/sun/tools/javac/code/Type;
            areturn
        34: .line 3966
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        35: iload 8 /* j */
            aload 1 /* ts */
            arraylength
            if_icmplt 32
        end local 8 // int j
        36: .line 3974
            aload 7 /* first */
            areturn
        end local 7 // com.sun.tools.javac.code.Type first
        end local 6 // com.sun.tools.javac.code.Type elem
        37: .line 3959
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 5 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 27
        end local 5 // int i
        39: .line 3978
            new com.sun.tools.javac.code.Type$ArrayType
            dup
            aload 0 /* this */
            aload 4 /* elements */
            invokevirtual com.sun.tools.javac.code.Types.lub:([Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.arrayClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokespecial com.sun.tools.javac.code.Type$ArrayType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            areturn
        end local 4 // com.sun.tools.javac.code.Type[] elements
        40: .line 3982
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* startIdx */
        start local 5 // int startIdx
        41: .line 3983
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        42: goto 48
        43: .line 3984
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int int
      StackMap stack:
            aload 1 /* ts */
            iload 6 /* i */
            aaload
            astore 7 /* t */
        start local 7 // com.sun.tools.javac.code.Type t
        44: .line 3985
            aload 7 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 49
            aload 7 /* t */
            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 46
        45: .line 3986
            goto 49
        46: .line 3988
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            iinc 5 /* startIdx */ 1
        end local 7 // com.sun.tools.javac.code.Type t
        47: .line 3983
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        48: iload 6 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 43
        end local 6 // int i
        49: .line 3991
      StackMap locals:
      StackMap stack:
            iload 5 /* startIdx */
            aload 1 /* ts */
            arraylength
            if_icmpge 50
            iconst_1
            goto 51
      StackMap locals:
      StackMap stack:
        50: iconst_0
      StackMap locals:
      StackMap stack: int
        51: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
        52: .line 3993
            aload 0 /* this */
            aload 1 /* ts */
            iload 5 /* startIdx */
            aaload
            invokevirtual com.sun.tools.javac.code.Types.erasedSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 6 /* cl */
        start local 6 // com.sun.tools.javac.util.List cl
        53: .line 3994
            iload 5 /* startIdx */
            iconst_1
            iadd
            istore 7 /* i */
        start local 7 // int i
        54: goto 59
        55: .line 3995
      StackMap locals: com.sun.tools.javac.util.List int
      StackMap stack:
            aload 1 /* ts */
            iload 7 /* i */
            aaload
            astore 8 /* t */
        start local 8 // com.sun.tools.javac.code.Type t
        56: .line 3996
            aload 8 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 57
            aload 8 /* t */
            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 58
        57: .line 3997
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            aload 6 /* cl */
            aload 0 /* this */
            aload 8 /* t */
            invokevirtual com.sun.tools.javac.code.Types.erasedSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 6 /* cl */
        end local 8 // com.sun.tools.javac.code.Type t
        58: .line 3994
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        59: iload 7 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 55
        end local 7 // int i
        60: .line 4000
            aload 0 /* this */
            aload 6 /* cl */
            invokevirtual com.sun.tools.javac.code.Types.closureMin:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 7 /* mec */
        start local 7 // com.sun.tools.javac.util.List mec
        61: .line 4002
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 8 /* candidates */
        start local 8 // com.sun.tools.javac.util.List candidates
        62: .line 4003
            aload 7 /* mec */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 74
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
        63: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 9 /* erasedSupertype */
        start local 9 // com.sun.tools.javac.code.Type erasedSupertype
        64: .line 4004
            aload 0 /* this */
            aload 1 /* ts */
            iload 5 /* startIdx */
            aaload
            aload 9 /* erasedSupertype */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 11 /* lci */
        start local 11 // com.sun.tools.javac.util.List lci
        65: .line 4005
            iload 5 /* startIdx */
            iconst_1
            iadd
            istore 12 /* i */
        start local 12 // int i
        66: goto 72
        67: .line 4006
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.util.List int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ts */
            iload 12 /* i */
            aaload
            aload 9 /* erasedSupertype */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 13 /* superType */
        start local 13 // com.sun.tools.javac.code.Type superType
        68: .line 4007
            aload 0 /* this */
            aload 11 /* lci */
            aload 13 /* superType */
            ifnull 69
            aload 13 /* superType */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            goto 70
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List
        69: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List
        70: invokevirtual com.sun.tools.javac.code.Types.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 11 /* lci */
        end local 13 // com.sun.tools.javac.code.Type superType
        71: .line 4005
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        72: iload 12 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 67
        end local 12 // int i
        73: .line 4009
            aload 8 /* candidates */
            aload 11 /* lci */
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 8 /* candidates */
        end local 11 // com.sun.tools.javac.util.List lci
        end local 9 // com.sun.tools.javac.code.Type erasedSupertype
        74: .line 4003
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top int com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 63
        75: .line 4013
            aload 0 /* this */
            aload 8 /* candidates */
            invokevirtual com.sun.tools.javac.code.Types.compoundMin:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 8 // com.sun.tools.javac.util.List candidates
        end local 7 // com.sun.tools.javac.util.List mec
        end local 6 // com.sun.tools.javac.util.List cl
        end local 5 // int startIdx
        76: .line 4017
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Types.arraySuperType:()Lcom/sun/tools/javac/code/Type;
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 9 /* classes */
        start local 9 // com.sun.tools.javac.util.List classes
        77: .line 4018
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        78: goto 82
        79: .line 4019
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type[] int[] int top top top top top com.sun.tools.javac.util.List int
      StackMap stack:
            aload 2 /* kinds */
            iload 10 /* i */
            iaload
            iconst_1
            if_icmpeq 81
        80: .line 4020
            aload 9 /* classes */
            aload 1 /* ts */
            iload 10 /* i */
            aaload
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 9 /* classes */
        81: .line 4018
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        82: iload 10 /* i */
            aload 1 /* ts */
            arraylength
            if_icmplt 79
        end local 10 // int i
        83: .line 4023
            aload 0 /* this */
            aload 9 /* classes */
            invokevirtual com.sun.tools.javac.code.Types.lub:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 9 // com.sun.tools.javac.util.List classes
        end local 3 // int boundkind
        end local 2 // int[] kinds
        end local 1 // com.sun.tools.javac.code.Type[] ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   84     0             this  Lcom/sun/tools/javac/code/Types;
            0   84     1               ts  [Lcom/sun/tools/javac/code/Type;
            1   84     2            kinds  [I
            2   84     3        boundkind  I
            3   22     4                i  I
            5   20     5                t  Lcom/sun/tools/javac/code/Type;
           25   40     4         elements  [Lcom/sun/tools/javac/code/Type;
           26   39     5                i  I
           28   37     6             elem  Lcom/sun/tools/javac/code/Type;
           30   37     7            first  Lcom/sun/tools/javac/code/Type;
           31   36     8                j  I
           41   76     5         startIdx  I
           42   49     6                i  I
           44   47     7                t  Lcom/sun/tools/javac/code/Type;
           53   76     6               cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           54   60     7                i  I
           56   58     8                t  Lcom/sun/tools/javac/code/Type;
           61   76     7              mec  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           62   76     8       candidates  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           64   74     9  erasedSupertype  Lcom/sun/tools/javac/code/Type;
           65   74    11              lci  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           66   73    12                i  I
           68   71    13        superType  Lcom/sun/tools/javac/code/Type;
           77   84     9          classes  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           78   83    10                i  I
    MethodParameters:
      Name  Flags
      ts    

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> erasedSupertypes(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4028
            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 4029
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type 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 /* sup */
        start local 3 // com.sun.tools.javac.code.Type sup
         3: .line 4030
            aload 3 /* sup */
            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 6
         4: .line 4031
            aload 2 /* buf */
            aload 3 /* sup */
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
         5: .line 4032
            goto 7
         6: .line 4033
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator
      StackMap stack:
            aload 2 /* buf */
            aload 0 /* this */
            aload 3 /* sup */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)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 3 // com.sun.tools.javac.code.Type sup
         7: .line 4029
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         8: .line 4036
            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.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/code/Types;
            0    9     1     t  Lcom/sun/tools/javac/code/Type;
            1    9     2   buf  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    7     3   sup  Lcom/sun/tools/javac/code/Type;
    Signature: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  private com.sun.tools.javac.code.Type arraySuperType();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Types this
         0: .line 4042
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.arraySuperType:Lcom/sun/tools/javac/code/Type;
            ifnonnull 12
         1: .line 4043
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         2: .line 4044
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.arraySuperType:Lcom/sun/tools/javac/code/Type;
            ifnonnull 8
         3: .line 4046
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.serializableType:Lcom/sun/tools/javac/code/Type;
         4: .line 4047
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.cloneableType:Lcom/sun/tools/javac/code/Type;
         5: .line 4046
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
         6: .line 4047
            iconst_1
         7: .line 4046
            invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;Z)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
            putfield com.sun.tools.javac.code.Types.arraySuperType:Lcom/sun/tools/javac/code/Type;
         8: .line 4043
      StackMap locals: com.sun.tools.javac.code.Types
      StackMap stack:
            aload 1
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 4051
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.arraySuperType:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lcom/sun/tools/javac/code/Types;
      Exception table:
        from    to  target  type
           2     9      10  any
          10    11      10  any

  public com.sun.tools.javac.code.Type glb(com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 4057
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* t1 */
        start local 2 // com.sun.tools.javac.code.Type t1
         1: .line 4058
            aload 1 /* ts */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 6
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type 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 /* t2 */
        start local 3 // com.sun.tools.javac.code.Type t2
         3: .line 4059
            aload 2 /* t1 */
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifeq 5
         4: .line 4060
            aload 2 /* t1 */
            areturn
         5: .line 4061
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            aload 2 /* t1 */
            aload 3 /* t2 */
            invokevirtual com.sun.tools.javac.code.Types.glb:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* t1 */
        end local 3 // com.sun.tools.javac.code.Type t2
         6: .line 4058
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 4063
            aload 2 /* t1 */
            areturn
        end local 2 // com.sun.tools.javac.code.Type t1
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/javac/code/Types;
            0    8     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    8     2    t1  Lcom/sun/tools/javac/code/Type;
            3    6     3    t2  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;
    MethodParameters:
      Name  Flags
      ts    

  public com.sun.tools.javac.code.Type glb(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 4067
            aload 2 /* s */
            ifnonnull 2
         1: .line 4068
            aload 1 /* t */
            areturn
         2: .line 4069
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 3
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 4
         3: .line 4070
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.errType:Lcom/sun/tools/javac/code/Type;
            areturn
         4: .line 4071
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeNoCapture:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 6
         5: .line 4072
            aload 1 /* t */
            areturn
         6: .line 4073
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeNoCapture:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 8
         7: .line 4074
            aload 2 /* s */
            areturn
         8: .line 4076
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.closure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 3 /* closure */
        start local 3 // com.sun.tools.javac.util.List closure
         9: .line 4077
            aload 0 /* this */
            aload 3 /* closure */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.glbFlattened:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 3 // com.sun.tools.javac.util.List closure
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/tools/javac/code/Types;
            0   10     1        t  Lcom/sun/tools/javac/code/Type;
            0   10     2        s  Lcom/sun/tools/javac/code/Type;
            9   10     3  closure  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     
      s     

  private com.sun.tools.javac.code.Type glbFlattened(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;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=10, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List flatBounds
        start local 2 // com.sun.tools.javac.code.Type errT
         0: .line 4089
            aload 0 /* this */
            aload 1 /* flatBounds */
            invokevirtual com.sun.tools.javac.code.Types.closureMin:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 3 /* bounds */
        start local 3 // com.sun.tools.javac.util.List bounds
         1: .line 4091
            aload 3 /* bounds */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 3
         2: .line 4092
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            areturn
         3: .line 4093
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 3 /* bounds */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 5
         4: .line 4094
            aload 3 /* bounds */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
         5: .line 4096
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* classCount */
        start local 4 // int classCount
         6: .line 4097
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 5 /* cvars */
        start local 5 // com.sun.tools.javac.util.List cvars
         7: .line 4098
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 6 /* lowers */
        start local 6 // com.sun.tools.javac.util.List lowers
         8: .line 4099
            aload 3 /* bounds */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 16
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         9: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 7 /* bound */
        start local 7 // com.sun.tools.javac.code.Type bound
        10: .line 4100
            aload 7 /* bound */
            invokevirtual com.sun.tools.javac.code.Type.isInterface:()Z
            ifne 16
        11: .line 4101
            iinc 4 /* classCount */ 1
        12: .line 4102
            aload 0 /* this */
            aload 7 /* bound */
            invokevirtual com.sun.tools.javac.code.Types.cvarLowerBound:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 9 /* lower */
        start local 9 // com.sun.tools.javac.code.Type lower
        13: .line 4103
            aload 7 /* bound */
            aload 9 /* lower */
            if_acmpeq 16
            aload 9 /* lower */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 16
        14: .line 4104
            aload 5 /* cvars */
            aload 7 /* bound */
            invokevirtual com.sun.tools.javac.util.List.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 5 /* cvars */
        15: .line 4105
            aload 6 /* lowers */
            aload 9 /* lower */
            invokevirtual com.sun.tools.javac.util.List.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 6 /* lowers */
        end local 9 // com.sun.tools.javac.code.Type lower
        end local 7 // com.sun.tools.javac.code.Type bound
        16: .line 4099
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        17: .line 4109
            iload 4 /* classCount */
            iconst_1
            if_icmple 22
        18: .line 4110
            aload 6 /* lowers */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 20
        19: .line 4111
            aload 0 /* this */
            aload 2 /* errT */
            invokevirtual com.sun.tools.javac.code.Types.createErrorType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        20: .line 4114
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 3 /* bounds */
            aload 5 /* cvars */
            invokevirtual com.sun.tools.javac.util.List.diff:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            aload 6 /* lowers */
            invokevirtual com.sun.tools.javac.util.List.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 7 /* newBounds */
        start local 7 // com.sun.tools.javac.util.List newBounds
        21: .line 4115
            aload 0 /* this */
            aload 7 /* newBounds */
            invokevirtual com.sun.tools.javac.code.Types.glb:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 7 // com.sun.tools.javac.util.List newBounds
        end local 6 // com.sun.tools.javac.util.List lowers
        end local 5 // com.sun.tools.javac.util.List cvars
        end local 4 // int classCount
        22: .line 4119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
            areturn
        end local 3 // com.sun.tools.javac.util.List bounds
        end local 2 // com.sun.tools.javac.code.Type errT
        end local 1 // com.sun.tools.javac.util.List flatBounds
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Lcom/sun/tools/javac/code/Types;
            0   23     1  flatBounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            0   23     2        errT  Lcom/sun/tools/javac/code/Type;
            1   23     3      bounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            6   22     4  classCount  I
            7   22     5       cvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            8   22     6      lowers  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           10   16     7       bound  Lcom/sun/tools/javac/code/Type;
           13   16     9       lower  Lcom/sun/tools/javac/code/Type;
           21   22     7   newBounds  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;)Lcom/sun/tools/javac/code/Type;
    MethodParameters:
            Name  Flags
      flatBounds  
      errT        

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

  public int hashCode(com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // boolean strict
         0: .line 4132
            iload 2 /* strict */
            ifeq 2
         1: .line 4133
            getstatic com.sun.tools.javac.code.Types.hashCodeStrictVisitor:Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$HashCodeVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Integer
            goto 3
         2: .line 4134
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.code.Types.hashCodeVisitor:Lcom/sun/tools/javac/code/Types$HashCodeVisitor;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$HashCodeVisitor.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast java.lang.Integer
         3: .line 4132
      StackMap locals:
      StackMap stack: java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // boolean strict
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lcom/sun/tools/javac/code/Types;
            0    4     1       t  Lcom/sun/tools/javac/code/Type;
            0    4     2  strict  Z
    MethodParameters:
        Name  Flags
      t       
      strict  

  public boolean resultSubtype(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warner
         0: .line 4214
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 4 /* tvars */
        start local 4 // com.sun.tools.javac.util.List tvars
         1: .line 4215
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 5 /* svars */
        start local 5 // com.sun.tools.javac.util.List svars
         2: .line 4216
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            astore 6 /* tres */
        start local 6 // com.sun.tools.javac.code.Type tres
         3: .line 4217
            aload 0 /* this */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 5 /* svars */
            aload 4 /* tvars */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            astore 7 /* sres */
        start local 7 // com.sun.tools.javac.code.Type sres
         4: .line 4218
            aload 0 /* this */
            aload 6 /* tres */
            aload 7 /* sres */
            aload 3 /* warner */
            invokevirtual com.sun.tools.javac.code.Types.covariantReturnType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 7 // com.sun.tools.javac.code.Type sres
        end local 6 // com.sun.tools.javac.code.Type tres
        end local 5 // com.sun.tools.javac.util.List svars
        end local 4 // com.sun.tools.javac.util.List tvars
        end local 3 // com.sun.tools.javac.util.Warner warner
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lcom/sun/tools/javac/code/Types;
            0    5     1       t  Lcom/sun/tools/javac/code/Type;
            0    5     2       s  Lcom/sun/tools/javac/code/Type;
            0    5     3  warner  Lcom/sun/tools/javac/util/Warner;
            1    5     4   tvars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    5     5   svars  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3    5     6    tres  Lcom/sun/tools/javac/code/Type;
            4    5     7    sres  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
        Name  Flags
      t       
      s       
      warner  

  public boolean returnTypeSubstitutable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type r1
        start local 2 // com.sun.tools.javac.code.Type r2
         0: .line 4226
            aload 0 /* this */
            aload 1 /* r1 */
            aload 2 /* r2 */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
         1: .line 4227
            aload 0 /* this */
            aload 1 /* r1 */
            aload 2 /* r2 */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.code.Types.resultSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
         2: .line 4229
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
         3: .line 4230
            aload 0 /* this */
            aload 2 /* r2 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
         4: .line 4231
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.noWarnings:Lcom/sun/tools/javac/util/Warner;
         5: .line 4229
            invokevirtual com.sun.tools.javac.code.Types.covariantReturnType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
        end local 2 // com.sun.tools.javac.code.Type r2
        end local 1 // com.sun.tools.javac.code.Type r1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1    r1  Lcom/sun/tools/javac/code/Type;
            0    6     2    r2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      r1    
      r2    

  public boolean returnTypeSubstitutable(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type r1
        start local 2 // com.sun.tools.javac.code.Type r2
        start local 3 // com.sun.tools.javac.code.Type r2res
        start local 4 // com.sun.tools.javac.util.Warner warner
         0: .line 4237
            aload 0 /* this */
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 3 /* r2res */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
         1: .line 4238
            iconst_1
            ireturn
         2: .line 4239
      StackMap locals:
      StackMap stack:
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 3
            aload 3 /* r2res */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 4
         3: .line 4240
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         4: .line 4242
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r1 */
            aload 2 /* r2 */
            invokevirtual com.sun.tools.javac.code.Types.hasSameArgs:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 6
         5: .line 4243
            aload 0 /* this */
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 3 /* r2res */
            aload 4 /* warner */
            invokevirtual com.sun.tools.javac.code.Types.covariantReturnType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ireturn
         6: .line 4244
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 3 /* r2res */
            aload 4 /* warner */
            invokevirtual com.sun.tools.javac.code.Types.isSubtypeUnchecked:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ifeq 8
         7: .line 4245
            iconst_1
            ireturn
         8: .line 4246
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* r1 */
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            aload 3 /* r2res */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 10
         9: .line 4247
            iconst_0
            ireturn
        10: .line 4248
      StackMap locals:
      StackMap stack:
            aload 4 /* warner */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.warn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        11: .line 4249
            iconst_1
            ireturn
        end local 4 // com.sun.tools.javac.util.Warner warner
        end local 3 // com.sun.tools.javac.code.Type r2res
        end local 2 // com.sun.tools.javac.code.Type r2
        end local 1 // com.sun.tools.javac.code.Type r1
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/sun/tools/javac/code/Types;
            0   12     1      r1  Lcom/sun/tools/javac/code/Type;
            0   12     2      r2  Lcom/sun/tools/javac/code/Type;
            0   12     3   r2res  Lcom/sun/tools/javac/code/Type;
            0   12     4  warner  Lcom/sun/tools/javac/util/Warner;
    MethodParameters:
        Name  Flags
      r1      
      r2      
      r2res   
      warner  

  public boolean covariantReturnType(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
        start local 3 // com.sun.tools.javac.util.Warner warner
         0: .line 4258
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 5
         1: .line 4259
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 4
         2: .line 4260
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 4
         3: .line 4261
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            aload 3 /* warner */
            invokevirtual com.sun.tools.javac.code.Types.isAssignable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
            ifne 5
         4: .line 4257
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 3 // com.sun.tools.javac.util.Warner warner
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/tools/javac/code/Types;
            0    6     1       t  Lcom/sun/tools/javac/code/Type;
            0    6     2       s  Lcom/sun/tools/javac/code/Type;
            0    6     3  warner  Lcom/sun/tools/javac/util/Warner;
    MethodParameters:
        Name  Flags
      t       
      s       
      warner  

  public com.sun.tools.javac.code.Symbol$ClassSymbol boxedClass(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4270
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.java_base:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boxedName:[Lcom/sun/tools/javac/util/Name;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTag:()Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            aaload
            invokevirtual com.sun.tools.javac.code.Symtab.enterClass:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type boxedTypeOrType(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=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4277
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifeq 2
         1: .line 4278
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.boxedClass:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            goto 3
         2: .line 4279
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
         3: .line 4277
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type unboxedType(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=5, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4286
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 7
         2: .line 4287
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boxedName:[Lcom/sun/tools/javac/util/Name;
            iload 2 /* i */
            aaload
            astore 3 /* box */
        start local 3 // com.sun.tools.javac.util.Name box
         3: .line 4288
            aload 3 /* box */
            ifnull 6
         4: .line 4289
            aload 0 /* this */
            aload 1 /* t */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.java_base:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            aload 3 /* box */
            invokevirtual com.sun.tools.javac.code.Symtab.enterClass:(Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            ifnull 6
         5: .line 4290
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.typeOfTag:[Lcom/sun/tools/javac/code/Type;
            iload 2 /* i */
            aaload
            areturn
        end local 3 // com.sun.tools.javac.util.Name box
         6: .line 4286
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boxedName:[Lcom/sun/tools/javac/util/Name;
            arraylength
            if_icmplt 2
        end local 2 // int i
         8: .line 4292
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            areturn
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/code/Types;
            0    9     1     t  Lcom/sun/tools/javac/code/Type;
            1    8     2     i  I
            3    6     3   box  Lcom/sun/tools/javac/util/Name;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.code.Type unboxedTypeOrType(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=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4299
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.unboxedType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* unboxedType */
        start local 2 // com.sun.tools.javac.code.Type unboxedType
         1: .line 4300
            aload 2 /* unboxedType */
            getstatic com.sun.tools.javac.code.TypeTag.NONE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 2
            aload 1 /* t */
            goto 3
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
         2: aload 2 /* unboxedType */
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         3: areturn
        end local 2 // com.sun.tools.javac.code.Type unboxedType
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/sun/tools/javac/code/Types;
            0    4     1            t  Lcom/sun/tools/javac/code/Type;
            1    4     2  unboxedType  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> capture(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: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List ts
         0: .line 4343
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 2 /* buf */
        start local 2 // com.sun.tools.javac.util.List buf
         1: .line 4344
            aload 1 /* ts */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.List 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 4345
            aload 2 /* buf */
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 2 /* buf */
        end local 3 // com.sun.tools.javac.code.Type t
         4: .line 4344
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 4347
            aload 2 /* buf */
            invokevirtual com.sun.tools.javac.util.List.reverse:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.List buf
        end local 1 // com.sun.tools.javac.util.List ts
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;
            0    6     1    ts  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1    6     2   buf  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            3    4     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/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      ts    

  public com.sun.tools.javac.code.Type capture(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=7, locals=16, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
         0: .line 4351
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 2
         1: .line 4352
            aload 1 /* t */
            areturn
         2: .line 4354
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            if_acmpeq 7
         3: .line 4355
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.capture:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* capturedEncl */
        start local 2 // com.sun.tools.javac.code.Type capturedEncl
         4: .line 4356
            aload 2 /* capturedEncl */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            if_acmpeq 7
         5: .line 4357
            aload 0 /* this */
            aload 2 /* capturedEncl */
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.memberType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* type1 */
        start local 3 // com.sun.tools.javac.code.Type type1
         6: .line 4358
            aload 0 /* this */
            aload 3 /* type1 */
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            astore 1 /* t */
        end local 3 // com.sun.tools.javac.code.Type type1
        end local 2 // com.sun.tools.javac.code.Type capturedEncl
         7: .line 4361
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 2 /* cls */
        start local 2 // com.sun.tools.javac.code.Type$ClassType cls
         8: .line 4362
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.isRaw:()Z
            ifne 9
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.isParameterized:()Z
            ifne 10
         9: .line 4363
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            aload 2 /* cls */
            areturn
        10: .line 4365
      StackMap locals:
      StackMap stack:
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.asElement:()Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.asType:()Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 3 /* G */
        start local 3 // com.sun.tools.javac.code.Type$ClassType G
        11: .line 4366
            aload 3 /* G */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 4 /* A */
        start local 4 // com.sun.tools.javac.util.List A
        12: .line 4367
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            astore 5 /* T */
        start local 5 // com.sun.tools.javac.util.List T
        13: .line 4368
            aload 0 /* this */
            aload 5 /* T */
            invokevirtual com.sun.tools.javac.code.Types.freshTypeVariables:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 6 /* S */
        start local 6 // com.sun.tools.javac.util.List S
        14: .line 4370
            aload 4 /* A */
            astore 7 /* currentA */
        start local 7 // com.sun.tools.javac.util.List currentA
        15: .line 4371
            aload 5 /* T */
            astore 8 /* currentT */
        start local 8 // com.sun.tools.javac.util.List currentT
        16: .line 4372
            aload 6 /* S */
            astore 9 /* currentS */
        start local 9 // com.sun.tools.javac.util.List currentS
        17: .line 4373
            iconst_0
            istore 10 /* captured */
        start local 10 // boolean captured
        18: .line 4374
            goto 48
        19: .line 4377
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List int
      StackMap stack:
            aload 9 /* currentS */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            aload 8 /* currentT */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            if_acmpeq 45
        20: .line 4378
            iconst_1
            istore 10 /* captured */
        21: .line 4379
            aload 8 /* currentT */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$WildcardType
            astore 11 /* Ti */
        start local 11 // com.sun.tools.javac.code.Type$WildcardType Ti
        22: .line 4380
            aload 7 /* currentA */
            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.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            astore 12 /* Ui */
        start local 12 // com.sun.tools.javac.code.Type Ui
        23: .line 4381
            aload 9 /* currentS */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type$CapturedType
            astore 13 /* Si */
        start local 13 // com.sun.tools.javac.code.Type$CapturedType Si
        24: .line 4382
            aload 12 /* Ui */
            ifnonnull 26
        25: .line 4383
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            astore 12 /* Ui */
        26: .line 4384
      StackMap locals: com.sun.tools.javac.code.Type$WildcardType com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$CapturedType
      StackMap stack:
            invokestatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:()[I
            aload 11 /* Ti */
            getfield com.sun.tools.javac.code.Type$WildcardType.kind:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iaload
            tableswitch { // 1 - 3
                    1: 30
                    2: 33
                    3: 27
              default: 35
          }
        27: .line 4386
      StackMap locals:
      StackMap stack:
            aload 13 /* Si */
            aload 0 /* this */
            aload 12 /* Ui */
            aload 4 /* A */
            aload 6 /* S */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
        28: .line 4387
            aload 13 /* Si */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
        29: .line 4388
            goto 35
        30: .line 4390
      StackMap locals:
      StackMap stack:
            aload 13 /* Si */
            aload 0 /* this */
            aload 11 /* Ti */
            invokevirtual com.sun.tools.javac.code.Type$WildcardType.getExtendsBound:()Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            aload 12 /* Ui */
            aload 4 /* A */
            aload 6 /* S */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.glb:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
        31: .line 4391
            aload 13 /* Si */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
        32: .line 4392
            goto 35
        33: .line 4394
      StackMap locals:
      StackMap stack:
            aload 13 /* Si */
            aload 0 /* this */
            aload 12 /* Ui */
            aload 4 /* A */
            aload 6 /* S */
            invokevirtual com.sun.tools.javac.code.Types.subst:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.setUpperBound:(Lcom/sun/tools/javac/code/Type;)V
        34: .line 4395
            aload 13 /* Si */
            aload 11 /* Ti */
            invokevirtual com.sun.tools.javac.code.Type$WildcardType.getSuperBound:()Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
        35: .line 4398
      StackMap locals:
      StackMap stack:
            aload 13 /* Si */
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 36
            aload 13 /* Si */
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 13 /* Si */
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.getUpperBound:()Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
        37: astore 14 /* tmpBound */
        start local 14 // com.sun.tools.javac.code.Type tmpBound
        38: .line 4399
            aload 13 /* Si */
            getfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 39
            aload 13 /* Si */
            getfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$UndetVar
            getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
            goto 40
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
        39: aload 13 /* Si */
            getfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
        40: astore 15 /* tmpLower */
        start local 15 // com.sun.tools.javac.code.Type tmpLower
        41: .line 4400
            aload 13 /* Si */
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 45
        42: .line 4401
            aload 13 /* Si */
            getfield com.sun.tools.javac.code.Type$CapturedType.lower:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 45
        43: .line 4402
            aload 0 /* this */
            aload 14 /* tmpBound */
            aload 15 /* tmpLower */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 45
        44: .line 4403
            aload 9 /* currentS */
            aload 13 /* Si */
            invokevirtual com.sun.tools.javac.code.Type$CapturedType.getUpperBound:()Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
        end local 15 // com.sun.tools.javac.code.Type tmpLower
        end local 14 // com.sun.tools.javac.code.Type tmpBound
        end local 13 // com.sun.tools.javac.code.Type$CapturedType Si
        end local 12 // com.sun.tools.javac.code.Type Ui
        end local 11 // com.sun.tools.javac.code.Type$WildcardType Ti
        45: .line 4406
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.code.Type$ClassType com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List int
      StackMap stack:
            aload 7 /* currentA */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 7 /* currentA */
        46: .line 4407
            aload 8 /* currentT */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 8 /* currentT */
        47: .line 4408
            aload 9 /* currentS */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 9 /* currentS */
        48: .line 4374
      StackMap locals:
      StackMap stack:
            aload 7 /* currentA */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 51
        49: .line 4375
            aload 8 /* currentT */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 51
        50: .line 4376
            aload 9 /* currentS */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 19
        51: .line 4410
      StackMap locals:
      StackMap stack:
            aload 7 /* currentA */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 52
            aload 8 /* currentT */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifeq 52
            aload 9 /* currentS */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            ifne 53
        52: .line 4411
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            areturn
        53: .line 4413
      StackMap locals:
      StackMap stack:
            iload 10 /* captured */
            ifeq 57
        54: .line 4414
            new com.sun.tools.javac.code.Type$ClassType
            dup
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            aload 6 /* S */
            aload 2 /* cls */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
        55: .line 4415
            aload 2 /* cls */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.getMetadata:()Lcom/sun/tools/javac/code/TypeMetadata;
        56: .line 4414
            invokespecial com.sun.tools.javac.code.Type$ClassType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/TypeMetadata;)V
            areturn
        57: .line 4417
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            areturn
        end local 10 // boolean captured
        end local 9 // com.sun.tools.javac.util.List currentS
        end local 8 // com.sun.tools.javac.util.List currentT
        end local 7 // com.sun.tools.javac.util.List currentA
        end local 6 // com.sun.tools.javac.util.List S
        end local 5 // com.sun.tools.javac.util.List T
        end local 4 // com.sun.tools.javac.util.List A
        end local 3 // com.sun.tools.javac.code.Type$ClassType G
        end local 2 // com.sun.tools.javac.code.Type$ClassType cls
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   58     0          this  Lcom/sun/tools/javac/code/Types;
            0   58     1             t  Lcom/sun/tools/javac/code/Type;
            4    7     2  capturedEncl  Lcom/sun/tools/javac/code/Type;
            6    7     3         type1  Lcom/sun/tools/javac/code/Type;
            8   58     2           cls  Lcom/sun/tools/javac/code/Type$ClassType;
           11   58     3             G  Lcom/sun/tools/javac/code/Type$ClassType;
           12   58     4             A  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           13   58     5             T  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           14   58     6             S  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           15   58     7      currentA  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           16   58     8      currentT  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           17   58     9      currentS  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           18   58    10      captured  Z
           22   45    11            Ti  Lcom/sun/tools/javac/code/Type$WildcardType;
           23   45    12            Ui  Lcom/sun/tools/javac/code/Type;
           24   45    13            Si  Lcom/sun/tools/javac/code/Type$CapturedType;
           38   45    14      tmpBound  Lcom/sun/tools/javac/code/Type;
           41   45    15      tmpLower  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> freshTypeVariables(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: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.util.List types
         0: .line 4421
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* result */
        start local 2 // com.sun.tools.javac.util.ListBuffer result
         1: .line 4422
            aload 1 /* types */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 15
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List 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 4423
            aload 3 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 14
         4: .line 4424
            aload 3 /* t */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            invokevirtual com.sun.tools.javac.code.Type$WildcardType.getExtendsBound:()Lcom/sun/tools/javac/code/Type;
            astore 5 /* bound */
        start local 5 // com.sun.tools.javac.code.Type bound
         5: .line 4425
            aload 5 /* bound */
            ifnonnull 7
         6: .line 4426
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            astore 5 /* bound */
         7: .line 4427
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type
      StackMap stack:
            aload 2 /* result */
            new com.sun.tools.javac.code.Type$CapturedType
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.capturedName:Lcom/sun/tools/javac/util/Name;
         8: .line 4428
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.noSymbol:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
         9: .line 4429
            aload 5 /* bound */
        10: .line 4430
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
        11: .line 4431
            aload 3 /* t */
            checkcast com.sun.tools.javac.code.Type$WildcardType
            invokespecial com.sun.tools.javac.code.Type$CapturedType.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$WildcardType;)V
        12: .line 4427
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 5 // com.sun.tools.javac.code.Type bound
        13: .line 4432
            goto 15
        14: .line 4433
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            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
        15: .line 4422
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        16: .line 4436
            aload 2 /* result */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer result
        end local 1 // com.sun.tools.javac.util.List types
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   17     0    this  Lcom/sun/tools/javac/code/Types;
            0   17     1   types  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            1   17     2  result  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3   15     3       t  Lcom/sun/tools/javac/code/Type;
            5   13     5   bound  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
      types  

  private boolean sideCast(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type from
        start local 2 // com.sun.tools.javac.code.Type to
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 4446
            iconst_0
            istore 4 /* reverse */
        start local 4 // boolean reverse
         1: .line 4447
            aload 2 /* to */
            astore 5 /* target */
        start local 5 // com.sun.tools.javac.code.Type target
         2: .line 4448
            aload 2 /* to */
            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
            ifne 9
         3: .line 4449
            aload 1 /* from */
            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 4
            iconst_1
            goto 5
      StackMap locals: int com.sun.tools.javac.code.Type
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         6: .line 4450
            iconst_1
            istore 4 /* reverse */
         7: .line 4451
            aload 1 /* from */
            astore 2 /* to */
         8: .line 4452
            aload 5 /* target */
            astore 1 /* from */
         9: .line 4454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* to */
            aload 0 /* this */
            aload 1 /* from */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.superClosure:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 6 /* commonSupers */
        start local 6 // com.sun.tools.javac.util.List commonSupers
        10: .line 4455
            aload 6 /* commonSupers */
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            istore 7 /* giveWarning */
        start local 7 // boolean giveWarning
        11: .line 4458
            goto 22
        12: .line 4459
      StackMap locals: com.sun.tools.javac.util.List int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* from */
            aload 6 /* commonSupers */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 8 /* t1 */
        start local 8 // com.sun.tools.javac.code.Type t1
        13: .line 4460
            aload 6 /* commonSupers */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 9 /* t2 */
        start local 9 // com.sun.tools.javac.code.Type t2
        14: .line 4461
            aload 0 /* this */
            aload 8 /* t1 */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            aload 9 /* t2 */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.disjointTypes:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
            ifeq 16
        15: .line 4462
            iconst_0
            ireturn
        16: .line 4463
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type
      StackMap stack:
            iload 7 /* giveWarning */
            ifne 19
            iload 4 /* reverse */
            ifeq 17
            aload 0 /* this */
            aload 9 /* t2 */
            aload 8 /* t1 */
            invokevirtual com.sun.tools.javac.code.Types.giveWarning:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 19
            goto 18
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            aload 8 /* t1 */
            aload 9 /* t2 */
            invokevirtual com.sun.tools.javac.code.Types.giveWarning:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 19
      StackMap locals:
      StackMap stack:
        18: iconst_0
            goto 20
      StackMap locals:
      StackMap stack:
        19: iconst_1
      StackMap locals:
      StackMap stack: int
        20: istore 7 /* giveWarning */
        21: .line 4464
            aload 6 /* commonSupers */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 6 /* commonSupers */
        end local 9 // com.sun.tools.javac.code.Type t2
        end local 8 // com.sun.tools.javac.code.Type t1
        22: .line 4458
      StackMap locals:
      StackMap stack:
            aload 6 /* commonSupers */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 12
        23: .line 4466
            iload 7 /* giveWarning */
            ifeq 27
            aload 0 /* this */
            iload 4 /* reverse */
            ifeq 24
            aload 1 /* from */
            goto 25
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Types
        24: aload 2 /* to */
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.util.Warner int com.sun.tools.javac.code.Type com.sun.tools.javac.util.List int
      StackMap stack: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type
        25: invokevirtual com.sun.tools.javac.code.Types.isReifiable:(Lcom/sun/tools/javac/code/Type;)Z
            ifne 27
        26: .line 4467
            aload 3 /* warn */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.warn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        27: .line 4468
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // boolean giveWarning
        end local 6 // com.sun.tools.javac.util.List commonSupers
        end local 5 // com.sun.tools.javac.code.Type target
        end local 4 // boolean reverse
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type to
        end local 1 // com.sun.tools.javac.code.Type from
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   28     0          this  Lcom/sun/tools/javac/code/Types;
            0   28     1          from  Lcom/sun/tools/javac/code/Type;
            0   28     2            to  Lcom/sun/tools/javac/code/Type;
            0   28     3          warn  Lcom/sun/tools/javac/util/Warner;
            1   28     4       reverse  Z
            2   28     5        target  Lcom/sun/tools/javac/code/Type;
           10   28     6  commonSupers  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           11   28     7   giveWarning  Z
           13   22     8            t1  Lcom/sun/tools/javac/code/Type;
           14   22     9            t2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      from  
      to    
      warn  

  private boolean sideCastFinal(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Warner;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type from
        start local 2 // com.sun.tools.javac.code.Type to
        start local 3 // com.sun.tools.javac.util.Warner warn
         0: .line 4477
            iconst_0
            istore 4 /* reverse */
        start local 4 // boolean reverse
         1: .line 4478
            aload 2 /* to */
            astore 5 /* target */
        start local 5 // com.sun.tools.javac.code.Type target
         2: .line 4479
            aload 2 /* to */
            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
            ifne 9
         3: .line 4480
            aload 1 /* from */
            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 4
            iconst_1
            goto 5
      StackMap locals: int com.sun.tools.javac.code.Type
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         6: .line 4481
            iconst_1
            istore 4 /* reverse */
         7: .line 4482
            aload 1 /* from */
            astore 2 /* to */
         8: .line 4483
            aload 5 /* target */
            astore 1 /* from */
         9: .line 4485
      StackMap locals:
      StackMap stack:
            aload 1 /* from */
            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 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
        12: .line 4486
            aload 0 /* this */
            aload 1 /* from */
            aload 2 /* to */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 6 /* t1 */
        start local 6 // com.sun.tools.javac.code.Type t1
        13: .line 4487
            aload 6 /* t1 */
            ifnonnull 14
            iconst_0
            ireturn
        14: .line 4488
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 2 /* to */
            astore 7 /* t2 */
        start local 7 // com.sun.tools.javac.code.Type t2
        15: .line 4489
            aload 0 /* this */
            aload 6 /* t1 */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            aload 7 /* t2 */
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.disjointTypes:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
            ifeq 17
        16: .line 4490
            iconst_0
            ireturn
        17: .line 4491
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 0 /* this */
            aload 5 /* target */
            invokevirtual com.sun.tools.javac.code.Types.isReifiable:(Lcom/sun/tools/javac/code/Type;)Z
            ifne 21
        18: .line 4492
            iload 4 /* reverse */
            ifeq 19
            aload 0 /* this */
            aload 7 /* t2 */
            aload 6 /* t1 */
            invokevirtual com.sun.tools.javac.code.Types.giveWarning:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 21
            goto 20
      StackMap locals:
      StackMap stack:
        19: aload 0 /* this */
            aload 6 /* t1 */
            aload 7 /* t2 */
            invokevirtual com.sun.tools.javac.code.Types.giveWarning:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 21
        20: .line 4493
      StackMap locals:
      StackMap stack:
            aload 3 /* warn */
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.warn:(Lcom/sun/tools/javac/code/Lint$LintCategory;)V
        21: .line 4494
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 7 // com.sun.tools.javac.code.Type t2
        end local 6 // com.sun.tools.javac.code.Type t1
        end local 5 // com.sun.tools.javac.code.Type target
        end local 4 // boolean reverse
        end local 3 // com.sun.tools.javac.util.Warner warn
        end local 2 // com.sun.tools.javac.code.Type to
        end local 1 // com.sun.tools.javac.code.Type from
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   22     0     this  Lcom/sun/tools/javac/code/Types;
            0   22     1     from  Lcom/sun/tools/javac/code/Type;
            0   22     2       to  Lcom/sun/tools/javac/code/Type;
            0   22     3     warn  Lcom/sun/tools/javac/util/Warner;
            1   22     4  reverse  Z
            2   22     5   target  Lcom/sun/tools/javac/code/Type;
           13   22     6       t1  Lcom/sun/tools/javac/code/Type;
           15   22     7       t2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      from  
      to    
      warn  

  private boolean giveWarning(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type from
        start local 2 // com.sun.tools.javac.code.Type to
         0: .line 4498
            aload 2 /* to */
            invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
            ifeq 2
         1: .line 4499
            aload 0 /* this */
            aload 2 /* to */
            invokevirtual com.sun.tools.javac.code.Types.directSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 2 /* to */
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
         3: .line 4498
      StackMap locals:
      StackMap stack: com.sun.tools.javac.util.List
            astore 3 /* bounds */
        start local 3 // com.sun.tools.javac.util.List bounds
         4: .line 4500
            aload 3 /* bounds */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 12
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         5: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* b */
        start local 4 // com.sun.tools.javac.code.Type b
         6: .line 4501
            aload 0 /* this */
            aload 1 /* from */
            aload 4 /* b */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.asSub:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
            astore 6 /* subFrom */
        start local 6 // com.sun.tools.javac.code.Type subFrom
         7: .line 4502
            aload 4 /* b */
            invokevirtual com.sun.tools.javac.code.Type.isParameterized:()Z
            ifeq 12
         8: .line 4503
            aload 0 /* this */
            aload 4 /* b */
            invokevirtual com.sun.tools.javac.code.Types.isUnbounded:(Lcom/sun/tools/javac/code/Type;)Z
            ifne 12
         9: .line 4504
            aload 0 /* this */
            aload 1 /* from */
            aload 4 /* b */
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 12
        10: .line 4505
            aload 6 /* subFrom */
            ifnull 11
            aload 0 /* this */
            aload 4 /* b */
            invokevirtual com.sun.tools.javac.code.Type.allparams:()Lcom/sun/tools/javac/util/List;
            aload 6 /* subFrom */
            invokevirtual com.sun.tools.javac.code.Type.allparams:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
            ifne 12
        11: .line 4506
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.util.List com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Type
      StackMap stack:
            iconst_1
            ireturn
        end local 6 // com.sun.tools.javac.code.Type subFrom
        end local 4 // com.sun.tools.javac.code.Type b
        12: .line 4500
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        13: .line 4509
            iconst_0
            ireturn
        end local 3 // com.sun.tools.javac.util.List bounds
        end local 2 // com.sun.tools.javac.code.Type to
        end local 1 // com.sun.tools.javac.code.Type from
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lcom/sun/tools/javac/code/Types;
            0   14     1     from  Lcom/sun/tools/javac/code/Type;
            0   14     2       to  Lcom/sun/tools/javac/code/Type;
            4   14     3   bounds  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            6   12     4        b  Lcom/sun/tools/javac/code/Type;
            7   12     6  subFrom  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      from  
      to    

  private com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> superClosure(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 4513
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 3 /* cl */
        start local 3 // com.sun.tools.javac.util.List cl
         1: .line 4514
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
        start local 4 // com.sun.tools.javac.util.List l
         2: goto 8
         3: .line 4515
      StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 2 /* s */
            aload 0 /* this */
            aload 4 /* 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.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Types.isSubtype:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 6
         4: .line 4516
            aload 0 /* this */
            aload 3 /* cl */
            aload 4 /* 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.Types.insert:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 3 /* cl */
         5: .line 4517
            goto 7
         6: .line 4518
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cl */
            aload 0 /* this */
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.superClosure:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.code.Types.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 3 /* cl */
         7: .line 4514
      StackMap locals:
      StackMap stack:
            aload 4 /* l */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* l */
      StackMap locals:
      StackMap stack:
         8: aload 4 /* l */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 3
        end local 4 // com.sun.tools.javac.util.List l
         9: .line 4521
            aload 3 /* cl */
            areturn
        end local 3 // com.sun.tools.javac.util.List cl
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/tools/javac/code/Types;
            0   10     1     t  Lcom/sun/tools/javac/code/Type;
            0   10     2     s  Lcom/sun/tools/javac/code/Type;
            1   10     3    cl  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            2    9     4     l  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     
      s     

  private boolean containsTypeEquivalent(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.code.Type s
         0: .line 4525
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 3
         1: .line 4526
            aload 0 /* this */
            aload 1 /* t */
            aload 2 /* s */
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 2
            aload 0 /* this */
            aload 2 /* s */
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types.containsType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifne 3
         2: .line 4525
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // com.sun.tools.javac.code.Type s
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Types;
            0    4     1     t  Lcom/sun/tools/javac/code/Type;
            0    4     2     s  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     
      s     

  public void adapt(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/util/ListBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type source
        start local 2 // com.sun.tools.javac.code.Type target
        start local 3 // com.sun.tools.javac.util.ListBuffer from
        start local 4 // com.sun.tools.javac.util.ListBuffer to
         0: .line 4543
            new com.sun.tools.javac.code.Types$Adapter
            dup
            aload 0 /* this */
            aload 3 /* from */
            aload 4 /* to */
            invokespecial com.sun.tools.javac.code.Types$Adapter.<init>:(Lcom/sun/tools/javac/code/Types;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/util/ListBuffer;)V
            aload 1 /* source */
            aload 2 /* target */
            invokevirtual com.sun.tools.javac.code.Types$Adapter.adapt:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)V
         1: .line 4544
            return
        end local 4 // com.sun.tools.javac.util.ListBuffer to
        end local 3 // com.sun.tools.javac.util.ListBuffer from
        end local 2 // com.sun.tools.javac.code.Type target
        end local 1 // com.sun.tools.javac.code.Type source
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/code/Types;
            0    2     1  source  Lcom/sun/tools/javac/code/Type;
            0    2     2  target  Lcom/sun/tools/javac/code/Type;
            0    2     3    from  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            0    2     4      to  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
    Exceptions:
      throws com.sun.tools.javac.code.Types$AdaptFailure
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
        Name  Flags
      source  
      target  
      from    
      to      

  private void adaptSelf(com.sun.tools.javac.code.Type, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.code.Type>);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/util/ListBuffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // com.sun.tools.javac.util.ListBuffer from
        start local 3 // com.sun.tools.javac.util.ListBuffer to
         0: .line 4657
            aload 0 /* this */
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 1 /* t */
            aload 2 /* from */
            aload 3 /* to */
            invokevirtual com.sun.tools.javac.code.Types.adapt:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/util/ListBuffer;)V
         1: .line 4658
            goto 4
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Types$AdaptFailure
         2: astore 4 /* ex */
        start local 4 // com.sun.tools.javac.code.Types$AdaptFailure ex
         3: .line 4661
            new java.lang.AssertionError
            dup
            aload 4 /* ex */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 4 // com.sun.tools.javac.code.Types$AdaptFailure ex
         4: .line 4663
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.util.ListBuffer to
        end local 2 // com.sun.tools.javac.util.ListBuffer from
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/code/Types;
            0    5     1     t  Lcom/sun/tools/javac/code/Type;
            0    5     2  from  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            0    5     3    to  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     4    ex  Lcom/sun/tools/javac/code/Types$AdaptFailure;
      Exception table:
        from    to  target  type
           0     1       2  Class com.sun.tools.javac.code.Types$AdaptFailure
    Signature: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;)V
    MethodParameters:
      Name  Flags
      t     
      from  
      to    

  private com.sun.tools.javac.code.Type rewriteQuantifiers(com.sun.tools.javac.code.Type, boolean, boolean);
    descriptor: (Lcom/sun/tools/javac/code/Type;ZZ)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type t
        start local 2 // boolean high
        start local 3 // boolean rewriteTypeVars
         0: .line 4683
            new com.sun.tools.javac.code.Types$Rewriter
            dup
            aload 0 /* this */
            iload 2 /* high */
            iload 3 /* rewriteTypeVars */
            invokespecial com.sun.tools.javac.code.Types$Rewriter.<init>:(Lcom/sun/tools/javac/code/Types;ZZ)V
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Types$Rewriter.visit:(Lcom/sun/tools/javac/code/Type;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            areturn
        end local 3 // boolean rewriteTypeVars
        end local 2 // boolean high
        end local 1 // com.sun.tools.javac.code.Type t
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/sun/tools/javac/code/Types;
            0    1     1                t  Lcom/sun/tools/javac/code/Type;
            0    1     2             high  Z
            0    1     3  rewriteTypeVars  Z
    MethodParameters:
                 Name  Flags
      t                
      high             
      rewriteTypeVars  

  private com.sun.tools.javac.code.Type$WildcardType makeExtendsWildcard(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type$TypeVar);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$TypeVar;)Lcom/sun/tools/javac/code/Type$WildcardType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type bound
        start local 2 // com.sun.tools.javac.code.Type$TypeVar formal
         0: .line 4785
            aload 1 /* bound */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            if_acmpne 6
         1: .line 4786
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
         2: .line 4787
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
         3: .line 4788
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         4: .line 4789
            aload 2 /* formal */
         5: .line 4786
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type$TypeVar;)V
            areturn
         6: .line 4791
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 1 /* bound */
         7: .line 4792
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
         8: .line 4793
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         9: .line 4794
            aload 2 /* formal */
        10: .line 4791
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type$TypeVar;)V
            areturn
        end local 2 // com.sun.tools.javac.code.Type$TypeVar formal
        end local 1 // com.sun.tools.javac.code.Type bound
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/sun/tools/javac/code/Types;
            0   11     1   bound  Lcom/sun/tools/javac/code/Type;
            0   11     2  formal  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
        Name  Flags
      bound   
      formal  

  private com.sun.tools.javac.code.Type$WildcardType makeSuperWildcard(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type$TypeVar);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$TypeVar;)Lcom/sun/tools/javac/code/Type$WildcardType;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Type bound
        start local 2 // com.sun.tools.javac.code.Type$TypeVar formal
         0: .line 4807
            aload 1 /* bound */
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 6
         1: .line 4808
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
         2: .line 4809
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
         3: .line 4810
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         4: .line 4811
            aload 2 /* formal */
         5: .line 4808
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type$TypeVar;)V
            areturn
         6: .line 4813
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 1 /* bound */
         7: .line 4814
            getstatic com.sun.tools.javac.code.BoundKind.SUPER:Lcom/sun/tools/javac/code/BoundKind;
         8: .line 4815
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
         9: .line 4816
            aload 2 /* formal */
        10: .line 4813
            invokespecial com.sun.tools.javac.code.Type$WildcardType.<init>:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/BoundKind;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/Type$TypeVar;)V
            areturn
        end local 2 // com.sun.tools.javac.code.Type$TypeVar formal
        end local 1 // com.sun.tools.javac.code.Type bound
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lcom/sun/tools/javac/code/Types;
            0   11     1   bound  Lcom/sun/tools/javac/code/Type;
            0   11     2  formal  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
        Name  Flags
      bound   
      formal  

  public com.sun.tools.javac.code.Attribute$RetentionPolicy getRetention(com.sun.tools.javac.code.Attribute$Compound);
    descriptor: (Lcom/sun/tools/javac/code/Attribute$Compound;)Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Attribute$Compound a
         0: .line 4984
            aload 0 /* this */
            aload 1 /* a */
            getfield com.sun.tools.javac.code.Attribute$Compound.type:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Types.getRetention:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            areturn
        end local 1 // com.sun.tools.javac.code.Attribute$Compound a
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
            0    1     1     a  Lcom/sun/tools/javac/code/Attribute$Compound;
    MethodParameters:
      Name  Flags
      a     

  public com.sun.tools.javac.code.Attribute$RetentionPolicy getRetention(com.sun.tools.javac.code.Symbol$TypeSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol sym
         0: .line 4988
            getstatic com.sun.tools.javac.code.Attribute$RetentionPolicy.CLASS:Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            astore 2 /* vis */
        start local 2 // com.sun.tools.javac.code.Attribute$RetentionPolicy vis
         1: .line 4989
            aload 1 /* sym */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.retentionType:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.attribute:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Attribute$Compound;
            astore 3 /* c */
        start local 3 // com.sun.tools.javac.code.Attribute$Compound c
         2: .line 4990
            aload 3 /* c */
            ifnull 9
         3: .line 4991
            aload 3 /* c */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.value:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.code.Attribute$Compound.member:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/code/Attribute;
            astore 4 /* value */
        start local 4 // com.sun.tools.javac.code.Attribute value
         4: .line 4992
            aload 4 /* value */
            ifnull 9
            aload 4 /* value */
            instanceof com.sun.tools.javac.code.Attribute$Enum
            ifeq 9
         5: .line 4993
            aload 4 /* value */
            checkcast com.sun.tools.javac.code.Attribute$Enum
            getfield com.sun.tools.javac.code.Attribute$Enum.value:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
            getfield com.sun.tools.javac.code.Symbol$VarSymbol.name:Lcom/sun/tools/javac/util/Name;
            astore 5 /* levelName */
        start local 5 // com.sun.tools.javac.util.Name levelName
         6: .line 4994
            aload 5 /* levelName */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.SOURCE:Lcom/sun/tools/javac/util/Name;
            if_acmpne 7
            getstatic com.sun.tools.javac.code.Attribute$RetentionPolicy.SOURCE:Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            astore 2 /* vis */
            goto 9
         7: .line 4995
      StackMap locals: com.sun.tools.javac.code.Types com.sun.tools.javac.code.Symbol$TypeSymbol com.sun.tools.javac.code.Attribute$RetentionPolicy com.sun.tools.javac.code.Attribute$Compound com.sun.tools.javac.code.Attribute com.sun.tools.javac.util.Name
      StackMap stack:
            aload 5 /* levelName */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.CLASS:Lcom/sun/tools/javac/util/Name;
            if_acmpne 8
            getstatic com.sun.tools.javac.code.Attribute$RetentionPolicy.CLASS:Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            astore 2 /* vis */
            goto 9
         8: .line 4996
      StackMap locals:
      StackMap stack:
            aload 5 /* levelName */
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.names:Lcom/sun/tools/javac/util/Names;
            getfield com.sun.tools.javac.util.Names.RUNTIME:Lcom/sun/tools/javac/util/Name;
            if_acmpne 9
            getstatic com.sun.tools.javac.code.Attribute$RetentionPolicy.RUNTIME:Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            astore 2 /* vis */
        end local 5 // com.sun.tools.javac.util.Name levelName
        end local 4 // com.sun.tools.javac.code.Attribute value
         9: .line 5000
      StackMap locals:
      StackMap stack:
            aload 2 /* vis */
            areturn
        end local 3 // com.sun.tools.javac.code.Attribute$Compound c
        end local 2 // com.sun.tools.javac.code.Attribute$RetentionPolicy vis
        end local 1 // com.sun.tools.javac.code.Symbol$TypeSymbol sym
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/tools/javac/code/Types;
            0   10     1        sym  Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            1   10     2        vis  Lcom/sun/tools/javac/code/Attribute$RetentionPolicy;
            2   10     3          c  Lcom/sun/tools/javac/code/Attribute$Compound;
            4    9     4      value  Lcom/sun/tools/javac/code/Attribute;
            6    9     5  levelName  Lcom/sun/tools/javac/util/Name;
    MethodParameters:
      Name  Flags
      sym   

  public com.sun.tools.javac.code.Type constantType(com.sun.tools.javac.jvm.PoolConstant$LoadableConstant);
    descriptor: (Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Types this
        start local 1 // com.sun.tools.javac.jvm.PoolConstant$LoadableConstant c
         0: .line 5194
            aload 1 /* c */
            invokeinterface com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.poolTag:()I
            tableswitch { // 3 - 17
                    3: 3
                    4: 4
                    5: 5
                    6: 6
                    7: 1
                    8: 2
                    9: 10
                   10: 10
                   11: 10
                   12: 10
                   13: 10
                   14: 10
                   15: 7
                   16: 8
                   17: 9
              default: 10
          }
         1: .line 5196
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.classType:Lcom/sun/tools/javac/code/Type;
            areturn
         2: .line 5198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
            areturn
         3: .line 5200
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.intType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         4: .line 5202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.floatType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         5: .line 5204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.longType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         6: .line 5206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.doubleType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         7: .line 5208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.methodHandleType:Lcom/sun/tools/javac/code/Type;
            areturn
         8: .line 5210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.methodTypeType:Lcom/sun/tools/javac/code/Type;
            areturn
         9: .line 5212
      StackMap locals:
      StackMap stack:
            aload 1 /* c */
            checkcast com.sun.tools.javac.code.Symbol$DynamicVarSymbol
            getfield com.sun.tools.javac.code.Symbol$DynamicVarSymbol.type:Lcom/sun/tools/javac/code/Type;
            areturn
        10: .line 5214
      StackMap locals:
      StackMap stack:
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a loadable constant: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* c */
            invokeinterface com.sun.tools.javac.jvm.PoolConstant$LoadableConstant.poolTag:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // com.sun.tools.javac.jvm.PoolConstant$LoadableConstant c
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/tools/javac/code/Types;
            0   11     1     c  Lcom/sun/tools/javac/jvm/PoolConstant$LoadableConstant;
    MethodParameters:
      Name  Flags
      c     

  public void newRound();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Types this
         0: .line 5220
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.descCache:Lcom/sun/tools/javac/code/Types$DescriptorCache;
            getfield com.sun.tools.javac.code.Types$DescriptorCache._map:Ljava/util/WeakHashMap;
            invokevirtual java.util.WeakHashMap.clear:()V
         1: .line 5221
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.isDerivedRawCache:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 5222
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.implCache:Lcom/sun/tools/javac/code/Types$ImplementationCache;
            getfield com.sun.tools.javac.code.Types$ImplementationCache._map:Ljava/util/WeakHashMap;
            invokevirtual java.util.WeakHashMap.clear:()V
         3: .line 5223
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.membersCache:Lcom/sun/tools/javac/code/Types$MembersClosureCache;
            getfield com.sun.tools.javac.code.Types$MembersClosureCache._map:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         4: .line 5224
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Types.closureCache:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         5: .line 5225
            return
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Types;

  static int[] $SWITCH_TABLE$com$sun$tools$javac$code$BoundKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 88
            getstatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.sun.tools.javac.code.BoundKind.values:()[Lcom/sun/tools/javac/code/BoundKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.SUPER:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
            invokevirtual com.sun.tools.javac.code.BoundKind.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            dup
            putstatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$BoundKind:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$com$sun$tools$javac$code$TypeTag();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 88
            getstatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic com.sun.tools.javac.code.TypeTag.values:()[Lcom/sun/tools/javac/code/TypeTag;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.ARRAY:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 11
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.BOOLEAN:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 8
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 19
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.BYTE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iconst_1
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.CHAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iconst_2
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 10
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.DEFERRED:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 18
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.DOUBLE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 7
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 21
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.FLOAT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iconst_5
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.FORALL:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 17
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.INT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 6
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.LONG:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iconst_4
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.METHOD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 12
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.MODULE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 14
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.NONE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 20
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.PACKAGE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 13
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.SHORT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            iconst_3
            iastore
        54: goto 56
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        55: pop
      StackMap locals:
      StackMap stack:
        56: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.TYPEVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 15
            iastore
        57: goto 59
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        58: pop
      StackMap locals:
      StackMap stack:
        59: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 23
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_OBJECT:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 25
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.UNINITIALIZED_THIS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 24
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.UNKNOWN:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 22
            iastore
        69: goto 71
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        70: pop
      StackMap locals:
      StackMap stack:
        71: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 9
            iastore
        72: goto 74
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        73: pop
      StackMap locals:
      StackMap stack:
        74: aload 0
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.TypeTag.ordinal:()I
            bipush 16
            iastore
        75: goto 77
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        76: pop
      StackMap locals:
      StackMap stack:
        77: aload 0
            dup
            putstatic com.sun.tools.javac.code.Types.$SWITCH_TABLE$com$sun$tools$javac$code$TypeTag:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError
          23    24      25  Class java.lang.NoSuchFieldError
          26    27      28  Class java.lang.NoSuchFieldError
          29    30      31  Class java.lang.NoSuchFieldError
          32    33      34  Class java.lang.NoSuchFieldError
          35    36      37  Class java.lang.NoSuchFieldError
          38    39      40  Class java.lang.NoSuchFieldError
          41    42      43  Class java.lang.NoSuchFieldError
          44    45      46  Class java.lang.NoSuchFieldError
          47    48      49  Class java.lang.NoSuchFieldError
          50    51      52  Class java.lang.NoSuchFieldError
          53    54      55  Class java.lang.NoSuchFieldError
          56    57      58  Class java.lang.NoSuchFieldError
          59    60      61  Class java.lang.NoSuchFieldError
          62    63      64  Class java.lang.NoSuchFieldError
          65    66      67  Class java.lang.NoSuchFieldError
          68    69      70  Class java.lang.NoSuchFieldError
          71    72      73  Class java.lang.NoSuchFieldError
          74    75      76  Class java.lang.NoSuchFieldError

  private static boolean lambda$0(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Type t1
        start local 1 // com.sun.tools.javac.code.Type t2
         0: .line 3725
            aload 0 /* t1 */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* t2 */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 1 // com.sun.tools.javac.code.Type t2
        end local 0 // com.sun.tools.javac.code.Type t1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    t1  Lcom/sun/tools/javac/code/Type;
            0    3     1    t2  Lcom/sun/tools/javac/code/Type;

  private static boolean lambda$1(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Type t
         0: .line 852
            aload 0 /* t */
            getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ireturn
        end local 0 // com.sun.tools.javac.code.Type t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     t  Lcom/sun/tools/javac/code/Type;

  private static java.lang.String lambda$2(com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Type;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 3049
            new java.lang.StringBuilder
            dup
            ldc "type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private com.sun.tools.javac.code.Types$ClosureHolder lambda$3(boolean, java.util.function.BiPredicate);
    descriptor: (ZLjava/util/function/BiPredicate;)Lcom/sun/tools/javac/code/Types$ClosureHolder;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Types this
         0: .line 3694
            new com.sun.tools.javac.code.Types$ClosureHolder
            dup
            aload 0 /* this */
            iload 1
            aload 2
            invokespecial com.sun.tools.javac.code.Types$ClosureHolder.<init>:(Lcom/sun/tools/javac/code/Types;ZLjava/util/function/BiPredicate;)V
            areturn
        end local 0 // com.sun.tools.javac.code.Types this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Types;
}
SourceFile: "Types.java"
NestMembers:
  com.sun.tools.javac.code.Types$1  com.sun.tools.javac.code.Types$10  com.sun.tools.javac.code.Types$11  com.sun.tools.javac.code.Types$12  com.sun.tools.javac.code.Types$13  com.sun.tools.javac.code.Types$14  com.sun.tools.javac.code.Types$15  com.sun.tools.javac.code.Types$16  com.sun.tools.javac.code.Types$17  com.sun.tools.javac.code.Types$18  com.sun.tools.javac.code.Types$19  com.sun.tools.javac.code.Types$2  com.sun.tools.javac.code.Types$20  com.sun.tools.javac.code.Types$21  com.sun.tools.javac.code.Types$22  com.sun.tools.javac.code.Types$22$1  com.sun.tools.javac.code.Types$22$2  com.sun.tools.javac.code.Types$23  com.sun.tools.javac.code.Types$24  com.sun.tools.javac.code.Types$3  com.sun.tools.javac.code.Types$4  com.sun.tools.javac.code.Types$5  com.sun.tools.javac.code.Types$6  com.sun.tools.javac.code.Types$7  com.sun.tools.javac.code.Types$8  com.sun.tools.javac.code.Types$9  com.sun.tools.javac.code.Types$AdaptFailure  com.sun.tools.javac.code.Types$Adapter  com.sun.tools.javac.code.Types$CandidatesCache  com.sun.tools.javac.code.Types$CandidatesCache$Entry  com.sun.tools.javac.code.Types$CaptureScanner  com.sun.tools.javac.code.Types$ClosureHolder  com.sun.tools.javac.code.Types$DefaultSymbolVisitor  com.sun.tools.javac.code.Types$DefaultTypeVisitor  com.sun.tools.javac.code.Types$DescriptorCache  com.sun.tools.javac.code.Types$DescriptorCache$1  com.sun.tools.javac.code.Types$DescriptorCache$1  com.sun.tools.javac.code.Types$DescriptorCache$Entry  com.sun.tools.javac.code.Types$DescriptorCache$FunctionDescriptor  com.sun.tools.javac.code.Types$DescriptorFilter  com.sun.tools.javac.code.Types$FunctionDescriptorLookupError  com.sun.tools.javac.code.Types$HasSameArgs  com.sun.tools.javac.code.Types$HashCodeVisitor  com.sun.tools.javac.code.Types$ImplementationCache  com.sun.tools.javac.code.Types$ImplementationCache$Entry  com.sun.tools.javac.code.Types$MapVisitor  com.sun.tools.javac.code.Types$MembersClosureCache  com.sun.tools.javac.code.Types$MembersClosureCache$MembersScope  com.sun.tools.javac.code.Types$MethodFilter  com.sun.tools.javac.code.Types$MostSpecificReturnCheck  com.sun.tools.javac.code.Types$MostSpecificReturnCheck$1  com.sun.tools.javac.code.Types$MostSpecificReturnCheck$2  com.sun.tools.javac.code.Types$ProjectionKind  com.sun.tools.javac.code.Types$ProjectionKind$1  com.sun.tools.javac.code.Types$ProjectionKind$2  com.sun.tools.javac.code.Types$Rewriter  com.sun.tools.javac.code.Types$SignatureGenerator  com.sun.tools.javac.code.Types$SignatureGenerator$InvalidSignatureException  com.sun.tools.javac.code.Types$SimpleVisitor  com.sun.tools.javac.code.Types$Subst  com.sun.tools.javac.code.Types$Subst$1  com.sun.tools.javac.code.Types$Subst$2  com.sun.tools.javac.code.Types$TypeMapping  com.sun.tools.javac.code.Types$TypePair  com.sun.tools.javac.code.Types$TypeProjection  com.sun.tools.javac.code.Types$TypeProjection$1  com.sun.tools.javac.code.Types$TypeProjection$2  com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection  com.sun.tools.javac.code.Types$TypeProjection$TypeArgumentProjection$1  com.sun.tools.javac.code.Types$TypeRelation  com.sun.tools.javac.code.Types$UnaryVisitor  com.sun.tools.javac.code.Types$UniqueType
InnerClasses:
  public Compound = com.sun.tools.javac.code.Attribute$Compound of com.sun.tools.javac.code.Attribute
  public Enum = com.sun.tools.javac.code.Attribute$Enum of com.sun.tools.javac.code.Attribute
  public final RetentionPolicy = com.sun.tools.javac.code.Attribute$RetentionPolicy of com.sun.tools.javac.code.Attribute
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public final LintCategory = com.sun.tools.javac.code.Lint$LintCategory of com.sun.tools.javac.code.Lint
  public CompoundScope = com.sun.tools.javac.code.Scope$CompoundScope of com.sun.tools.javac.code.Scope
  public final LookupKind = com.sun.tools.javac.code.Scope$LookupKind of com.sun.tools.javac.code.Scope
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public final Feature = com.sun.tools.javac.code.Source$Feature of com.sun.tools.javac.code.Source
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public abstract Completer = com.sun.tools.javac.code.Symbol$Completer of com.sun.tools.javac.code.Symbol
  public CompletionFailure = com.sun.tools.javac.code.Symbol$CompletionFailure of com.sun.tools.javac.code.Symbol
  public DynamicVarSymbol = com.sun.tools.javac.code.Symbol$DynamicVarSymbol of com.sun.tools.javac.code.Symbol
  public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
  public ArrayType = com.sun.tools.javac.code.Type$ArrayType 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 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 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 abstract InferenceBound = com.sun.tools.javac.code.Type$UndetVar$InferenceBound of com.sun.tools.javac.code.Type$UndetVar
  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
  com.sun.tools.javac.code.Types$1
  com.sun.tools.javac.code.Types$10
  com.sun.tools.javac.code.Types$11
  com.sun.tools.javac.code.Types$12
  com.sun.tools.javac.code.Types$13
  com.sun.tools.javac.code.Types$14
  com.sun.tools.javac.code.Types$15
  com.sun.tools.javac.code.Types$16
  com.sun.tools.javac.code.Types$17
  com.sun.tools.javac.code.Types$18
  com.sun.tools.javac.code.Types$19
  com.sun.tools.javac.code.Types$2
  com.sun.tools.javac.code.Types$20
  com.sun.tools.javac.code.Types$21
  com.sun.tools.javac.code.Types$22
  com.sun.tools.javac.code.Types$23
  com.sun.tools.javac.code.Types$24
  com.sun.tools.javac.code.Types$3
  com.sun.tools.javac.code.Types$4
  com.sun.tools.javac.code.Types$5
  com.sun.tools.javac.code.Types$6
  com.sun.tools.javac.code.Types$7
  com.sun.tools.javac.code.Types$8
  com.sun.tools.javac.code.Types$9
  public AdaptFailure = com.sun.tools.javac.code.Types$AdaptFailure of com.sun.tools.javac.code.Types
  Adapter = com.sun.tools.javac.code.Types$Adapter of com.sun.tools.javac.code.Types
  public CandidatesCache = com.sun.tools.javac.code.Types$CandidatesCache of com.sun.tools.javac.code.Types
  Entry = com.sun.tools.javac.code.Types$CandidatesCache$Entry of com.sun.tools.javac.code.Types$CandidatesCache
  CaptureScanner = com.sun.tools.javac.code.Types$CaptureScanner of com.sun.tools.javac.code.Types
  ClosureHolder = com.sun.tools.javac.code.Types$ClosureHolder of com.sun.tools.javac.code.Types
  public abstract DefaultSymbolVisitor = com.sun.tools.javac.code.Types$DefaultSymbolVisitor of com.sun.tools.javac.code.Types
  public abstract DefaultTypeVisitor = com.sun.tools.javac.code.Types$DefaultTypeVisitor of com.sun.tools.javac.code.Types
  DescriptorCache = com.sun.tools.javac.code.Types$DescriptorCache of com.sun.tools.javac.code.Types
  FunctionDescriptor = com.sun.tools.javac.code.Types$DescriptorCache$FunctionDescriptor of com.sun.tools.javac.code.Types$DescriptorCache
  DescriptorFilter = com.sun.tools.javac.code.Types$DescriptorFilter of com.sun.tools.javac.code.Types
  public FunctionDescriptorLookupError = com.sun.tools.javac.code.Types$FunctionDescriptorLookupError of com.sun.tools.javac.code.Types
  private HasSameArgs = com.sun.tools.javac.code.Types$HasSameArgs of com.sun.tools.javac.code.Types
  private HashCodeVisitor = com.sun.tools.javac.code.Types$HashCodeVisitor of com.sun.tools.javac.code.Types
  ImplementationCache = com.sun.tools.javac.code.Types$ImplementationCache of com.sun.tools.javac.code.Types
  public MapVisitor = com.sun.tools.javac.code.Types$MapVisitor of com.sun.tools.javac.code.Types
  MembersClosureCache = com.sun.tools.javac.code.Types$MembersClosureCache of com.sun.tools.javac.code.Types
  MembersScope = com.sun.tools.javac.code.Types$MembersClosureCache$MembersScope of com.sun.tools.javac.code.Types$MembersClosureCache
  private MethodFilter = com.sun.tools.javac.code.Types$MethodFilter of com.sun.tools.javac.code.Types
  public abstract MostSpecificReturnCheck = com.sun.tools.javac.code.Types$MostSpecificReturnCheck of com.sun.tools.javac.code.Types
  abstract ProjectionKind = com.sun.tools.javac.code.Types$ProjectionKind of com.sun.tools.javac.code.Types
  Rewriter = com.sun.tools.javac.code.Types$Rewriter of com.sun.tools.javac.code.Types
  public abstract SignatureGenerator = com.sun.tools.javac.code.Types$SignatureGenerator of com.sun.tools.javac.code.Types
  public abstract SimpleVisitor = com.sun.tools.javac.code.Types$SimpleVisitor of com.sun.tools.javac.code.Types
  private Subst = com.sun.tools.javac.code.Types$Subst of com.sun.tools.javac.code.Types
  public TypeMapping = com.sun.tools.javac.code.Types$TypeMapping of com.sun.tools.javac.code.Types
  TypePair = com.sun.tools.javac.code.Types$TypePair of com.sun.tools.javac.code.Types
  TypeProjection = com.sun.tools.javac.code.Types$TypeProjection of com.sun.tools.javac.code.Types
  public abstract TypeRelation = com.sun.tools.javac.code.Types$TypeRelation of com.sun.tools.javac.code.Types
  public abstract UnaryVisitor = com.sun.tools.javac.code.Types$UnaryVisitor of com.sun.tools.javac.code.Types
  public UniqueType = com.sun.tools.javac.code.Types$UniqueType of com.sun.tools.javac.code.Types
  public abstract LoadableConstant = com.sun.tools.javac.jvm.PoolConstant$LoadableConstant of com.sun.tools.javac.jvm.PoolConstant
  public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
  public Key = com.sun.tools.javac.util.Context$Key of com.sun.tools.javac.util.Context
  public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
  public Factory = com.sun.tools.javac.util.JCDiagnostic$Factory of com.sun.tools.javac.util.JCDiagnostic
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Characteristics = java.util.stream.Collector$Characteristics of java.util.stream.Collector
  public final Kind = javax.tools.JavaFileObject$Kind of javax.tools.JavaFileObject