public class com.sun.tools.javac.model.JavacTypes implements javax.lang.model.util.Types
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.model.JavacTypes
  super_class: java.lang.Object
{
  private final com.sun.tools.javac.code.Symtab syms;
    descriptor: Lcom/sun/tools/javac/code/Symtab;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.tools.javac.code.Types types;
    descriptor: Lcom/sun/tools/javac/code/Types;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.util.Set<javax.lang.model.type.TypeKind> EXEC_OR_PKG_OR_MOD;
    descriptor: Ljava/util/Set;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Set<Ljavax/lang/model/type/TypeKind;>;

  private static volatile int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 305
            getstatic javax.lang.model.type.TypeKind.EXECUTABLE:Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.PACKAGE:Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.MODULE:Ljavax/lang/model/type/TypeKind;
            invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
         1: .line 304
            putstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
         2: .line 305
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.sun.tools.javac.model.JavacTypes instance(com.sun.tools.javac.util.Context);
    descriptor: (Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/model/JavacTypes;
    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 60
            aload 0 /* context */
            ldc Lcom/sun/tools/javac/model/JavacTypes;
            invokevirtual com.sun.tools.javac.util.Context.get:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.model.JavacTypes
            astore 1 /* instance */
        start local 1 // com.sun.tools.javac.model.JavacTypes instance
         1: .line 61
            aload 1 /* instance */
            ifnonnull 3
         2: .line 62
            new com.sun.tools.javac.model.JavacTypes
            dup
            aload 0 /* context */
            invokespecial com.sun.tools.javac.model.JavacTypes.<init>:(Lcom/sun/tools/javac/util/Context;)V
            astore 1 /* instance */
         3: .line 63
      StackMap locals: com.sun.tools.javac.model.JavacTypes
      StackMap stack:
            aload 1 /* instance */
            areturn
        end local 1 // com.sun.tools.javac.model.JavacTypes 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/model/JavacTypes;
    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=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // com.sun.tools.javac.util.Context context
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 67
            aload 1 /* context */
            ldc Lcom/sun/tools/javac/model/JavacTypes;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.util.Context.put:(Ljava/lang/Class;Ljava/lang/Object;)V
         2: .line 68
            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.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
         3: .line 69
            aload 0 /* this */
            aload 1 /* context */
            invokestatic com.sun.tools.javac.code.Types.instance:(Lcom/sun/tools/javac/util/Context;)Lcom/sun/tools/javac/code/Types;
            putfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
         4: .line 70
            return
        end local 1 // com.sun.tools.javac.util.Context context
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/tools/javac/model/JavacTypes;
            0    5     1  context  Lcom/sun/tools/javac/util/Context;
    MethodParameters:
         Name  Flags
      context  

  public javax.lang.model.element.Element asElement(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/element/Element;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 74
            invokestatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 13 - 21
                   13: 1
                   14: 1
                   15: 1
                   16: 3
                   17: 3
                   18: 3
                   19: 3
                   20: 3
                   21: 1
              default: 3
          }
         1: .line 79
      StackMap locals:
      StackMap stack:
            ldc Lcom/sun/tools/javac/code/Type;
            aload 1 /* t */
            invokestatic com.sun.tools.javac.model.JavacTypes.cast:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* type */
        start local 2 // com.sun.tools.javac.code.Type type
         2: .line 80
            aload 2 /* type */
            invokevirtual com.sun.tools.javac.code.Type.asElement:()Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            areturn
        end local 2 // com.sun.tools.javac.code.Type type
         3: .line 82
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    4     1     t  Ljavax/lang/model/type/TypeMirror;
            2    3     2  type  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public boolean isSameType(javax.lang.model.type.TypeMirror, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t1
        start local 2 // javax.lang.model.type.TypeMirror t2
         0: .line 88
            aload 1 /* t1 */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.WILDCARD:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 1
            aload 2 /* t2 */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.WILDCARD:Ljavax/lang/model/type/TypeKind;
            if_acmpne 2
         1: .line 89
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 91
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t1 */
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* t2 */
            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
            ireturn
        end local 2 // javax.lang.model.type.TypeMirror t2
        end local 1 // javax.lang.model.type.TypeMirror t1
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1    t1  Ljavax/lang/model/type/TypeMirror;
            0    3     2    t2  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      t1    
      t2    

  public boolean isSubtype(javax.lang.model.type.TypeMirror, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t1
        start local 2 // javax.lang.model.type.TypeMirror t2
         0: .line 96
            aload 0 /* this */
            aload 1 /* t1 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         1: .line 97
            aload 0 /* this */
            aload 2 /* t2 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         2: .line 98
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t1 */
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* t2 */
            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
            ireturn
        end local 2 // javax.lang.model.type.TypeMirror t2
        end local 1 // javax.lang.model.type.TypeMirror t1
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1    t1  Ljavax/lang/model/type/TypeMirror;
            0    3     2    t2  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      t1    
      t2    

  public boolean isAssignable(javax.lang.model.type.TypeMirror, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t1
        start local 2 // javax.lang.model.type.TypeMirror t2
         0: .line 103
            aload 0 /* this */
            aload 1 /* t1 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         1: .line 104
            aload 0 /* this */
            aload 2 /* t2 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         2: .line 105
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t1 */
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* t2 */
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.isAssignable:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // javax.lang.model.type.TypeMirror t2
        end local 1 // javax.lang.model.type.TypeMirror t1
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1    t1  Ljavax/lang/model/type/TypeMirror;
            0    3     2    t2  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      t1    
      t2    

  public boolean contains(javax.lang.model.type.TypeMirror, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t1
        start local 2 // javax.lang.model.type.TypeMirror t2
         0: .line 110
            aload 0 /* this */
            aload 1 /* t1 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         1: .line 111
            aload 0 /* this */
            aload 2 /* t2 */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         2: .line 112
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t1 */
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* t2 */
            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
            ireturn
        end local 2 // javax.lang.model.type.TypeMirror t2
        end local 1 // javax.lang.model.type.TypeMirror t1
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1    t1  Ljavax/lang/model/type/TypeMirror;
            0    3     2    t2  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      t1    
      t2    

  public boolean isSubsignature(javax.lang.model.type.ExecutableType, javax.lang.model.type.ExecutableType);
    descriptor: (Ljavax/lang/model/type/ExecutableType;Ljavax/lang/model/type/ExecutableType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.ExecutableType m1
        start local 2 // javax.lang.model.type.ExecutableType m2
         0: .line 117
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* m1 */
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* m2 */
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.isSubSignature:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 2 // javax.lang.model.type.ExecutableType m2
        end local 1 // javax.lang.model.type.ExecutableType m1
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    1     1    m1  Ljavax/lang/model/type/ExecutableType;
            0    1     2    m2  Ljavax/lang/model/type/ExecutableType;
    MethodParameters:
      Name  Flags
      m1    
      m2    

  public java.util.List<com.sun.tools.javac.code.Type> directSupertypes(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 122
            aload 0 /* this */
            aload 1 /* t */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         1: .line 123
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type
            astore 2 /* ty */
        start local 2 // com.sun.tools.javac.code.Type ty
         2: .line 124
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 2 /* ty */
            invokevirtual com.sun.tools.javac.code.Types.directSupertypes:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
         3: .line 125
            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/Type.stripMetadataIfNeeded()Lcom/sun/tools/javac/code/Type; (5)
                  (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         4: .line 126
            invokestatic java.util.stream.Collectors.toList:()Ljava/util/stream/Collector;
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
            checkcast java.util.List
         5: .line 124
            areturn
        end local 2 // com.sun.tools.javac.code.Type ty
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    6     1     t  Ljavax/lang/model/type/TypeMirror;
            2    6     2    ty  Lcom/sun/tools/javac/code/Type;
    Signature: (Ljavax/lang/model/type/TypeMirror;)Ljava/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      t     

  public javax.lang.model.type.TypeMirror erasure(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 131
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            astore 2 /* kind */
        start local 2 // javax.lang.model.type.TypeKind kind
         1: .line 132
            aload 2 /* kind */
            getstatic javax.lang.model.type.TypeKind.PACKAGE:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 2
            aload 2 /* kind */
            getstatic javax.lang.model.type.TypeKind.MODULE:Ljavax/lang/model/type/TypeKind;
            if_acmpne 3
         2: .line 133
      StackMap locals: javax.lang.model.type.TypeKind
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t */
            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.Type.stripMetadataIfNeeded:()Lcom/sun/tools/javac/code/Type;
            areturn
        end local 2 // javax.lang.model.type.TypeKind kind
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    4     1     t  Ljavax/lang/model/type/TypeMirror;
            1    4     2  kind  Ljavax/lang/model/type/TypeKind;
    MethodParameters:
      Name  Flags
      t     

  public javax.lang.model.element.TypeElement boxedClass(javax.lang.model.type.PrimitiveType);
    descriptor: (Ljavax/lang/model/type/PrimitiveType;)Ljavax/lang/model/element/TypeElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.PrimitiveType p
         0: .line 139
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* p */
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.boxedClass:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            areturn
        end local 1 // javax.lang.model.type.PrimitiveType p
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    1     1     p  Ljavax/lang/model/type/PrimitiveType;
    MethodParameters:
      Name  Flags
      p     

  public javax.lang.model.type.PrimitiveType unboxedType(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/PrimitiveType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 144
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            if_acmpeq 2
         1: .line 145
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t */
            checkcast com.sun.tools.javac.code.Type
            invokevirtual com.sun.tools.javac.code.Types.unboxedType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* unboxed */
        start local 2 // com.sun.tools.javac.code.Type unboxed
         3: .line 147
            aload 2 /* unboxed */
            invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
            ifne 5
         4: .line 148
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 149
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 2 /* unboxed */
            checkcast javax.lang.model.type.PrimitiveType
            areturn
        end local 2 // com.sun.tools.javac.code.Type unboxed
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/sun/tools/javac/model/JavacTypes;
            0    6     1        t  Ljavax/lang/model/type/TypeMirror;
            3    6     2  unboxed  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t     

  public javax.lang.model.type.TypeMirror capture(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
         0: .line 154
            aload 0 /* this */
            aload 1 /* t */
            getstatic com.sun.tools.javac.model.JavacTypes.EXEC_OR_PKG_OR_MOD:Ljava/util/Set;
            invokevirtual com.sun.tools.javac.model.JavacTypes.validateTypeNotIn:(Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
         1: .line 155
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 1 /* t */
            checkcast com.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;
            invokevirtual com.sun.tools.javac.code.Type.stripMetadataIfNeeded:()Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    2     1     t  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
      Name  Flags
      t     

  public javax.lang.model.type.PrimitiveType getPrimitiveType(javax.lang.model.type.TypeKind);
    descriptor: (Ljavax/lang/model/type/TypeKind;)Ljavax/lang/model/type/PrimitiveType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeKind kind
         0: .line 160
            invokestatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 1 /* kind */
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 1 - 8
                    1: 1
                    2: 2
                    3: 3
                    4: 4
                    5: 5
                    6: 6
                    7: 7
                    8: 8
              default: 9
          }
         1: .line 161
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.booleanType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         2: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.byteType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         3: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.shortType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         4: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.intType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         5: .line 165
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.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 166
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.charType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         7: .line 167
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.floatType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         8: .line 168
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.doubleType:Lcom/sun/tools/javac/code/Type$JCPrimitiveType;
            areturn
         9: .line 170
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Not a primitive type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* kind */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // javax.lang.model.type.TypeKind kind
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0   10     1  kind  Ljavax/lang/model/type/TypeKind;
    MethodParameters:
      Name  Flags
      kind  

  public javax.lang.model.type.NullType getNullType();
    descriptor: ()Ljavax/lang/model/type/NullType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.model.JavacTypes this
         0: .line 176
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            checkcast javax.lang.model.type.NullType
            areturn
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/model/JavacTypes;

  public javax.lang.model.type.NoType getNoType(javax.lang.model.type.TypeKind);
    descriptor: (Ljavax/lang/model/type/TypeKind;)Ljavax/lang/model/type/NoType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeKind kind
         0: .line 181
            invokestatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 1 /* kind */
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 9 - 10
                    9: 1
                   10: 2
              default: 3
          }
         1: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.voidType:Lcom/sun/tools/javac/code/Type$JCVoidType;
            areturn
         2: .line 183
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            areturn
         3: .line 185
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* kind */
            invokevirtual javax.lang.model.type.TypeKind.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // javax.lang.model.type.TypeKind kind
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/model/JavacTypes;
            0    4     1  kind  Ljavax/lang/model/type/TypeKind;
    MethodParameters:
      Name  Flags
      kind  

  public javax.lang.model.type.ArrayType getArrayType(javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/ArrayType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror componentType
         0: .line 191
            invokestatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 1 /* componentType */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            lookupswitch { // 5
                    9: 1
                   16: 1
                   17: 1
                   18: 1
                   22: 1
              default: 2
          }
         1: .line 197
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* componentType */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 199
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Type$ArrayType
            dup
            aload 1 /* componentType */
            checkcast com.sun.tools.javac.code.Type
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.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 // javax.lang.model.type.TypeMirror componentType
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1  componentType  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
               Name  Flags
      componentType  

  public javax.lang.model.type.WildcardType getWildcardType(javax.lang.model.type.TypeMirror, javax.lang.model.type.TypeMirror);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/WildcardType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror extendsBound
        start local 2 // javax.lang.model.type.TypeMirror superBound
         0: .line 207
            aload 1 /* extendsBound */
            ifnonnull 4
            aload 2 /* superBound */
            ifnonnull 4
         1: .line 208
            getstatic com.sun.tools.javac.code.BoundKind.UNBOUND:Lcom/sun/tools/javac/code/BoundKind;
            astore 3 /* bkind */
        start local 3 // com.sun.tools.javac.code.BoundKind bkind
         2: .line 209
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
            astore 4 /* bound */
        start local 4 // com.sun.tools.javac.code.Type bound
         3: .line 210
            goto 15
        end local 4 // com.sun.tools.javac.code.Type bound
        end local 3 // com.sun.tools.javac.code.BoundKind bkind
      StackMap locals:
      StackMap stack:
         4: aload 2 /* superBound */
            ifnonnull 8
         5: .line 211
            getstatic com.sun.tools.javac.code.BoundKind.EXTENDS:Lcom/sun/tools/javac/code/BoundKind;
            astore 3 /* bkind */
        start local 3 // com.sun.tools.javac.code.BoundKind bkind
         6: .line 212
            aload 1 /* extendsBound */
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* bound */
        start local 4 // com.sun.tools.javac.code.Type bound
         7: .line 213
            goto 15
        end local 4 // com.sun.tools.javac.code.Type bound
        end local 3 // com.sun.tools.javac.code.BoundKind bkind
      StackMap locals:
      StackMap stack:
         8: aload 1 /* extendsBound */
            ifnonnull 12
         9: .line 214
            getstatic com.sun.tools.javac.code.BoundKind.SUPER:Lcom/sun/tools/javac/code/BoundKind;
            astore 3 /* bkind */
        start local 3 // com.sun.tools.javac.code.BoundKind bkind
        10: .line 215
            aload 2 /* superBound */
            checkcast com.sun.tools.javac.code.Type
            astore 4 /* bound */
        start local 4 // com.sun.tools.javac.code.Type bound
        11: .line 216
            goto 15
        end local 4 // com.sun.tools.javac.code.Type bound
        end local 3 // com.sun.tools.javac.code.BoundKind bkind
        12: .line 217
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
        13: .line 218
            ldc "Extends and super bounds cannot both be provided"
        14: .line 217
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        start local 3 // com.sun.tools.javac.code.BoundKind bkind
        start local 4 // com.sun.tools.javac.code.Type bound
        15: .line 220
      StackMap locals: com.sun.tools.javac.code.BoundKind com.sun.tools.javac.code.Type
      StackMap stack:
            invokestatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:()[I
            aload 4 /* bound */
            invokevirtual com.sun.tools.javac.code.Type.getKind:()Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iaload
            tableswitch { // 12 - 15
                   12: 16
                   13: 16
                   14: 16
                   15: 16
              default: 17
          }
        16: .line 225
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.code.Type$WildcardType
            dup
            aload 4 /* bound */
            aload 3 /* bkind */
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.boundClass:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            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
            areturn
        17: .line 227
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            aload 4 /* bound */
            invokevirtual com.sun.tools.javac.code.Type.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // com.sun.tools.javac.code.Type bound
        end local 3 // com.sun.tools.javac.code.BoundKind bkind
        end local 2 // javax.lang.model.type.TypeMirror superBound
        end local 1 // javax.lang.model.type.TypeMirror extendsBound
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lcom/sun/tools/javac/model/JavacTypes;
            0   18     1  extendsBound  Ljavax/lang/model/type/TypeMirror;
            0   18     2    superBound  Ljavax/lang/model/type/TypeMirror;
            2    4     3         bkind  Lcom/sun/tools/javac/code/BoundKind;
            6    8     3         bkind  Lcom/sun/tools/javac/code/BoundKind;
           10   12     3         bkind  Lcom/sun/tools/javac/code/BoundKind;
           15   18     3         bkind  Lcom/sun/tools/javac/code/BoundKind;
            3    4     4         bound  Lcom/sun/tools/javac/code/Type;
            7    8     4         bound  Lcom/sun/tools/javac/code/Type;
           11   12     4         bound  Lcom/sun/tools/javac/code/Type;
           15   18     4         bound  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
              Name  Flags
      extendsBound  
      superBound    

  public javax.lang.model.type.DeclaredType getDeclaredType(javax.lang.model.element.TypeElement, javax.lang.model.type.TypeMirror[]);
    descriptor: (Ljavax/lang/model/element/TypeElement;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.element.TypeElement typeElem
        start local 2 // javax.lang.model.type.TypeMirror[] typeArgs
         0: .line 234
            aload 1 /* typeElem */
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 3 /* sym */
        start local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         1: .line 236
            aload 2 /* typeArgs */
            arraylength
            ifne 3
         2: .line 237
            aload 3 /* sym */
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.erasure:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
            checkcast javax.lang.model.type.DeclaredType
            areturn
         3: .line 238
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isParameterized:()Z
            ifeq 5
         4: .line 239
            new java.lang.IllegalArgumentException
            dup
            aload 3 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getEnclosingType:()Lcom/sun/tools/javac/code/Type;
            aload 3 /* sym */
            aload 2 /* typeArgs */
            invokevirtual com.sun.tools.javac.model.JavacTypes.getDeclaredType0:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
            areturn
        end local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 2 // javax.lang.model.type.TypeMirror[] typeArgs
        end local 1 // javax.lang.model.element.TypeElement typeElem
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/tools/javac/model/JavacTypes;
            0    6     1  typeElem  Ljavax/lang/model/element/TypeElement;
            0    6     2  typeArgs  [Ljavax/lang/model/type/TypeMirror;
            1    6     3       sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    MethodParameters:
          Name  Flags
      typeElem  
      typeArgs  

  public javax.lang.model.type.DeclaredType getDeclaredType(javax.lang.model.type.DeclaredType, javax.lang.model.element.TypeElement, javax.lang.model.type.TypeMirror[]);
    descriptor: (Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/TypeElement;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.DeclaredType enclosing
        start local 2 // javax.lang.model.element.TypeElement typeElem
        start local 3 // javax.lang.model.type.TypeMirror[] typeArgs
         0: .line 248
            aload 1 /* enclosing */
            ifnonnull 2
         1: .line 249
            aload 0 /* this */
            aload 2 /* typeElem */
            aload 3 /* typeArgs */
            invokevirtual com.sun.tools.javac.model.JavacTypes.getDeclaredType:(Ljavax/lang/model/element/TypeElement;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
            areturn
         2: .line 251
      StackMap locals:
      StackMap stack:
            aload 2 /* typeElem */
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 4 /* sym */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
         3: .line 252
            aload 1 /* enclosing */
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* outer */
        start local 5 // com.sun.tools.javac.code.Type outer
         4: .line 254
            aload 5 /* outer */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 4 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.code.Symbol.enclClass:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            if_acmpeq 6
         5: .line 255
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* enclosing */
            invokeinterface javax.lang.model.type.DeclaredType.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 256
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Type
      StackMap stack:
            aload 5 /* outer */
            invokevirtual com.sun.tools.javac.code.Type.isParameterized:()Z
            ifne 8
         7: .line 257
            aload 0 /* this */
            aload 2 /* typeElem */
            aload 3 /* typeArgs */
            invokevirtual com.sun.tools.javac.model.JavacTypes.getDeclaredType:(Ljavax/lang/model/element/TypeElement;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
            areturn
         8: .line 259
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* outer */
            aload 4 /* sym */
            aload 3 /* typeArgs */
            invokevirtual com.sun.tools.javac.model.JavacTypes.getDeclaredType0:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
            areturn
        end local 5 // com.sun.tools.javac.code.Type outer
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 3 // javax.lang.model.type.TypeMirror[] typeArgs
        end local 2 // javax.lang.model.element.TypeElement typeElem
        end local 1 // javax.lang.model.type.DeclaredType enclosing
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/sun/tools/javac/model/JavacTypes;
            0    9     1  enclosing  Ljavax/lang/model/type/DeclaredType;
            0    9     2   typeElem  Ljavax/lang/model/element/TypeElement;
            0    9     3   typeArgs  [Ljavax/lang/model/type/TypeMirror;
            3    9     4        sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            4    9     5      outer  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
           Name  Flags
      enclosing  
      typeElem   
      typeArgs   

  private javax.lang.model.type.DeclaredType getDeclaredType0(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol$ClassSymbol, javax.lang.model.type.TypeMirror[]);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;[Ljavax/lang/model/type/TypeMirror;)Ljavax/lang/model/type/DeclaredType;
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // com.sun.tools.javac.code.Type outer
        start local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        start local 3 // javax.lang.model.type.TypeMirror[] typeArgs
         0: .line 265
            aload 3 /* typeArgs */
            arraylength
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getTypeArguments:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.length:()I
            if_icmpeq 4
         1: .line 266
            new java.lang.IllegalArgumentException
            dup
         2: .line 267
            ldc "Incorrect number of type arguments"
         3: .line 266
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 269
      StackMap locals:
      StackMap stack:
            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
         5: .line 270
            aload 3 /* typeArgs */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 11
      StackMap locals: com.sun.tools.javac.model.JavacTypes com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol javax.lang.model.type.TypeMirror[] com.sun.tools.javac.util.ListBuffer top int int javax.lang.model.type.TypeMirror[]
      StackMap stack:
         6: aload 8
            iload 6
            aaload
            astore 5 /* t */
        start local 5 // javax.lang.model.type.TypeMirror t
         7: .line 271
            aload 5 /* t */
            instanceof javax.lang.model.type.ReferenceType
            ifne 9
            aload 5 /* t */
            instanceof javax.lang.model.type.WildcardType
            ifne 9
         8: .line 272
            new java.lang.IllegalArgumentException
            dup
            aload 5 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 273
      StackMap locals: com.sun.tools.javac.model.JavacTypes com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol javax.lang.model.type.TypeMirror[] com.sun.tools.javac.util.ListBuffer javax.lang.model.type.TypeMirror int int javax.lang.model.type.TypeMirror[]
      StackMap stack:
            aload 4 /* targs */
            aload 5 /* t */
            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
        end local 5 // javax.lang.model.type.TypeMirror t
        10: .line 270
            iinc 6 1
      StackMap locals: com.sun.tools.javac.model.JavacTypes com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol$ClassSymbol javax.lang.model.type.TypeMirror[] com.sun.tools.javac.util.ListBuffer top int int javax.lang.model.type.TypeMirror[]
      StackMap stack:
        11: iload 6
            iload 7
            if_icmplt 6
        12: .line 277
            new com.sun.tools.javac.code.Type$ClassType
            dup
            aload 1 /* outer */
            aload 4 /* targs */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            aload 2 /* sym */
            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 4 // com.sun.tools.javac.util.ListBuffer targs
        end local 3 // javax.lang.model.type.TypeMirror[] typeArgs
        end local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 1 // com.sun.tools.javac.code.Type outer
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/tools/javac/model/JavacTypes;
            0   13     1     outer  Lcom/sun/tools/javac/code/Type;
            0   13     2       sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0   13     3  typeArgs  [Ljavax/lang/model/type/TypeMirror;
            5   13     4     targs  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            7   10     5         t  Ljavax/lang/model/type/TypeMirror;
    MethodParameters:
          Name  Flags
      outer     
      sym       
      typeArgs  

  public javax.lang.model.type.TypeMirror asMemberOf(javax.lang.model.type.DeclaredType, javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/type/DeclaredType;Ljavax/lang/model/element/Element;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.DeclaredType containing
        start local 2 // javax.lang.model.element.Element element
         0: .line 296
            aload 1 /* containing */
            checkcast com.sun.tools.javac.code.Type
            astore 3 /* site */
        start local 3 // com.sun.tools.javac.code.Type site
         1: .line 297
            aload 2 /* element */
            checkcast com.sun.tools.javac.code.Symbol
            astore 4 /* sym */
        start local 4 // com.sun.tools.javac.code.Symbol sym
         2: .line 298
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 3 /* site */
            aload 4 /* sym */
            invokevirtual com.sun.tools.javac.code.Symbol.getEnclosingElement:()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;
            ifnonnull 4
         3: .line 299
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 4 /* sym */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* site */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 300
      StackMap locals: com.sun.tools.javac.code.Type com.sun.tools.javac.code.Symbol
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 3 /* site */
            aload 4 /* sym */
            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;
            areturn
        end local 4 // com.sun.tools.javac.code.Symbol sym
        end local 3 // com.sun.tools.javac.code.Type site
        end local 2 // javax.lang.model.element.Element element
        end local 1 // javax.lang.model.type.DeclaredType containing
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/tools/javac/model/JavacTypes;
            0    5     1  containing  Ljavax/lang/model/type/DeclaredType;
            0    5     2     element  Ljavax/lang/model/element/Element;
            1    5     3        site  Lcom/sun/tools/javac/code/Type;
            2    5     4         sym  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
            Name  Flags
      containing  
      element     

  private void validateTypeNotIn(javax.lang.model.type.TypeMirror, java.util.Set<javax.lang.model.type.TypeKind>);
    descriptor: (Ljavax/lang/model/type/TypeMirror;Ljava/util/Set;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.type.TypeMirror t
        start local 2 // java.util.Set invalidKinds
         0: .line 311
            aload 2 /* invalidKinds */
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.getKind:()Ljavax/lang/model/type/TypeKind;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 312
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* t */
            invokeinterface javax.lang.model.type.TypeMirror.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 313
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set invalidKinds
        end local 1 // javax.lang.model.type.TypeMirror t
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/sun/tools/javac/model/JavacTypes;
            0    3     1             t  Ljavax/lang/model/type/TypeMirror;
            0    3     2  invalidKinds  Ljava/util/Set<Ljavax/lang/model/type/TypeKind;>;
    Signature: (Ljavax/lang/model/type/TypeMirror;Ljava/util/Set<Ljavax/lang/model/type/TypeKind;>;)V
    MethodParameters:
              Name  Flags
      t             
      invalidKinds  

  private static <T> T cast(java.lang.Class<T>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.Class clazz
        start local 1 // java.lang.Object o
         0: .line 321
            aload 0 /* clazz */
            aload 1 /* o */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 322
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* o */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 323
      StackMap locals:
      StackMap stack:
            aload 0 /* clazz */
            aload 1 /* o */
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object o
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  clazz  Ljava/lang/Class<TT;>;
            0    3     1      o  Ljava/lang/Object;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Ljava/lang/Object;)TT;
    MethodParameters:
       Name  Flags
      clazz  
      o      

  public java.util.Set<com.sun.tools.javac.code.Symbol$MethodSymbol> getOverriddenMethods(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.sun.tools.javac.model.JavacTypes this
        start local 1 // javax.lang.model.element.Element elem
         0: .line 327
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getKind:()Ljavax/lang/model/element/ElementKind;
            getstatic javax.lang.model.element.ElementKind.METHOD:Ljavax/lang/model/element/ElementKind;
            if_acmpne 3
         1: .line 328
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.STATIC:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 329
            aload 1 /* elem */
            invokeinterface javax.lang.model.element.Element.getModifiers:()Ljava/util/Set;
            getstatic javax.lang.model.element.Modifier.PRIVATE:Ljavax/lang/model/element/Modifier;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 330
      StackMap locals:
      StackMap stack:
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            areturn
         4: .line 332
      StackMap locals:
      StackMap stack:
            aload 1 /* elem */
            instanceof com.sun.tools.javac.code.Symbol$MethodSymbol
            ifne 6
         5: .line 333
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         6: .line 335
      StackMap locals:
      StackMap stack:
            aload 1 /* elem */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            astore 2 /* m */
        start local 2 // com.sun.tools.javac.code.Symbol$MethodSymbol m
         7: .line 336
            aload 2 /* m */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 3 /* origin */
        start local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol origin
         8: .line 338
            new java.util.LinkedHashSet
            dup
            invokespecial java.util.LinkedHashSet.<init>:()V
            astore 4 /* results */
        start local 4 // java.util.Set results
         9: .line 339
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            aload 3 /* origin */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.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;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: com.sun.tools.javac.model.JavacTypes javax.lang.model.element.Element com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Set top java.util.Iterator
      StackMap stack:
        10: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* t */
        start local 5 // com.sun.tools.javac.code.Type t
        11: .line 340
            aload 5 /* t */
            aload 3 /* origin */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            if_acmpeq 18
        12: .line 341
            aload 5 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            astore 7 /* c */
        start local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        13: .line 342
            aload 7 /* c */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.members:()Lcom/sun/tools/javac/code/Scope$WriteableScope;
            aload 2 /* m */
            getfield com.sun.tools.javac.code.Symbol$MethodSymbol.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 9
            goto 17
      StackMap locals: com.sun.tools.javac.model.JavacTypes javax.lang.model.element.Element com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Set com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Symbol$ClassSymbol top java.util.Iterator
      StackMap stack:
        14: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Symbol
            astore 8 /* sym */
        start local 8 // com.sun.tools.javac.code.Symbol sym
        15: .line 343
            aload 8 /* 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
            aload 2 /* m */
            aload 8 /* sym */
            aload 3 /* origin */
            aload 0 /* this */
            getfield com.sun.tools.javac.model.JavacTypes.types:Lcom/sun/tools/javac/code/Types;
            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 17
        16: .line 344
            aload 4 /* results */
            aload 8 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$MethodSymbol
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // com.sun.tools.javac.code.Symbol sym
        17: .line 342
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 7 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        end local 5 // com.sun.tools.javac.code.Type t
        18: .line 339
      StackMap locals: com.sun.tools.javac.model.JavacTypes javax.lang.model.element.Element com.sun.tools.javac.code.Symbol$MethodSymbol com.sun.tools.javac.code.Symbol$ClassSymbol java.util.Set top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        19: .line 350
            aload 4 /* results */
            areturn
        end local 4 // java.util.Set results
        end local 3 // com.sun.tools.javac.code.Symbol$ClassSymbol origin
        end local 2 // com.sun.tools.javac.code.Symbol$MethodSymbol m
        end local 1 // javax.lang.model.element.Element elem
        end local 0 // com.sun.tools.javac.model.JavacTypes this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/sun/tools/javac/model/JavacTypes;
            0   20     1     elem  Ljavax/lang/model/element/Element;
            7   20     2        m  Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            8   20     3   origin  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            9   20     4  results  Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
           11   18     5        t  Lcom/sun/tools/javac/code/Type;
           13   18     7        c  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
           15   17     8      sym  Lcom/sun/tools/javac/code/Symbol;
    Signature: (Ljavax/lang/model/element/Element;)Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol$MethodSymbol;>;
    MethodParameters:
      Name  Flags
      elem  

  static int[] $SWITCH_TABLE$javax$lang$model$type$TypeKind();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 54
            getstatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.lang.model.type.TypeKind.values:()[Ljavax/lang/model/type/TypeKind;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.lang.model.type.TypeKind.ARRAY:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 12
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.lang.model.type.TypeKind.BOOLEAN:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.lang.model.type.TypeKind.BYTE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_2
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.lang.model.type.TypeKind.CHAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 6
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.lang.model.type.TypeKind.DECLARED:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 13
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic javax.lang.model.type.TypeKind.DOUBLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 8
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic javax.lang.model.type.TypeKind.ERROR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 14
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            getstatic javax.lang.model.type.TypeKind.EXECUTABLE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 18
            iastore
        24: goto 26
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        25: pop
      StackMap locals:
      StackMap stack:
        26: aload 0
            getstatic javax.lang.model.type.TypeKind.FLOAT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 7
            iastore
        27: goto 29
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        28: pop
      StackMap locals:
      StackMap stack:
        29: aload 0
            getstatic javax.lang.model.type.TypeKind.INT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_4
            iastore
        30: goto 32
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        31: pop
      StackMap locals:
      StackMap stack:
        32: aload 0
            getstatic javax.lang.model.type.TypeKind.INTERSECTION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 21
            iastore
        33: goto 35
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        34: pop
      StackMap locals:
      StackMap stack:
        35: aload 0
            getstatic javax.lang.model.type.TypeKind.LONG:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            iconst_5
            iastore
        36: goto 38
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        37: pop
      StackMap locals:
      StackMap stack:
        38: aload 0
            getstatic javax.lang.model.type.TypeKind.MODULE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 22
            iastore
        39: goto 41
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        40: pop
      StackMap locals:
      StackMap stack:
        41: aload 0
            getstatic javax.lang.model.type.TypeKind.NONE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 10
            iastore
        42: goto 44
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        43: pop
      StackMap locals:
      StackMap stack:
        44: aload 0
            getstatic javax.lang.model.type.TypeKind.NULL:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 11
            iastore
        45: goto 47
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        46: pop
      StackMap locals:
      StackMap stack:
        47: aload 0
            getstatic javax.lang.model.type.TypeKind.OTHER:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 19
            iastore
        48: goto 50
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        49: pop
      StackMap locals:
      StackMap stack:
        50: aload 0
            getstatic javax.lang.model.type.TypeKind.PACKAGE:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 17
            iastore
        51: goto 53
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        52: pop
      StackMap locals:
      StackMap stack:
        53: aload 0
            getstatic javax.lang.model.type.TypeKind.SHORT:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.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 javax.lang.model.type.TypeKind.TYPEVAR:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.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 javax.lang.model.type.TypeKind.UNION:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 20
            iastore
        60: goto 62
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        61: pop
      StackMap locals:
      StackMap stack:
        62: aload 0
            getstatic javax.lang.model.type.TypeKind.VOID:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 9
            iastore
        63: goto 65
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        64: pop
      StackMap locals:
      StackMap stack:
        65: aload 0
            getstatic javax.lang.model.type.TypeKind.WILDCARD:Ljavax/lang/model/type/TypeKind;
            invokevirtual javax.lang.model.type.TypeKind.ordinal:()I
            bipush 16
            iastore
        66: goto 68
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        67: pop
      StackMap locals:
      StackMap stack:
        68: aload 0
            dup
            putstatic com.sun.tools.javac.model.JavacTypes.$SWITCH_TABLE$javax$lang$model$type$TypeKind:[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
}
SourceFile: "JavacTypes.java"
InnerClasses:
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public abstract WriteableScope = com.sun.tools.javac.code.Scope$WriteableScope of com.sun.tools.javac.code.Scope
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol 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 ArrayType = com.sun.tools.javac.code.Type$ArrayType of com.sun.tools.javac.code.Type
  public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  public WildcardType = com.sun.tools.javac.code.Type$WildcardType of com.sun.tools.javac.code.Type
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles