class com.sun.tools.javac.comp.Check$CycleChecker extends com.sun.tools.javac.tree.TreeScanner
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.comp.Check$CycleChecker
  super_class: com.sun.tools.javac.tree.TreeScanner
{
  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol> seenClasses;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol;>;

  boolean errorFound;
    descriptor: Z
    flags: (0x0000) 

  boolean partialCheck;
    descriptor: Z
    flags: (0x0000) 

  final com.sun.tools.javac.comp.Check this$0;
    descriptor: Lcom/sun/tools/javac/comp/Check;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.sun.tools.javac.comp.Check);
    descriptor: (Lcom/sun/tools/javac/comp/Check;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
         0: .line 2218
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.TreeScanner.<init>:()V
         1: .line 2220
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
         2: .line 2221
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.comp.Check$CycleChecker.errorFound:Z
         3: .line 2222
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.comp.Check$CycleChecker.partialCheck:Z
         4: .line 2218
            return
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
    MethodParameters:
        Name  Flags
      this$0  final

  private void checkSymbol(com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition pos
        start local 2 // com.sun.tools.javac.code.Symbol sym
         0: .line 2225
            aload 2 /* sym */
            ifnull 15
            aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 15
         1: .line 2226
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            getfield com.sun.tools.javac.comp.Check.enter:Lcom/sun/tools/javac/comp/Enter;
            aload 2 /* sym */
            checkcast com.sun.tools.javac.code.Symbol$TypeSymbol
            invokevirtual com.sun.tools.javac.comp.Enter.getEnv:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/comp/Env;
            astore 3 /* classEnv */
        start local 3 // com.sun.tools.javac.comp.Env classEnv
         2: .line 2227
            aload 3 /* classEnv */
            ifnull 12
         3: .line 2228
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            getfield com.sun.tools.javac.comp.Check.log:Lcom/sun/tools/javac/util/Log;
            invokevirtual com.sun.tools.javac.util.Log.currentSource:()Lcom/sun/tools/javac/util/DiagnosticSource;
            astore 4 /* prevSource */
        start local 4 // com.sun.tools.javac.util.DiagnosticSource prevSource
         4: .line 2230
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            getfield com.sun.tools.javac.comp.Check.log:Lcom/sun/tools/javac/util/Log;
            aload 3 /* classEnv */
            getfield com.sun.tools.javac.comp.Env.toplevel:Lcom/sun/tools/javac/tree/JCTree$JCCompilationUnit;
            getfield com.sun.tools.javac.tree.JCTree$JCCompilationUnit.sourcefile:Ljavax/tools/JavaFileObject;
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            pop
         5: .line 2231
            aload 0 /* this */
            aload 3 /* classEnv */
            getfield com.sun.tools.javac.comp.Env.tree:Lcom/sun/tools/javac/tree/JCTree;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
         6: .line 2232
            goto 10
         7: .line 2233
      StackMap locals: com.sun.tools.javac.comp.Check$CycleChecker com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.comp.Env com.sun.tools.javac.util.DiagnosticSource
      StackMap stack: java.lang.Throwable
            astore 5
         8: .line 2234
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            getfield com.sun.tools.javac.comp.Check.log:Lcom/sun/tools/javac/util/Log;
            aload 4 /* prevSource */
            invokevirtual com.sun.tools.javac.util.DiagnosticSource.getFile:()Ljavax/tools/JavaFileObject;
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            pop
         9: .line 2235
            aload 5
            athrow
        10: .line 2234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            getfield com.sun.tools.javac.comp.Check.log:Lcom/sun/tools/javac/util/Log;
            aload 4 /* prevSource */
            invokevirtual com.sun.tools.javac.util.DiagnosticSource.getFile:()Ljavax/tools/JavaFileObject;
            invokevirtual com.sun.tools.javac.util.Log.useSource:(Ljavax/tools/JavaFileObject;)Ljavax/tools/JavaFileObject;
            pop
        end local 4 // com.sun.tools.javac.util.DiagnosticSource prevSource
        11: .line 2236
            goto 16
      StackMap locals:
      StackMap stack:
        12: aload 2 /* sym */
            getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
            getstatic com.sun.tools.javac.code.Kinds$Kind.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 16
        13: .line 2237
            aload 0 /* this */
            aload 1 /* pos */
            aload 2 /* sym */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkClass:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/List;)V
        end local 3 // com.sun.tools.javac.comp.Env classEnv
        14: .line 2239
            goto 16
        15: .line 2241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.comp.Check$CycleChecker.partialCheck:Z
        16: .line 2243
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.sun.tools.javac.code.Symbol sym
        end local 1 // com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition pos
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   17     0        this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0   17     1         pos  Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            0   17     2         sym  Lcom/sun/tools/javac/code/Symbol;
            2   14     3    classEnv  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            4   11     4  prevSource  Lcom/sun/tools/javac/util/DiagnosticSource;
      Exception table:
        from    to  target  type
           4     7       7  any
    MethodParameters:
      Name  Flags
      pos   
      sym   

  public void visitSelect(com.sun.tools.javac.tree.JCTree$JCFieldAccess);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
         0: .line 2247
            aload 0 /* this */
            aload 1 /* tree */
            invokespecial com.sun.tools.javac.tree.TreeScanner.visitSelect:(Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;)V
         1: .line 2248
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCFieldAccess.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.sym:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkSymbol:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
         2: .line 2249
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0    3     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;
    MethodParameters:
      Name  Flags
      tree  

  public void visitIdent(com.sun.tools.javac.tree.JCTree$JCIdent);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCIdent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
         0: .line 2253
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCIdent.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.sym:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkSymbol:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
         1: .line 2254
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCIdent;
    MethodParameters:
      Name  Flags
      tree  

  public void visitTypeApply(com.sun.tools.javac.tree.JCTree$JCTypeApply);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCTypeApply;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCTypeApply tree
         0: .line 2258
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.clazz:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
         1: .line 2259
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCTypeApply tree
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCTypeApply;
    MethodParameters:
      Name  Flags
      tree  

  public void visitTypeArray(com.sun.tools.javac.tree.JCTree$JCArrayTypeTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCArrayTypeTree;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCArrayTypeTree tree
         0: .line 2263
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCArrayTypeTree.elemtype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
         1: .line 2264
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCArrayTypeTree tree
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCArrayTypeTree;
    MethodParameters:
      Name  Flags
      tree  

  public void visitClassDef(com.sun.tools.javac.tree.JCTree$JCClassDecl);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
         0: .line 2268
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            astore 2 /* supertypes */
        start local 2 // com.sun.tools.javac.util.List supertypes
         1: .line 2269
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.getExtendsClause:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            ifnull 3
         2: .line 2270
            aload 2 /* supertypes */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.getExtendsClause:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 2 /* supertypes */
         3: .line 2272
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.getImplementsClause:()Lcom/sun/tools/javac/util/List;
            ifnull 8
         4: .line 2273
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.getImplementsClause:()Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 7
      StackMap locals: com.sun.tools.javac.comp.Check$CycleChecker com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.util.List top java.util.Iterator
      StackMap stack:
         5: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 3 /* intf */
        start local 3 // com.sun.tools.javac.tree.JCTree intf
         6: .line 2274
            aload 2 /* supertypes */
            aload 3 /* intf */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            astore 2 /* supertypes */
        end local 3 // com.sun.tools.javac.tree.JCTree intf
         7: .line 2273
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         8: .line 2277
      StackMap locals: com.sun.tools.javac.comp.Check$CycleChecker com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.util.List
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            aload 2 /* supertypes */
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkClass:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/List;)V
         9: .line 2278
            return
        end local 2 // com.sun.tools.javac.util.List supertypes
        end local 1 // com.sun.tools.javac.tree.JCTree$JCClassDecl tree
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0   10     1        tree  Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
            1   10     2  supertypes  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
            6    7     3        intf  Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
      Name  Flags
      tree  

  void checkClass(com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, com.sun.tools.javac.code.Symbol, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree>);
    descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
        start local 1 // com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition pos
        start local 2 // com.sun.tools.javac.code.Symbol c
        start local 3 // com.sun.tools.javac.util.List supertypes
         0: .line 2281
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.flags_field:J
            ldc 1073741824
            land
            lconst_0
            lcmp
            ifeq 2
         1: .line 2282
            return
         2: .line 2283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
            aload 2 /* c */
            invokevirtual com.sun.tools.javac.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 6
         3: .line 2284
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.comp.Check$CycleChecker.errorFound:Z
         4: .line 2285
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.this$0:Lcom/sun/tools/javac/comp/Check;
            aload 1 /* pos */
            aload 2 /* c */
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            invokevirtual com.sun.tools.javac.comp.Check.noteCyclic:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol$ClassSymbol;)V
         5: .line 2286
            goto 30
      StackMap locals:
      StackMap stack:
         6: aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifne 30
         7: .line 2288
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
            aload 2 /* c */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
         8: .line 2289
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.CLASS:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifeq 29
         9: .line 2290
            aload 3 /* supertypes */
            invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
            ifeq 12
        10: .line 2291
            aload 0 /* this */
            aload 3 /* supertypes */
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.scan:(Lcom/sun/tools/javac/util/List;)V
        11: .line 2292
            goto 23
        12: .line 2294
      StackMap locals:
      StackMap stack:
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 4 /* ct */
        start local 4 // com.sun.tools.javac.code.Type$ClassType ct
        13: .line 2295
            aload 4 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
            ifnull 15
        14: .line 2296
            aload 4 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
            ifnonnull 18
        15: .line 2298
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.tools.javac.comp.Check$CycleChecker.partialCheck:Z
        16: .line 2311
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
        17: .line 2299
            return
        18: .line 2301
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* pos */
            aload 4 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.supertype_field:Lcom/sun/tools/javac/code/Type;
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkSymbol:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
        19: .line 2302
            aload 4 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals: com.sun.tools.javac.comp.Check$CycleChecker com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.util.List com.sun.tools.javac.code.Type$ClassType top java.util.Iterator
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            astore 5 /* intf */
        start local 5 // com.sun.tools.javac.code.Type intf
        21: .line 2303
            aload 0 /* this */
            aload 1 /* pos */
            aload 5 /* intf */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkSymbol:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
        end local 5 // com.sun.tools.javac.code.Type intf
        22: .line 2302
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        end local 4 // com.sun.tools.javac.code.Type$ClassType ct
        23: .line 2306
      StackMap locals: com.sun.tools.javac.comp.Check$CycleChecker com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.util.List
      StackMap stack:
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.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.TYP:Lcom/sun/tools/javac/code/Kinds$Kind;
            if_acmpne 29
        24: .line 2307
            aload 0 /* this */
            aload 1 /* pos */
            aload 2 /* c */
            getfield com.sun.tools.javac.code.Symbol.owner:Lcom/sun/tools/javac/code/Symbol;
            invokevirtual com.sun.tools.javac.comp.Check$CycleChecker.checkSymbol:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;)V
        25: .line 2310
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 7
        27: .line 2311
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
        28: .line 2312
            aload 7
            athrow
        29: .line 2311
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Check$CycleChecker.seenClasses:Lcom/sun/tools/javac/util/List;
        30: .line 2314
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.util.List supertypes
        end local 2 // com.sun.tools.javac.code.Symbol c
        end local 1 // com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition pos
        end local 0 // com.sun.tools.javac.comp.Check$CycleChecker this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Lcom/sun/tools/javac/comp/Check$CycleChecker;
            0   31     1         pos  Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
            0   31     2           c  Lcom/sun/tools/javac/code/Symbol;
            0   31     3  supertypes  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
           13   23     4          ct  Lcom/sun/tools/javac/code/Type$ClassType;
           21   22     5        intf  Lcom/sun/tools/javac/code/Type;
      Exception table:
        from    to  target  type
           7    16      26  any
          18    26      26  any
    Signature: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;)V
    MethodParameters:
            Name  Flags
      pos         
      c           
      supertypes  
}
SourceFile: "Check.java"
NestHost: com.sun.tools.javac.comp.Check
InnerClasses:
  public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol 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 ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  CycleChecker = com.sun.tools.javac.comp.Check$CycleChecker of com.sun.tools.javac.comp.Check
  public JCArrayTypeTree = com.sun.tools.javac.tree.JCTree$JCArrayTypeTree of com.sun.tools.javac.tree.JCTree
  public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
  public JCCompilationUnit = com.sun.tools.javac.tree.JCTree$JCCompilationUnit of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCFieldAccess = com.sun.tools.javac.tree.JCTree$JCFieldAccess of com.sun.tools.javac.tree.JCTree
  public JCIdent = com.sun.tools.javac.tree.JCTree$JCIdent of com.sun.tools.javac.tree.JCTree
  public JCTypeApply = com.sun.tools.javac.tree.JCTree$JCTypeApply of com.sun.tools.javac.tree.JCTree
  public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic