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 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
1: aload 0
aload 2
invokevirtual com.sun.tools.javac.code.Type$MethodType.getParameterTypes:()Lcom/sun/tools/javac/util/List;
aload 2
invokevirtual com.sun.tools.javac.code.Type$MethodType.getReturnType:()Lcom/sun/tools/javac/code/Type;
aload 2
invokevirtual com.sun.tools.javac.code.Type$MethodType.getThrownTypes:()Lcom/sun/tools/javac/util/List;
aload 2
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: aload 0
aload 3
putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
3: aload 0
aload 4
putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.env:Lcom/sun/tools/javac/comp/Env;
4: aload 0
aload 5
putfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.warn:Lcom/sun/tools/javac/util/Warner;
5: return
end local 5 end local 4 end local 3 end local 2 end local 0 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 0: iconst_1
ireturn
end local 0 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 start local 1 0: 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
start local 2 1: aconst_null
astore 3
start local 3 2: aload 0
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
3: aload 0
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
start local 4 4: iload 4
ifne 22
5: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0
invokevirtual com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.getReturnType:()Lcom/sun/tools/javac/code/Type;
aload 1
aload 0
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
start local 5 6: iload 5
ifeq 8
7: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0
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
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: 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
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
9: StackMap locals:
StackMap stack: com.sun.tools.javac.comp.InferenceContext
astore 6
start local 6 10: aload 6
aload 0
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
start local 7 11: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0
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
12: aload 7
aload 6
13: 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
start local 8 14: iload 5
ifeq 22
15: aload 6
aload 1
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: aload 1
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: invokevirtual com.sun.tools.javac.comp.InferenceContext.dupTo:(Lcom/sun/tools/javac/comp/InferenceContext;Z)V
18: aload 8
astore 10
19: aload 3
ifnull 21
20: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 3
invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
21: 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 end local 7 end local 6 end local 5 22: 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
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 2
invokevirtual com.sun.tools.javac.comp.InferenceContext.solve:(Lcom/sun/tools/javac/util/Warner;)V
23: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 0
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
start local 5 24: iload 4
ifeq 26
25: aload 0
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
invokevirtual com.sun.tools.javac.code.Types.erasure:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
astore 5
26: StackMap locals: com.sun.tools.javac.code.Type
StackMap stack:
aload 1
aload 0
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
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: aload 3
ifnull 29
28: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 3
invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
29: 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 end local 4 30: 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
start local 4 31: aload 1
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
aconst_null
aload 4
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: invokestatic com.sun.tools.javac.util.Assert.error:()V
33: aload 3
ifnull 35
34: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 3
invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
35: StackMap locals: com.sun.tools.javac.comp.Infer$InferenceException
StackMap stack:
aconst_null
areturn
end local 4 36: 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: aload 3
ifnull 39
38: aload 0
getfield com.sun.tools.javac.comp.Infer$PartiallyInferredMethodType.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 3
invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
39: 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 end local 2 end local 1 end local 0 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