public class com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType extends com.sun.tools.javac.code.Type$MethodType
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType
  super_class: com.sun.tools.javac.code.Type$MethodType
{
  final com.sun.tools.javac.comp.InferenceContext inferenceContext;
    descriptor: Lcom/sun/tools/javac/comp/InferenceContext;
    flags: (0x0010) ACC_FINAL

  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;>;

  final com.sun.tools.javac.util.Warner warn;
    descriptor: Lcom/sun/tools/javac/util/Warner;
    flags: (0x0010) ACC_FINAL

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

  public void <init>(com.sun.tools.javac.code.Type$MethodType, com.sun.tools.javac.comp.InferenceContext, com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.util.Warner);
    descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$MethodType;Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/util/Warner;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
        start local 2 // com.sun.tools.javac.code.Type$MethodType mtype
        start local 3 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        start local 4 // com.sun.tools.javac.comp.Env env
        start local 5 // com.sun.tools.javac.util.Warner warn
         0: .line 286
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
         1: .line 287
            aload 0 /* this */
            aload 2 /* mtype */
            invokevirtual com.sun.tools.javac.code.Type$MethodType.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            aload 2 /* mtype */
            invokevirtual com.sun.tools.javac.code.Type$MethodType.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 2 /* mtype */
            invokevirtual com.sun.tools.javac.code.Type$MethodType.getThrownTypes:()Lcom/sun/tools/javac/util/List;
            aload 2 /* mtype */
            getfield com.sun.tools.javac.code.Type$MethodType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
            invokespecial com.sun.tools.javac.code.Type$MethodType.<init>:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)V
         2: .line 288
            aload 0 /* this */
            aload 3 /* inferenceContext */
            putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
         3: .line 289
            aload 0 /* this */
            aload 4 /* env */
            putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.env:Lcom/sun/tools/javac/comp/Env;
         4: .line 290
            aload 0 /* this */
            aload 5 /* warn */
            putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.warn:Lcom/sun/tools/javac/util/Warner;
         5: .line 291
            return
        end local 5 // com.sun.tools.javac.util.Warner warn
        end local 4 // com.sun.tools.javac.comp.Env env
        end local 3 // com.sun.tools.javac.comp.InferenceContext inferenceContext
        end local 2 // com.sun.tools.javac.code.Type$MethodType mtype
        end local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    6     0              this  Lcom/sun/tools/javac/comp/Infer$PartiallyInferredMethodType;
            0    6     2             mtype  Lcom/sun/tools/javac/code/Type$MethodType;
            0    6     3  inferenceContext  Lcom/sun/tools/javac/comp/InferenceContext;
            0    6     4               env  Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
            0    6     5              warn  Lcom/sun/tools/javac/util/Warner;
    Signature: (Lcom/sun/tools/javac/code/Type$MethodType;Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/util/Warner;)V
    MethodParameters:
                  Name  Flags
      this$0            final
      mtype             
      inferenceContext  
      env               
      warn              

  public boolean isPartial();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
         0: .line 304
            iconst_1
            ireturn
        end local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Infer$PartiallyInferredMethodType;

  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=11, args_size=2
        start local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
        start local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
         0: .line 312
            new com.sun.tools.javac.util.Warner
            dup
            aconst_null
            invokespecial com.sun.tools.javac.util.Warner.<init>:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)V
            astore 2 /* noWarnings */
        start local 2 // com.sun.tools.javac.util.Warner noWarnings
         1: .line 313
            aconst_null
            astore 3 /* saved_undet */
        start local 3 // com.sun.tools.javac.util.List saved_undet
         2: .line 319
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.save:()Lcom/sun/tools/javac/util/List;
            astore 3 /* saved_undet */
         3: .line 320
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.warn:Lcom/sun/tools/javac/util/Warner;
            getstatic com.sun.tools.javac.code.Lint$LintCategory.UNCHECKED:Lcom/sun/tools/javac/code/Lint$LintCategory;
            invokevirtual com.sun.tools.javac.util.Warner.hasNonSilentLint:(Lcom/sun/tools/javac/code/Lint$LintCategory;)Z
            istore 4 /* unchecked */
        start local 4 // boolean unchecked
         4: .line 321
            iload 4 /* unchecked */
            ifne 22
         5: .line 322
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.getReturnType:()Lcom/sun/tools/javac/code/Type;
            aload 1 /* resultInfo */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            invokevirtual com.sun.tools.javac.comp.Infer.shouldPropagate:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/comp/InferenceContext;)Z
            istore 5 /* shouldPropagate */
        start local 5 // boolean shouldPropagate
         6: .line 324
            iload 5 /* shouldPropagate */
            ifeq 8
         7: .line 325
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.asMethodType:()Lcom/sun/tools/javac/code/Type$MethodType;
            aconst_null
            invokevirtual com.sun.tools.javac.comp.Infer.roots:(Lcom/sun/tools/javac/code/Type$MethodType;Lcom/sun/tools/javac/comp/DeferredAttr$DeferredAttrContext;)Lcom/sun/tools/javac/util/List;
            iconst_0
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.warn:Lcom/sun/tools/javac/util/Warner;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.min:(Lcom/sun/tools/javac/util/List;ZLcom/sun/tools/javac/util/Warner;)Lcom/sun/tools/javac/comp/InferenceContext;
            goto 9
         8: .line 326
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
         9: .line 324
      StackMap locals:
      StackMap stack: com.sun.tools.javac.comp.InferenceContext
            astore 6 /* minContext */
        start local 6 // com.sun.tools.javac.comp.InferenceContext minContext
        10: .line 328
            aload 6 /* minContext */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.asMethodType:()Lcom/sun/tools/javac/code/Type$MethodType;
            invokevirtual com.sun.tools.javac.comp.InferenceContext.update:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            checkcast com.sun.tools.javac.code.Type$MethodType
            astore 7 /* other */
        start local 7 // com.sun.tools.javac.code.Type$MethodType other
        11: .line 329
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.tree:Lcom/sun/tools/javac/tree/JCTree;
            aload 1 /* resultInfo */
        12: .line 330
            aload 7 /* other */
            aload 6 /* minContext */
        13: .line 329
            invokevirtual com.sun.tools.javac.comp.Infer.generateReturnConstraints:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/comp/Attr$ResultInfo;Lcom/sun/tools/javac/code/Type$MethodType;Lcom/sun/tools/javac/comp/InferenceContext;)Lcom/sun/tools/javac/code/Type;
            astore 8 /* newRestype */
        start local 8 // com.sun.tools.javac.code.Type newRestype
        14: .line 332
            iload 5 /* shouldPropagate */
            ifeq 22
        15: .line 334
            aload 6 /* minContext */
            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.inferenceContext:()Lcom/sun/tools/javac/comp/InferenceContext;
        16: .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;
            invokevirtual com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext.insideOverloadPhase:()Z
        17: .line 334
            invokevirtual com.sun.tools.javac.comp.InferenceContext.dupTo:(Lcom/sun/tools/javac/comp/InferenceContext;Z)V
        18: .line 336
            aload 8 /* newRestype */
            astore 10
        19: .line 352
            aload 3 /* saved_undet */
            ifnull 21
        20: .line 353
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 3 /* saved_undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
        21: .line 336
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List int int com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.code.Type$MethodType com.sun.tools.javac.code.Type top com.sun.tools.javac.code.Type
      StackMap stack:
            aload 10
            areturn
        end local 8 // com.sun.tools.javac.code.Type newRestype
        end local 7 // com.sun.tools.javac.code.Type$MethodType other
        end local 6 // com.sun.tools.javac.comp.InferenceContext minContext
        end local 5 // boolean shouldPropagate
        22: .line 339
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 2 /* noWarnings */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/util/Warner;)V
        23: .line 340
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getReturnType:()Lcom/sun/tools/javac/code/Type;
            astore 5 /* ret */
        start local 5 // com.sun.tools.javac.code.Type ret
        24: .line 341
            iload 4 /* unchecked */
            ifeq 26
        25: .line 344
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
            getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
            aload 5 /* ret */
            invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 5 /* ret */
        26: .line 346
      StackMap locals: com.sun.tools.javac.code.Type
      StackMap stack:
            aload 1 /* resultInfo */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.env:Lcom/sun/tools/javac/comp/Env;
            getfield com.sun.tools.javac.comp.Env.tree:Lcom/sun/tools/javac/tree/JCTree;
            aload 5 /* ret */
            invokevirtual com.sun.tools.javac.comp.Attr$ResultInfo.check:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
            astore 10
        27: .line 352
            aload 3 /* saved_undet */
            ifnull 29
        28: .line 353
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 3 /* saved_undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
        29: .line 346
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List int com.sun.tools.javac.code.Type top top top top com.sun.tools.javac.code.Type
      StackMap stack:
            aload 10
            areturn
        end local 5 // com.sun.tools.javac.code.Type ret
        end local 4 // boolean unchecked
        30: .line 347
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List
      StackMap stack: com.sun.tools.javac.comp.Infer$InferenceException
            astore 4 /* ex */
        start local 4 // com.sun.tools.javac.comp.Infer$InferenceException ex
        31: .line 348
            aload 1 /* resultInfo */
            getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
            aconst_null
            aload 4 /* ex */
            invokevirtual com.sun.tools.javac.comp.Infer$InferenceException.getDiagnostic:()Lcom/sun/tools/javac/util/JCDiagnostic;
            invokeinterface com.sun.tools.javac.comp.Check$CheckContext.report:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic;)V
        32: .line 349
            invokestatic com.sun.tools.javac.util.Assert.error:()V
        33: .line 352
            aload 3 /* saved_undet */
            ifnull 35
        34: .line 353
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 3 /* saved_undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
        35: .line 350
      StackMap locals: com.sun.tools.javac.comp.Infer$InferenceException
      StackMap stack:
            aconst_null
            areturn
        end local 4 // com.sun.tools.javac.comp.Infer$InferenceException ex
        36: .line 351
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List
      StackMap stack: java.lang.Throwable
            astore 9
        37: .line 352
            aload 3 /* saved_undet */
            ifnull 39
        38: .line 353
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
            aload 3 /* saved_undet */
            invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
        39: .line 355
      StackMap locals: com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType com.sun.tools.javac.comp.Attr$ResultInfo com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top top top top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        end local 3 // com.sun.tools.javac.util.List saved_undet
        end local 2 // com.sun.tools.javac.util.Warner noWarnings
        end local 1 // com.sun.tools.javac.comp.Attr$ResultInfo resultInfo
        end local 0 // com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   40     0             this  Lcom/sun/tools/javac/comp/Infer$PartiallyInferredMethodType;
            0   40     1       resultInfo  Lcom/sun/tools/javac/comp/Attr$ResultInfo;
            1   40     2       noWarnings  Lcom/sun/tools/javac/util/Warner;
            2   40     3      saved_undet  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
            4   30     4        unchecked  Z
            6   22     5  shouldPropagate  Z
           10   22     6       minContext  Lcom/sun/tools/javac/comp/InferenceContext;
           11   22     7            other  Lcom/sun/tools/javac/code/Type$MethodType;
           14   22     8       newRestype  Lcom/sun/tools/javac/code/Type;
           24   30     5              ret  Lcom/sun/tools/javac/code/Type;
           31   36     4               ex  Lcom/sun/tools/javac/comp/Infer$InferenceException;
      Exception table:
        from    to  target  type
           2    19      30  Class com.sun.tools.javac.comp.Infer$InferenceException
          22    27      30  Class com.sun.tools.javac.comp.Infer$InferenceException
           2    19      36  any
          22    27      36  any
          30    33      36  any
    MethodParameters:
            Name  Flags
      resultInfo  
}
SourceFile: "Infer.java"
NestHost: com.sun.tools.javac.comp.Infer
InnerClasses:
  public final LintCategory = com.sun.tools.javac.code.Lint$LintCategory of com.sun.tools.javac.code.Lint
  public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
  public MethodType = com.sun.tools.javac.code.Type$MethodType of com.sun.tools.javac.code.Type
  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
  DeferredAttrContext = com.sun.tools.javac.comp.DeferredAttr$DeferredAttrContext of com.sun.tools.javac.comp.DeferredAttr
  public InferenceException = com.sun.tools.javac.comp.Infer$InferenceException of com.sun.tools.javac.comp.Infer
  public PartiallyInferredMethodType = com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType of com.sun.tools.javac.comp.Infer
  public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic