public class com.sun.tools.javac.comp.DeferredAttr$DeferredType extends com.sun.tools.javac.code.Type
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.comp.DeferredAttr$DeferredType
  super_class: com.sun.tools.javac.code.Type
{
  public com.sun.tools.javac.tree.JCTree$JCExpression tree;
    descriptor: Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC

  com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext> env;
    descriptor: Lcom/sun/tools/javac/comp/Env;
    flags: (0x0000) 
    Signature: Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;

  com.sun.tools.javac.comp.DeferredAttr$AttrMode mode;
    descriptor: Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
    flags: (0x0000) 

  java.util.Set<com.sun.tools.javac.code.Symbol> notPertinentToApplicability;
    descriptor: Ljava/util/Set;
    flags: (0x0000) 
    Signature: Ljava/util/Set<Lcom/sun/tools/javac/code/Symbol;>;

  com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache speculativeCache;
    descriptor: Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache;
    flags: (0x0000) 

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

  void <init>(com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>);
    descriptor: (Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/comp/Env;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 2 // com.sun.tools.javac.tree.JCTree$JCExpression tree
        start local 3 // com.sun.tools.javac.comp.Env env
         0: .line 222
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
         1: .line 223
            aload 0 /* this */
            aconst_null
            getstatic com.sun.tools.javac.code.TypeMetadata.EMPTY:Lcom/sun/tools/javac/code/TypeMetadata;
            invokespecial com.sun.tools.javac.code.Type.<init>:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;Lcom/sun/tools/javac/code/TypeMetadata;)V
         2: .line 219
            aload 0 /* this */
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.notPertinentToApplicability:Ljava/util/Set;
         3: .line 224
            aload 0 /* this */
            aload 2 /* tree */
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.tree:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         4: .line 225
            aload 0 /* this */
            aload 1
            getfield com.sun.tools.javac.comp.DeferredAttr.attr:Lcom/sun/tools/javac/comp/Attr;
            aload 3 /* env */
            invokevirtual com.sun.tools.javac.comp.Attr.copyEnv:(Lcom/sun/tools/javac/comp/Env;)Lcom/sun/tools/javac/comp/Env;
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.env:Lcom/sun/tools/javac/comp/Env;
         5: .line 226
            aload 0 /* this */
            new com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache
            dup
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;)V
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.speculativeCache:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache;
         6: .line 227
            return
        end local 3 // com.sun.tools.javac.comp.Env env
        end local 2 // com.sun.tools.javac.tree.JCTree$JCExpression tree
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0    7     2  tree  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            0    7     3   env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
    Signature: (Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;)V
    MethodParameters:
        Name  Flags
      this$0  final
      tree    
      env     

  public com.sun.tools.javac.comp.DeferredAttr$DeferredType cloneWithMetadata(com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 1 // com.sun.tools.javac.code.TypeMetadata md
         0: .line 231
            new java.lang.AssertionError
            dup
            ldc "Cannot add metadata to a deferred type"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 1 // com.sun.tools.javac.code.TypeMetadata md
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0    1     1    md  Lcom/sun/tools/javac/code/TypeMetadata;
    MethodParameters:
      Name  Flags
      md    

  public com.sun.tools.javac.code.TypeTag getTag();
    descriptor: ()Lcom/sun/tools/javac/code/TypeTag;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
         0: .line 236
            getstatic com.sun.tools.javac.code.TypeTag.DEFERRED:Lcom/sun/tools/javac/code/TypeTag;
            areturn
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;

  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.comp.DeferredAttr$DeferredType this
         0: .line 241
            ldc "DeferredType"
            areturn
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;

  com.sun.tools.javac.code.Type speculativeType(com.sun.tools.javac.code.Symbol, com.sun.tools.javac.comp.Resolve$MethodResolutionPhase);
    descriptor: (Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 1 // com.sun.tools.javac.code.Symbol msym
        start local 2 // com.sun.tools.javac.comp.Resolve$MethodResolutionPhase phase
         0: .line 299
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.speculativeCache:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache;
            aload 1 /* msym */
            aload 2 /* phase */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache.get:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;)Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache$Entry;
            astore 3 /* e */
        start local 3 // com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry e
         1: .line 300
            aload 3 /* e */
            ifnull 2
            aload 3 /* e */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry.speculativeTree:Lcom/sun/tools/javac/tree/JCTree;
            getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
            goto 3
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry
      StackMap stack:
         2: getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.code.Type
         3: areturn
        end local 3 // com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry e
        end local 2 // com.sun.tools.javac.comp.Resolve$MethodResolutionPhase phase
        end local 1 // com.sun.tools.javac.code.Symbol msym
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0    4     1   msym  Lcom/sun/tools/javac/code/Symbol;
            0    4     2  phase  Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;
            1    4     3      e  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache$Entry;
    MethodParameters:
       Name  Flags
      msym   
      phase  

  com.sun.tools.javac.tree.JCTree speculativeTree(com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext);
    descriptor: (Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;)Lcom/sun/tools/javac/tree/JCTree;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 1 // com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext deferredAttrContext
         0: .line 304
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.speculativeCache:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache;
            aload 1 /* deferredAttrContext */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.msym:Lcom/sun/tools/javac/code/Symbol;
            aload 1 /* deferredAttrContext */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.phase:Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache.get:(Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/comp/Resolve$MethodResolutionPhase;)Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache$Entry;
            astore 2 /* e */
        start local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry e
         1: .line 305
            aload 2 /* e */
            ifnull 2
            aload 2 /* e */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry.speculativeTree:Lcom/sun/tools/javac/tree/JCTree;
            goto 3
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            getfield com.sun.tools.javac.comp.DeferredAttr.stuckTree:Lcom/sun/tools/javac/tree/JCTree;
      StackMap locals:
      StackMap stack: com.sun.tools.javac.tree.JCTree
         3: areturn
        end local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry e
        end local 1 // com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext deferredAttrContext
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    4     0                 this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0    4     1  deferredAttrContext  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
            1    4     2                    e  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType$SpeculativeCache$Entry;
    MethodParameters:
                     Name  Flags
      deferredAttrContext  

  com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter completer();
    descriptor: ()Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
         0: .line 309
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            getfield com.sun.tools.javac.comp.DeferredAttr.basicCompleter:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
            areturn
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;

  com.sun.tools.javac.code.Type check(com.sun.tools.javac.comp.Attr$ResultInfo);
    descriptor: (Lcom/sun/tools/javac/comp/Attr$ResultInfo;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
         0: .line 321
            aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.pt:Lcom/sun/tools/javac/code/Type;
            getstatic com.sun.tools.javac.code.TypeTag.NONE:Lcom/sun/tools/javac/code/TypeTag;
            invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
            ifne 1
            aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.pt:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
            ifeq 3
         1: .line 322
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            getfield com.sun.tools.javac.comp.DeferredAttr.dummyStuckPolicy:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
            astore 2 /* deferredStuckPolicy */
        start local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
         2: .line 323
            goto 8
        end local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
      StackMap locals:
      StackMap stack:
         3: aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
            invokeinterface com.sun.tools.javac.comp.Check$CheckContext.deferredAttrContext:()Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.mode:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
            getstatic com.sun.tools.javac.comp.DeferredAttr$AttrMode.SPECULATIVE:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
            if_acmpeq 5
         4: .line 324
            aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
            invokeinterface com.sun.tools.javac.comp.Check$CheckContext.deferredAttrContext:()Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.insideOverloadPhase:()Z
            ifeq 7
         5: .line 325
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.comp.DeferredAttr$OverloadStuckPolicy
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            aload 1 /* resultInfo */
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$OverloadStuckPolicy.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;)V
            astore 2 /* deferredStuckPolicy */
        start local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
         6: .line 326
            goto 8
        end local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
         7: .line 327
      StackMap locals:
      StackMap stack:
            new com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy
            dup
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            aload 1 /* resultInfo */
            aload 0 /* this */
            invokespecial com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy.<init>:(Lcom/sun/tools/javac/comp/DeferredAttr;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;)V
            astore 2 /* deferredStuckPolicy */
        start local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
         8: .line 329
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy
      StackMap stack:
            aload 0 /* this */
            aload 1 /* resultInfo */
            aload 2 /* deferredStuckPolicy */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredType.completer:()Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredType.check:(Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;)Lcom/sun/tools/javac/code/Type;
            areturn
        end local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
        end local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0    9     1           resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            2    3     2  deferredStuckPolicy  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
            6    7     2  deferredStuckPolicy  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
            8    9     2  deferredStuckPolicy  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
    MethodParameters:
            Name  Flags
      resultInfo  

  private com.sun.tools.javac.code.Type check(com.sun.tools.javac.comp.Attr$ResultInfo, com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy, com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter);
    descriptor: (Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;)Lcom/sun/tools/javac/code/Type;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
        start local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        start local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
        start local 3 // com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter deferredTypeCompleter
         0: .line 335
            aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
            invokeinterface com.sun.tools.javac.comp.Check$CheckContext.deferredAttrContext:()Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
         1: .line 334
            astore 4 /* deferredAttrContext */
        start local 4 // com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext deferredAttrContext
         2: .line 336
            aload 4 /* deferredAttrContext */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.this$0:Lcom/sun/tools/javac/comp/DeferredAttr;
            getfield com.sun.tools.javac.comp.DeferredAttr.emptyDeferredAttrContext:Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
            if_acmpeq 3
            iconst_1
            goto 4
      StackMap locals: com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
         5: .line 337
            aload 2 /* deferredStuckPolicy */
            invokeinterface com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy.isStuck:()Z
            ifeq 9
         6: .line 338
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.notPertinentToApplicability:Ljava/util/Set;
            aload 4 /* deferredAttrContext */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.msym:Lcom/sun/tools/javac/code/Symbol;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         7: .line 339
            aload 4 /* deferredAttrContext */
            aload 0 /* this */
            aload 1 /* resultInfo */
            aload 2 /* deferredStuckPolicy */
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.addDeferredAttrNode:(Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;)V
         8: .line 340
            getstatic com.sun.tools.javac.code.Type.noType:Lcom/sun/tools/javac/code/Type$JCNoType;
            areturn
         9: .line 343
      StackMap locals:
      StackMap stack:
            aload 3 /* deferredTypeCompleter */
            aload 0 /* this */
            aload 1 /* resultInfo */
            aload 4 /* deferredAttrContext */
            invokeinterface com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter.complete:(Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;)Lcom/sun/tools/javac/code/Type;
            astore 6
        10: .line 345
            aload 0 /* this */
            aload 4 /* deferredAttrContext */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.mode:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.mode:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
        11: .line 343
            aload 6
            areturn
        12: .line 344
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 5
        13: .line 345
            aload 0 /* this */
            aload 4 /* deferredAttrContext */
            getfield com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.mode:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
            putfield com.sun.tools.javac.comp.DeferredAttr$DeferredType.mode:Lcom/sun/tools/javac/comp/DeferredAttr$AttrMode;
        14: .line 346
            aload 5
            athrow
        end local 4 // com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext deferredAttrContext
        end local 3 // com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter deferredTypeCompleter
        end local 2 // com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy deferredStuckPolicy
        end local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 0 // com.sun.tools.javac.comp.DeferredAttr$DeferredType this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   15     0                   this  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            0   15     1             resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            0   15     2    deferredStuckPolicy  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredStuckPolicy;
            0   15     3  deferredTypeCompleter  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredTypeCompleter;
            2   15     4    deferredAttrContext  Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;
      Exception table:
        from    to  target  type
           9    10      12  any
    MethodParameters:
                       Name  Flags
      resultInfo             
      deferredStuckPolicy    
      deferredTypeCompleter  

  public com.sun.tools.javac.code.Type cloneWithMetadata(com.sun.tools.javac.code.TypeMetadata);
    descriptor: (Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/code/Type;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredType.cloneWithMetadata:(Lcom/sun/tools/javac/code/TypeMetadata;)Lcom/sun/tools/javac/comp/DeferredAttr$DeferredType;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "DeferredAttr.java"
NestHost: com.sun.tools.javac.comp.DeferredAttr
InnerClasses:
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  ResultInfo = com.sun.tools.javac.comp.Attr$ResultInfo of com.sun.tools.javac.comp.Attr
  public abstract CheckContext = com.sun.tools.javac.comp.Check$CheckContext of com.sun.tools.javac.comp.Check
  public final AttrMode = com.sun.tools.javac.comp.DeferredAttr$AttrMode of com.sun.tools.javac.comp.DeferredAttr
  CheckStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$CheckStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  DeferredAttrContext = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext of com.sun.tools.javac.comp.DeferredAttr
  abstract DeferredStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$DeferredStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  public DeferredType = com.sun.tools.javac.comp.DeferredAttr$DeferredType of com.sun.tools.javac.comp.DeferredAttr
  SpeculativeCache = com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache of com.sun.tools.javac.comp.DeferredAttr$DeferredType
  Entry = com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache$Entry of com.sun.tools.javac.comp.DeferredAttr$DeferredType$SpeculativeCache
  abstract DeferredTypeCompleter = com.sun.tools.javac.comp.DeferredAttr$DeferredTypeCompleter of com.sun.tools.javac.comp.DeferredAttr
  OverloadStuckPolicy = com.sun.tools.javac.comp.DeferredAttr$OverloadStuckPolicy of com.sun.tools.javac.comp.DeferredAttr
  MethodResolutionPhase = com.sun.tools.javac.comp.Resolve$MethodResolutionPhase of com.sun.tools.javac.comp.Resolve
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree