class com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer extends com.sun.tools.javac.tree.JCTree$Visitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer
  super_class: com.sun.tools.javac.tree.JCTree$Visitor
{
  com.sun.tools.javac.code.Symbol$ModuleSymbol msym;
    descriptor: Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
    flags: (0x0000) 

  com.sun.tools.javac.code.Type originalType;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 

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

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Symbol$ClassSymbol> synthesizedSymbols;
    descriptor: Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Symbol$ClassSymbol;>;

  com.sun.tools.javac.code.Type result;
    descriptor: Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 

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

  void <init>(com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase, com.sun.tools.javac.code.Symbol$ModuleSymbol, com.sun.tools.javac.code.Type, boolean);
    descriptor: (Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;Lcom/sun/tools/javac/code/Type;Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        start local 3 // com.sun.tools.javac.code.Type originalType
        start local 4 // boolean interfaceExpected
         0: .line 575
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$Visitor.<init>:()V
         1: .line 572
            aload 0 /* this */
            invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizedSymbols:Lcom/sun/tools/javac/util/List;
         2: .line 576
            aload 0 /* this */
            aload 2 /* msym */
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
         3: .line 577
            aload 0 /* this */
            aload 3 /* originalType */
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.originalType:Lcom/sun/tools/javac/code/Type;
         4: .line 578
            aload 0 /* this */
            iload 4 /* interfaceExpected */
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
         5: .line 579
            return
        end local 4 // boolean interfaceExpected
        end local 3 // com.sun.tools.javac.code.Type originalType
        end local 2 // com.sun.tools.javac.code.Symbol$ModuleSymbol msym
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    6     2               msym  Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            0    6     3       originalType  Lcom/sun/tools/javac/code/Type;
            0    6     4  interfaceExpected  Z
    MethodParameters:
                   Name  Flags
      this$0             final
      msym               
      originalType       
      interfaceExpected  

  com.sun.tools.javac.code.Type visit(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
         0: .line 582
            aload 1 /* tree */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree.accept:(Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
         1: .line 583
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
            areturn
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree;
    MethodParameters:
      Name  Flags
      tree  

  com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> visit(com.sun.tools.javac.util.List<? extends com.sun.tools.javac.tree.JCTree>);
    descriptor: (Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.util.List trees
         0: .line 587
            new com.sun.tools.javac.util.ListBuffer
            dup
            invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
            astore 2 /* lb */
        start local 2 // com.sun.tools.javac.util.ListBuffer lb
         1: .line 588
            aload 1 /* trees */
            invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.tools.javac.tree.JCTree
            astore 3 /* t */
        start local 3 // com.sun.tools.javac.tree.JCTree t
         3: .line 589
            aload 2 /* lb */
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.visit:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
            pop
        end local 3 // com.sun.tools.javac.tree.JCTree t
         4: .line 588
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 590
            aload 2 /* lb */
            invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
            areturn
        end local 2 // com.sun.tools.javac.util.ListBuffer lb
        end local 1 // com.sun.tools.javac.util.List trees
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    6     1  trees  Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/tree/JCTree;>;
            1    6     2     lb  Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
            3    4     3      t  Lcom/sun/tools/javac/tree/JCTree;
    Signature: (Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/tree/JCTree;>;)Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
       Name  Flags
      trees  

  public void visitTree(com.sun.tools.javac.tree.JCTree);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.tree.JCTree tree
         0: .line 595
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            invokestatic com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.access$0:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;)Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.errType:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
         1: .line 596
            return
        end local 1 // com.sun.tools.javac.tree.JCTree tree
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    2     1  tree  Lcom/sun/tools/javac/tree/JCTree;
    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=4, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
         0: .line 600
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.type:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 3
         1: .line 601
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.type:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
         2: .line 602
            goto 4
         3: .line 603
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCIdent.name:Lcom/sun/tools/javac/util/Name;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.msym:Lcom/sun/tools/javac/code/Symbol$ModuleSymbol;
            getfield com.sun.tools.javac.code.Symbol$ModuleSymbol.unnamedPackage:Lcom/sun/tools/javac/code/Symbol$PackageSymbol;
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizeClass:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
         4: .line 605
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCIdent tree
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    5     1  tree  Lcom/sun/tools/javac/tree/JCTree$JCIdent;
    MethodParameters:
      Name  Flags
      tree  

  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=5, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
         0: .line 609
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.type:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 3
         1: .line 610
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.type:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
         2: .line 611
            goto 13
         3: .line 613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
            istore 3 /* prev */
        start local 3 // boolean prev
         4: .line 615
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
         5: .line 616
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.selected:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.visit:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Type;
            astore 2 /* selectedType */
        start local 2 // com.sun.tools.javac.code.Type selectedType
         6: .line 617
            goto 10
        end local 2 // com.sun.tools.javac.code.Type selectedType
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer com.sun.tools.javac.tree.JCTree$JCFieldAccess top int
      StackMap stack: java.lang.Throwable
         7: astore 4
         8: .line 618
            aload 0 /* this */
            iload 3 /* prev */
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
         9: .line 619
            aload 4
            athrow
        start local 2 // com.sun.tools.javac.code.Type selectedType
        10: .line 618
      StackMap locals: com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer com.sun.tools.javac.tree.JCTree$JCFieldAccess com.sun.tools.javac.code.Type int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* prev */
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
        11: .line 620
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCFieldAccess.name:Lcom/sun/tools/javac/util/Name;
            aload 2 /* selectedType */
            getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizeClass:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            astore 4 /* c */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        12: .line 621
            aload 0 /* this */
            aload 4 /* c */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        end local 3 // boolean prev
        end local 2 // com.sun.tools.javac.code.Type selectedType
        13: .line 623
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCFieldAccess tree
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0   14     1          tree  Lcom/sun/tools/javac/tree/JCTree$JCFieldAccess;
            6    7     2  selectedType  Lcom/sun/tools/javac/code/Type;
           10   13     2  selectedType  Lcom/sun/tools/javac/code/Type;
            4   13     3          prev  Z
           12   13     4             c  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
      Exception table:
        from    to  target  type
           4     7       7  any
    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=7, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.tree.JCTree$JCTypeApply tree
         0: .line 627
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.type:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.ERROR:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 3
         1: .line 628
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.type:Lcom/sun/tools/javac/code/Type;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
         2: .line 629
            goto 8
         3: .line 630
      StackMap locals:
      StackMap stack:
            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.TypeEnter$AbstractHeaderPhase$Synthesizer.visit:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 2 /* clazzType */
        start local 2 // com.sun.tools.javac.code.Type$ClassType clazzType
         4: .line 631
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizedSymbols:Lcom/sun/tools/javac/util/List;
            aload 2 /* clazzType */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokevirtual com.sun.tools.javac.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 6
         5: .line 632
            aload 0 /* this */
            aload 2 /* clazzType */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            checkcast com.sun.tools.javac.code.Symbol$ClassSymbol
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.arguments:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.size:()I
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizeTyparams:(Lcom/sun/tools/javac/code/Symbol$ClassSymbol;I)V
         6: .line 633
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.arguments:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.visit:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
            astore 3 /* actuals */
        start local 3 // com.sun.tools.javac.util.List actuals
         7: .line 634
            aload 0 /* this */
            new com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$1
            dup
            aload 0 /* this */
            aload 1 /* tree */
            getfield com.sun.tools.javac.tree.JCTree$JCTypeApply.type:Lcom/sun/tools/javac/code/Type;
            aload 2 /* clazzType */
            getfield com.sun.tools.javac.code.Type$ClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            aload 3 /* actuals */
            invokespecial com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$1.<init>:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/util/List;)V
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.result:Lcom/sun/tools/javac/code/Type;
        end local 3 // com.sun.tools.javac.util.List actuals
        end local 2 // com.sun.tools.javac.code.Type$ClassType clazzType
         8: .line 641
      StackMap locals:
      StackMap stack:
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$JCTypeApply tree
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    9     1       tree  Lcom/sun/tools/javac/tree/JCTree$JCTypeApply;
            4    8     2  clazzType  Lcom/sun/tools/javac/code/Type$ClassType;
            7    8     3    actuals  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      tree  

  com.sun.tools.javac.code.Symbol$ClassSymbol synthesizeClass(com.sun.tools.javac.util.Name, com.sun.tools.javac.code.Symbol);
    descriptor: (Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.util.Name name
        start local 2 // com.sun.tools.javac.code.Symbol owner
         0: .line 644
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.interfaceExpected:Z
            ifeq 1
            sipush 512
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* flags */
        start local 3 // int flags
         3: .line 645
            new com.sun.tools.javac.code.Symbol$ClassSymbol
            dup
            iload 3 /* flags */
            i2l
            aload 1 /* name */
            aload 2 /* owner */
            invokespecial com.sun.tools.javac.code.Symbol$ClassSymbol.<init>:(JLcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;)V
            astore 4 /* c */
        start local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol c
         4: .line 646
            aload 4 /* c */
            new com.sun.tools.javac.code.Scope$ErrorScope
            dup
            aload 4 /* c */
            invokespecial com.sun.tools.javac.code.Scope$ErrorScope.<init>:(Lcom/sun/tools/javac/code/Symbol;)V
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.members_field:Lcom/sun/tools/javac/code/Scope$WriteableScope;
         5: .line 647
            aload 4 /* c */
            new com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$2
            dup
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.originalType:Lcom/sun/tools/javac/code/Type;
            aload 4 /* c */
            invokespecial com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$2.<init>:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
            putfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
         6: .line 653
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizedSymbols:Lcom/sun/tools/javac/util/List;
            aload 4 /* c */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.synthesizedSymbols:Lcom/sun/tools/javac/util/List;
         7: .line 654
            aload 4 /* c */
            areturn
        end local 4 // com.sun.tools.javac.code.Symbol$ClassSymbol c
        end local 3 // int flags
        end local 2 // com.sun.tools.javac.code.Symbol owner
        end local 1 // com.sun.tools.javac.util.Name name
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0    8     1   name  Lcom/sun/tools/javac/util/Name;
            0    8     2  owner  Lcom/sun/tools/javac/code/Symbol;
            3    8     3  flags  I
            4    8     4      c  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
    MethodParameters:
       Name  Flags
      name   
      owner  

  void synthesizeTyparams(com.sun.tools.javac.code.Symbol$ClassSymbol, int);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$ClassSymbol;I)V
    flags: (0x0000) 
    Code:
      stack=6, locals=6, args_size=3
        start local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
        start local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        start local 2 // int n
         0: .line 658
            aload 1 /* sym */
            getfield com.sun.tools.javac.code.Symbol$ClassSymbol.type:Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$ClassType
            astore 3 /* ct */
        start local 3 // com.sun.tools.javac.code.Type$ClassType ct
         1: .line 659
            aload 3 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
            invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
            invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         2: .line 660
            iload 2 /* n */
            iconst_1
            if_icmpne 6
         3: .line 661
            new com.sun.tools.javac.code.Type$TypeVar
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            invokestatic com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.access$0:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;)Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.names:Lcom/sun/tools/javac/util/Names;
            ldc "T"
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            aload 1 /* sym */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            invokestatic com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.access$0:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;)Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
            invokespecial com.sun.tools.javac.code.Type$TypeVar.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Type;)V
            astore 4 /* v */
        start local 4 // com.sun.tools.javac.code.Type$TypeVar v
         4: .line 662
            aload 3 /* ct */
            aload 3 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
            aload 4 /* v */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
        end local 4 // com.sun.tools.javac.code.Type$TypeVar v
         5: .line 663
            goto 14
         6: .line 664
      StackMap locals: com.sun.tools.javac.code.Type$ClassType
      StackMap stack:
            iload 2 /* n */
            istore 4 /* i */
        start local 4 // int i
         7: goto 13
         8: .line 665
      StackMap locals: int
      StackMap stack:
            new com.sun.tools.javac.code.Type$TypeVar
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            invokestatic com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.access$0:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;)Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.names:Lcom/sun/tools/javac/util/Names;
            new java.lang.StringBuilder
            dup
            ldc "T"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual com.sun.tools.javac.util.Names.fromString:(Ljava/lang/String;)Lcom/sun/tools/javac/util/Name;
            aload 1 /* sym */
         9: .line 666
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer.this$1:Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;
            invokestatic com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase.access$0:(Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase;)Lcom/sun/tools/javac/comp/TypeEnter;
            getfield com.sun.tools.javac.comp.TypeEnter.syms:Lcom/sun/tools/javac/code/Symtab;
            getfield com.sun.tools.javac.code.Symtab.botType:Lcom/sun/tools/javac/code/Type;
        10: .line 665
            invokespecial com.sun.tools.javac.code.Type$TypeVar.<init>:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/code/Type;)V
            astore 5 /* v */
        start local 5 // com.sun.tools.javac.code.Type$TypeVar v
        11: .line 667
            aload 3 /* ct */
            aload 3 /* ct */
            getfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
            aload 5 /* v */
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.code.Type$ClassType.typarams_field:Lcom/sun/tools/javac/util/List;
        end local 5 // com.sun.tools.javac.code.Type$TypeVar v
        12: .line 664
            iinc 4 /* i */ -1
      StackMap locals:
      StackMap stack:
        13: iload 4 /* i */
            ifgt 8
        end local 4 // int i
        14: .line 670
      StackMap locals:
      StackMap stack:
            return
        end local 3 // com.sun.tools.javac.code.Type$ClassType ct
        end local 2 // int n
        end local 1 // com.sun.tools.javac.code.Symbol$ClassSymbol sym
        end local 0 // com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Lcom/sun/tools/javac/comp/TypeEnter$AbstractHeaderPhase$Synthesizer;
            0   15     1   sym  Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
            0   15     2     n  I
            1   15     3    ct  Lcom/sun/tools/javac/code/Type$ClassType;
            4    5     4     v  Lcom/sun/tools/javac/code/Type$TypeVar;
            7   14     4     i  I
           11   12     5     v  Lcom/sun/tools/javac/code/Type$TypeVar;
    MethodParameters:
      Name  Flags
      sym   
      n     
}
SourceFile: "TypeEnter.java"
NestHost: com.sun.tools.javac.comp.TypeEnter
InnerClasses:
  public ErrorScope = com.sun.tools.javac.code.Scope$ErrorScope of com.sun.tools.javac.code.Scope
  public ClassSymbol = com.sun.tools.javac.code.Symbol$ClassSymbol of com.sun.tools.javac.code.Symbol
  public ModuleSymbol = com.sun.tools.javac.code.Symbol$ModuleSymbol of com.sun.tools.javac.code.Symbol
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
  public TypeVar = com.sun.tools.javac.code.Type$TypeVar of com.sun.tools.javac.code.Type
  private abstract AbstractHeaderPhase = com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase of com.sun.tools.javac.comp.TypeEnter
  private Synthesizer = com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer of com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase
  com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$1
  com.sun.tools.javac.comp.TypeEnter$AbstractHeaderPhase$Synthesizer$2
  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 Visitor = com.sun.tools.javac.tree.JCTree$Visitor of com.sun.tools.javac.tree.JCTree