public class com.sun.tools.javac.code.Symbol$ClassSymbol extends com.sun.tools.javac.code.Symbol$TypeSymbol implements javax.lang.model.element.TypeElement
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.code.Symbol$ClassSymbol
  super_class: com.sun.tools.javac.code.Symbol$TypeSymbol
{
  public com.sun.tools.javac.code.Scope$WriteableScope members_field;
    descriptor: Lcom/sun/tools/javac/code/Scope$WriteableScope;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.Name fullname;
    descriptor: Lcom/sun/tools/javac/util/Name;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.Name flatname;
    descriptor: Lcom/sun/tools/javac/util/Name;
    flags: (0x0001) ACC_PUBLIC

  public javax.tools.JavaFileObject sourcefile;
    descriptor: Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC

  public javax.tools.JavaFileObject classfile;
    descriptor: Ljavax/tools/JavaFileObject;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ClassSymbol> trans_local;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;

  private com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata annotationTypeMetadata;
    descriptor: Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(long, com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol);
    descriptor: (JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=5
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // long flags
        start local 3 // com.sun.tools.javac.util.Name name
        start local 4 // com.sun.tools.javac.code.Type type
        start local 5 // com.sun.tools.javac.code.Symbol owner
         0: .line 1264
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            lload 1 /* flags */
            aload 3 /* name */
            aload 4 /* type */
            aload 5 /* owner */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.<init>:(Lcom/sun/tools/javac/code/Kinds$Kind;JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)V
         1: .line 1265
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
         2: .line 1266
            aload 0 /* this */
            aload 3 /* name */
            aload 5 /* owner */
            invokestatic com.sun.tools.javac.code.Symbol$ClassSymbol.formFullName:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/Name;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.fullname:Lcom/sun/tools/javac/util/Name;
         3: .line 1267
            aload 0 /* this */
            aload 3 /* name */
            aload 5 /* owner */
            invokestatic com.sun.tools.javac.code.Symbol$ClassSymbol.formFlatName:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/util/Name;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.flatname:Lcom/sun/tools/javac/util/Name;
         4: .line 1268
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.sourcefile:Ljavax/tools/JavaFileObject;
         5: .line 1269
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.classfile:Ljavax/tools/JavaFileObject;
         6: .line 1270
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata.notAnAnnotationType:()Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.annotationTypeMetadata:Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
         7: .line 1271
            return
        end local 5 // com.sun.tools.javac.code.Symbol owner
        end local 4 // com.sun.tools.javac.code.Type type
        end local 3 // com.sun.tools.javac.util.Name name
        end local 1 // long flags
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    8     1  flags  J
            0    8     3   name  Lcom/sun/tools/javac/util/Name;
            0    8     4   type  Lcom/sun/tools/javac/code/Type;
            0    8     5  owner  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
       Name  Flags
      flags  
      name   
      type   
      owner  

  public void <init>(long, com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Symbol);
    descriptor: (JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // long flags
        start local 3 // com.sun.tools.javac.util.Name name
        start local 4 // com.sun.tools.javac.code.Symbol owner
         0: .line 1274
            aload 0 /* this */
         1: .line 1275
            lload 1 /* flags */
         2: .line 1276
            aload 3 /* name */
         3: .line 1277
            new com.sun.tools.javac.code.Type$ClassType
            dup
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            aconst_null
            aconst_null
            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
         4: .line 1278
            aload 4 /* owner */
            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
         5: .line 1279
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            aload 0 /* this */
            putfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
         6: .line 1280
            return
        end local 4 // com.sun.tools.javac.code.Symbol owner
        end local 3 // com.sun.tools.javac.util.Name name
        end local 1 // long flags
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    7     1  flags  J
            0    7     3   name  Lcom/sun/tools/javac/util/Name;
            0    7     4  owner  Lcom/sun/tools/javac/code/Symbol;
    MethodParameters:
       Name  Flags
      flags  
      name   
      owner  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1285
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.className:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

  public long flags();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1289
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.complete:()V
         1: .line 1290
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            lreturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

  public com.sun.tools.javac.code.Scope$WriteableScope members();
    descriptor: ()Lcom/sun/tools/javac/code/Scope$WriteableScope;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1294
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.complete:()V
         1: .line 1295
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Attribute$Compound> getRawAttributes();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1300
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.complete:()V
         1: .line 1301
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.getRawAttributes:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Attribute$Compound;>;

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Attribute$TypeCompound> getRawTypeAttributes();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1306
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.complete:()V
         1: .line 1307
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.getRawTypeAttributes:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Attribute$TypeCompound;>;

  public com.sun.tools.javac.code.Type erasure(com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // com.sun.tools.javac.code.Types types
         0: .line 1311
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.erasure_field:Lcom/sun/tools/javac/code/Type;
            ifnonnull 5
         1: .line 1312
            aload 0 /* this */
            new com.sun.tools.javac.code.Type$ClassType
            dup
            aload 1 /* types */
            aload 0 /* this */
            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.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
         2: .line 1313
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
         3: .line 1314
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getMetadata:()Lcom/sun/tools/javac/code/TypeMetadata;
            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
         4: .line 1312
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.erasure_field:Lcom/sun/tools/javac/code/Type;
         5: .line 1315
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.erasure_field:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.code.Types types
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    6     1  types  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
       Name  Flags
      types  

  public java.lang.String className();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1319
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.isEmpty:()Z
            ifeq 3
         1: .line 1321
            ldc "anonymous.class"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flatname:Lcom/sun/tools/javac/util/Name;
            aastore
            invokestatic com.sun.tools.javac.util.Log.getLocalizedString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         2: .line 1320
            areturn
         3: .line 1323
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.fullname:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.toString:()Ljava/lang/String;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

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

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

  public boolean isSubClass(com.sun.tools.javac.code.Symbol, com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Types;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // com.sun.tools.javac.code.Symbol base
        start local 2 // com.sun.tools.javac.code.Types types
         0: .line 1336
            aload 0 /* this */
            aload 1 /* base */
            if_acmpne 2
         1: .line 1337
            iconst_1
            ireturn
         2: .line 1338
      StackMap locals:
      StackMap stack:
            aload 1 /* base */
            invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
            ldc 512
            land
            lconst_0
            lcmp
            ifeq 13
         3: .line 1339
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
         4: goto 11
         5: .line 1340
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 2 /* types */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
            astore 4 /* is */
        start local 4 // com.sun.tools.javac.util.List is
         6: .line 1341
            goto 9
         7: .line 1343
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 4 /* is */
            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 /* base */
            aload 2 /* types */
            invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.isSubClass:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Types;)Z
            ifeq 8
            iconst_1
            ireturn
         8: .line 1342
      StackMap locals:
      StackMap stack:
            aload 4 /* is */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            astore 4 /* is */
         9: .line 1341
      StackMap locals:
      StackMap stack:
            aload 4 /* is */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifne 7
        end local 4 // com.sun.tools.javac.util.List is
        10: .line 1339
            aload 2 /* types */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* t */
      StackMap locals:
      StackMap stack:
        11: aload 3 /* 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 5
        end local 3 // com.sun.tools.javac.code.Type t
        12: .line 1344
            goto 18
        13: .line 1345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.code.Type t
        14: goto 17
        15: .line 1346
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 3 /* t */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* base */
            if_acmpne 16
            iconst_1
            ireturn
        16: .line 1345
      StackMap locals:
      StackMap stack:
            aload 2 /* types */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 3 /* t */
      StackMap locals:
      StackMap stack:
        17: aload 3 /* 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 15
        end local 3 // com.sun.tools.javac.code.Type t
        18: .line 1348
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // com.sun.tools.javac.code.Types types
        end local 1 // com.sun.tools.javac.code.Symbol base
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   19     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0   19     1   base  Lcom/sun/tools/javac/code/Symbol;
            0   19     2  types  Lcom/sun/tools/javac/code/Types;
            4   12     3      t  Lcom/sun/tools/javac/code/Type;
            6   10     4     is  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
           14   18     3      t  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
       Name  Flags
      base   
      types  

  public void complete();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1354
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.completer:Lcom/sun/tools/javac/code/Symbol$Completer;
            astore 1 /* origCompleter */
        start local 1 // com.sun.tools.javac.code.Symbol$Completer origCompleter
         1: .line 1356
            aload 0 /* this */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.complete:()V
         2: .line 1357
            goto 8
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol com.sun.tools.javac.code.Symbol$Completer
      StackMap stack: com.sun.tools.javac.code.Symbol$CompletionFailure
         3: astore 2 /* ex */
        start local 2 // com.sun.tools.javac.code.Symbol$CompletionFailure ex
         4: .line 1358
            aload 2 /* ex */
            getfield com.sun.tools.javac.code.Symbol$CompletionFailure.dcfh:Lcom/sun/tools/javac/code/DeferredCompletionFailureHandler;
            aload 0 /* this */
            aload 1 /* origCompleter */
            invokevirtual com.sun.tools.javac.code.DeferredCompletionFailureHandler.classSymbolCompleteFailed:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Symbol$Completer;)V
         5: .line 1360
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            ldc 9
            lor
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
         6: .line 1361
            aload 0 /* this */
            new com.sun.tools.javac.code.Type$ErrorType
            dup
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            invokespecial com.sun.tools.javac.code.Type$ErrorType.<init>:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;Lcom/sun/tools/javac/code/Type;)V
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
         7: .line 1362
            aload 2 /* ex */
            athrow
        end local 2 // com.sun.tools.javac.code.Symbol$CompletionFailure ex
         8: .line 1364
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.code.Symbol$Completer origCompleter
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            1    9     1  origCompleter  Lcom/sun/tools/javac/code/Symbol$Completer;
            4    8     2             ex  Lcom/sun/tools/javac/code/Symbol$CompletionFailure;
      Exception table:
        from    to  target  type
           1     2       3  Class com.sun.tools.javac.code.Symbol$CompletionFailure
    Exceptions:
      throws com.sun.tools.javac.code.Symbol$CompletionFailure

  public com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> getInterfaces();
    descriptor: ()Lcom/sun/tools/javac/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1368
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.apiComplete:()V
         1: .line 1369
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            instanceof com.sun.tools.javac.code.Type$ClassType
            ifeq 8
         2: .line 1370
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 1 /* t */
        start local 1 // com.sun.tools.javac.code.Type$ClassType t
         3: .line 1371
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
            ifnonnull 5
         4: .line 1372
            aload 1 /* t */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
         5: .line 1373
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.all_interfaces_field:Lcom/sun/tools/javac/util/List;
            ifnull 7
         6: .line 1374
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.all_interfaces_field:Lcom/sun/tools/javac/util/List;
            invokestatic com.sun.tools.javac.code.Type.getModelTypes:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            areturn
         7: .line 1375
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
            areturn
        end local 1 // com.sun.tools.javac.code.Type$ClassType t
         8: .line 1377
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            3    8     1     t  Lcom/sun/tools/javac/code/Type$ClassType;
    Signature: ()Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;

  public com.sun.tools.javac.code.Type getSuperclass();
    descriptor: ()Lcom/sun/tools/javac/code/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1383
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.apiComplete:()V
         1: .line 1384
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            instanceof com.sun.tools.javac.code.Type$ClassType
            ifeq 9
         2: .line 1385
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 1 /* t */
        start local 1 // com.sun.tools.javac.code.Type$ClassType t
         3: .line 1386
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
            ifnonnull 5
         4: .line 1387
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            putfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
         5: .line 1389
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            aload 1 /* t */
            invokevirtual com.sun.tools.javac.code.Type$ClassType.isInterface:()Z
            ifeq 7
         6: .line 1390
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            goto 8
         7: .line 1391
      StackMap locals:
      StackMap stack:
            aload 1 /* t */
            getfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getModelType:()Lcom/sun/tools/javac/code/Type;
         8: .line 1389
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
            areturn
        end local 1 // com.sun.tools.javac.code.Type$ClassType t
         9: .line 1393
      StackMap locals:
      StackMap stack:
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            3    9     1     t  Lcom/sun/tools/javac/code/Type$ClassType;

  private com.sun.tools.javac.code.Symbol$ClassSymbol getSuperClassToSearchForAnnotations();
    descriptor: ()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1403
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getSuperclass:()Lcom/sun/tools/javac/code/Type;
            astore 1 /* sup */
        start local 1 // com.sun.tools.javac.code.Type sup
         1: .line 1405
            aload 1 /* sup */
            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 2
            aload 1 /* sup */
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifeq 3
         2: .line 1406
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aconst_null
            areturn
         3: .line 1408
      StackMap locals:
      StackMap stack:
            aload 1 /* sup */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            areturn
        end local 1 // com.sun.tools.javac.code.Type sup
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            1    4     1   sup  Lcom/sun/tools/javac/code/Type;

  protected <A extends java.lang.annotation.Annotation> A[] getInheritedAnnotations(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // java.lang.Class annoType
         0: .line 1415
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getSuperClassToSearchForAnnotations:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 2 /* sup */
        start local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sup
         1: .line 1417
            aload 2 /* sup */
            ifnonnull 2
            aload 0 /* this */
            aload 1 /* annoType */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.getInheritedAnnotations:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
            goto 3
         2: .line 1418
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            aload 2 /* sup */
            aload 1 /* annoType */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getAnnotationsByType:(Ljava/lang/Class;)[Ljava/lang/annotation/Annotation;
         3: .line 1417
      StackMap locals:
      StackMap stack: java.lang.annotation.Annotation[]
            areturn
        end local 2 // com.sun.tools.javac.code.Symbol$ClassSymbol sup
        end local 1 // java.lang.Class annoType
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    4     1  annoType  Ljava/lang/Class<TA;>;
            1    4     2       sup  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)[TA;
    MethodParameters:
          Name  Flags
      annoType  

  public javax.lang.model.element.ElementKind getKind();
    descriptor: ()Ljavax/lang/model/element/ElementKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1424
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.apiComplete:()V
         1: .line 1425
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            lstore 1 /* flags */
        start local 1 // long flags
         2: .line 1426
            lload 1 /* flags */
            ldc 8192
            land
            lconst_0
            lcmp
            ifeq 4
         3: .line 1427
            getstatic javax.lang.model.element.ElementKind.ANNOTATION_TYPE:Ljavax/lang/model/element/ElementKind;
            areturn
         4: .line 1428
      StackMap locals: long
      StackMap stack:
            lload 1 /* flags */
            ldc 512
            land
            lconst_0
            lcmp
            ifeq 6
         5: .line 1429
            getstatic javax.lang.model.element.ElementKind.INTERFACE:Ljavax/lang/model/element/ElementKind;
            areturn
         6: .line 1430
      StackMap locals:
      StackMap stack:
            lload 1 /* flags */
            ldc 16384
            land
            lconst_0
            lcmp
            ifeq 8
         7: .line 1431
            getstatic javax.lang.model.element.ElementKind.ENUM:Ljavax/lang/model/element/ElementKind;
            areturn
         8: .line 1433
      StackMap locals:
      StackMap stack:
            getstatic javax.lang.model.element.ElementKind.CLASS:Ljavax/lang/model/element/ElementKind;
            areturn
        end local 1 // long flags
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            2    9     1  flags  J

  public java.util.Set<javax.lang.model.element.Modifier> getModifiers();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1438
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.apiComplete:()V
         1: .line 1439
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            lstore 1 /* flags */
        start local 1 // long flags
         2: .line 1440
            lload 1 /* flags */
            ldc -8796093022209
            land
            invokestatic com.sun.tools.javac.code.Flags.asModifierSet:(J)Ljava/util/Set;
            areturn
        end local 1 // long flags
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            2    3     1  flags  J
    Signature: ()Ljava/util/Set<Ljavax/lang/model/element/Modifier;>;

  public javax.lang.model.element.NestingKind getNestingKind();
    descriptor: ()Ljavax/lang/model/element/NestingKind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1445
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.apiComplete:()V
         1: .line 1446
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.PCK:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 3
         2: .line 1447
            getstatic javax.lang.model.element.NestingKind.TOP_LEVEL:Ljavax/lang/model/element/NestingKind;
            areturn
         3: .line 1448
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.name:Lcom/sun/tools/javac/util/Name;
            invokevirtual com.sun.tools.javac.util.Name.isEmpty:()Z
            ifeq 5
         4: .line 1449
            getstatic javax.lang.model.element.NestingKind.ANONYMOUS:Ljavax/lang/model/element/NestingKind;
            areturn
         5: .line 1450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.owner:Lcom/sun/tools/javac/code/Symbol;
            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 7
         6: .line 1451
            getstatic javax.lang.model.element.NestingKind.LOCAL:Ljavax/lang/model/element/NestingKind;
            areturn
         7: .line 1453
      StackMap locals:
      StackMap stack:
            getstatic javax.lang.model.element.NestingKind.MEMBER:Ljavax/lang/model/element/NestingKind;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

  protected <A extends java.lang.annotation.Annotation> com.sun.tools.javac.code.Attribute$Compound getAttribute(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Lcom/sun/tools/javac/code/Attribute$Compound;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // java.lang.Class annoType
         0: .line 1460
            aload 0 /* this */
            aload 1 /* annoType */
            invokespecial com.sun.tools.javac.code.Symbol$TypeSymbol.getAttribute:(Ljava/lang/Class;)Lcom/sun/tools/javac/code/Attribute$Compound;
            astore 2 /* attrib */
        start local 2 // com.sun.tools.javac.code.Attribute$Compound attrib
         1: .line 1462
            aload 1 /* annoType */
            ldc Ljava/lang/annotation/Inherited;
            invokevirtual java.lang.Class.isAnnotationPresent:(Ljava/lang/Class;)Z
            istore 3 /* inherited */
        start local 3 // boolean inherited
         2: .line 1463
            aload 2 /* attrib */
            ifnonnull 3
            iload 3 /* inherited */
            ifne 4
         3: .line 1464
      StackMap locals: com.sun.tools.javac.code.Attribute$Compound int
      StackMap stack:
            aload 2 /* attrib */
            areturn
         4: .line 1467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getSuperClassToSearchForAnnotations:()Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 4 /* superType */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol superType
         5: .line 1468
            aload 4 /* superType */
            ifnonnull 6
            aconst_null
            goto 7
         6: .line 1469
      StackMap locals: com.sun.tools.javac.code.Symbol$ClassSymbol
      StackMap stack:
            aload 4 /* superType */
            aload 1 /* annoType */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getAttribute:(Ljava/lang/Class;)Lcom/sun/tools/javac/code/Attribute$Compound;
         7: .line 1468
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Attribute$Compound
            areturn
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol superType
        end local 3 // boolean inherited
        end local 2 // com.sun.tools.javac.code.Attribute$Compound attrib
        end local 1 // java.lang.Class annoType
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    8     1   annoType  Ljava/lang/Class<TA;>;
            1    8     2     attrib  Lcom/sun/tools/javac/code/Attribute$Compound;
            2    8     3  inherited  Z
            5    8     4  superType  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)Lcom/sun/tools/javac/code/Attribute$Compound;
    MethodParameters:
          Name  Flags
      annoType  final

  public <R, P> R accept(javax.lang.model.element.ElementVisitor<R, P>, );
    descriptor: (Ljavax/lang/model/element/ElementVisitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // javax.lang.model.element.ElementVisitor v
        start local 2 // java.lang.Object p
         0: .line 1477
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* p */
            invokeinterface javax.lang.model.element.ElementVisitor.visitType:(Ljavax/lang/model/element/TypeElement;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object p
        end local 1 // javax.lang.model.element.ElementVisitor v
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    1     1     v  Ljavax/lang/model/element/ElementVisitor<TR;TP;>;
            0    1     2     p  TP;
    Signature: <R:Ljava/lang/Object;P:Ljava/lang/Object;>(Ljavax/lang/model/element/ElementVisitor<TR;TP;>;TP;)TR;
    MethodParameters:
      Name  Flags
      v     
      p     

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

  public void markAbstractIfNeeded(com.sun.tools.javac.code.Types);
    descriptor: (Lcom/sun/tools/javac/code/Types;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // com.sun.tools.javac.code.Types types
         0: .line 1485
            aload 1 /* types */
            getfield com.sun.tools.javac.code.Types.enter:Lcom/sun/tools/javac/comp/Enter;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Enter.getEnv:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/comp/Env;
            ifnull 5
         1: .line 1486
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            ldc 16384
            land
            lconst_0
            lcmp
            ifeq 5
            aload 1 /* types */
            aload 0 /* this */
            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;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 1 /* types */
            getfield com.sun.tools.javac.code.Types.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.enumSym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            if_acmpne 5
         2: .line 1487
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.flags:()J
            ldc 1040
            land
            lconst_0
            lcmp
            ifne 5
         3: .line 1488
            aload 1 /* types */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Types.firstUnimplementedAbstract:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
            ifnull 5
         4: .line 1490
            aload 0 /* this */
            dup
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
            ldc 1024
            lor
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
         5: .line 1492
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.code.Types types
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    6     1  types  Lcom/sun/tools/javac/code/Types;
    MethodParameters:
       Name  Flags
      types  

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1496
            aload 0 /* this */
            getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
         1: .line 1497
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.erasure_field:Lcom/sun/tools/javac/code/Type;
         2: .line 1498
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
         3: .line 1499
            aload 0 /* this */
            lconst_0
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.flags_field:J
         4: .line 1500
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            instanceof com.sun.tools.javac.code.Type$ClassType
            ifeq 13
         5: .line 1501
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 1 /* t */
        start local 1 // com.sun.tools.javac.code.Type$ClassType t
         6: .line 1502
            aload 1 /* t */
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            invokevirtual com.sun.tools.javac.code.Type$ClassType.setEnclosingType:(Lcom/sun/tools/javac/code/Type;)V
         7: .line 1503
            aload 1 /* t */
            iconst_m1
            putfield com.sun.tools.javac.code.Type$ClassType.rank_field:I
         8: .line 1504
            aload 1 /* t */
            aconst_null
            putfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
         9: .line 1505
            aload 1 /* t */
            aconst_null
            putfield com.sun.tools.javac.code.Type$ClassType.allparams_field:Lcom/sun/tools/javac/util/List;
        10: .line 1506
            aload 1 /* t */
            aconst_null
            putfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
        11: .line 1507
            aload 1 /* t */
            aconst_null
            putfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
        12: .line 1508
            aload 1 /* t */
            aconst_null
            putfield com.sun.tools.javac.code.Type$ClassType.all_interfaces_field:Lcom/sun/tools/javac/util/List;
        end local 1 // com.sun.tools.javac.code.Type$ClassType t
        13: .line 1510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.clearAnnotationMetadata:()V
        14: .line 1511
            return
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            6   13     1     t  Lcom/sun/tools/javac/code/Type$ClassType;

  public void clearAnnotationMetadata();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1514
            aload 0 /* this */
            aconst_null
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.metadata:Lcom/sun/tools/javac/code/SymbolMetadata;
         1: .line 1515
            aload 0 /* this */
            invokestatic com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata.notAnAnnotationType:()Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.annotationTypeMetadata:Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
         2: .line 1516
            return
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

  public com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata getAnnotationTypeMetadata();
    descriptor: ()Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
         0: .line 1520
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.annotationTypeMetadata:Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
            areturn
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;

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

  public void setAnnotationTypeMetadata(com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata);
    descriptor: (Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
        start local 1 // com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata a
         0: .line 1529
            aload 1 /* a */
            invokestatic com.sun.tools.javac.util.Assert.checkNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 1530
            aload 0 /* this */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.annotationTypeMetadata:Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
            invokevirtual com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata.isMetadataForAnnotationType:()Z
            ifeq 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         4: .line 1531
            aload 0 /* this */
            aload 1 /* a */
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.annotationTypeMetadata:Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
         5: .line 1532
            return
        end local 1 // com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata a
        end local 0 // com.sun.tools.javac.code.Symbol$ClassSymbol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0    6     1     a  Lcom/sun/tools/javac/comp/Annotate$AnnotationTypeMetadata;
    MethodParameters:
      Name  Flags
      a     

  public javax.lang.model.type.TypeMirror getSuperclass();
    descriptor: ()Ljavax/lang/model/type/TypeMirror;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getSuperclass:()Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getInterfaces();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getInterfaces:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.type.TypeMirror asType();
    descriptor: ()Ljavax/lang/model/type/TypeMirror;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.asType:()Lcom/sun/tools/javac/code/Type;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.element.Element getEnclosingElement();
    descriptor: ()Ljavax/lang/model/element/Element;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getEnclosingElement:()Lcom/sun/tools/javac/code/Symbol;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.element.Name getSimpleName();
    descriptor: ()Ljavax/lang/model/element/Name;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getSimpleName:()Lcom/sun/tools/javac/util/Name;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.util.List getTypeParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getTypeParameters:()Lcom/sun/tools/javac/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public javax.lang.model.element.Name getQualifiedName();
    descriptor: ()Ljavax/lang/model/element/Name;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.code.Symbol$ClassSymbol.getQualifiedName:()Lcom/sun/tools/javac/util/Name;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Symbol.java"
NestHost: com.sun.tools.javac.code.Symbol
InnerClasses:
  public Compound = com.sun.tools.javac.code.Attribute$Compound of com.sun.tools.javac.code.Attribute
  public TypeCompound = com.sun.tools.javac.code.Attribute$TypeCompound 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 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 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 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 TypeVariableSymbol = com.sun.tools.javac.code.Symbol$TypeVariableSymbol of com.sun.tools.javac.code.Symbol
  public abstract Visitor = com.sun.tools.javac.code.Symbol$Visitor of com.sun.tools.javac.code.Symbol
  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 AnnotationTypeMetadata = com.sun.tools.javac.comp.Annotate$AnnotationTypeMetadata of com.sun.tools.javac.comp.Annotate