class com.sun.tools.javac.comp.Infer$GraphSolver
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Infer$GraphSolver
super_class: java.lang.Object
{
com.sun.tools.javac.comp.InferenceContext inferenceContext;
descriptor: Lcom/sun/tools/javac/comp/InferenceContext;
flags: (0x0000)
com.sun.tools.javac.util.Warner warn;
descriptor: Lcom/sun/tools/javac/util/Warner;
flags: (0x0000)
final com.sun.tools.javac.comp.Infer this$0;
descriptor: Lcom/sun/tools/javac/comp/Infer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Infer, com.sun.tools.javac.comp.InferenceContext, com.sun.tools.javac.util.Warner);
descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 // com.sun.tools.javac.comp.Infer$GraphSolver this
start local 2 // com.sun.tools.javac.comp.InferenceContext inferenceContext
start local 3 // com.sun.tools.javac.util.Warner warn
0: .line 1647
aload 0 /* this */
aload 1
putfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 1648
aload 0 /* this */
aload 2 /* inferenceContext */
putfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
2: .line 1649
aload 0 /* this */
aload 3 /* warn */
putfield com.sun.tools.javac.comp.Infer$GraphSolver.warn:Lcom/sun/tools/javac/util/Warner;
3: .line 1650
return
end local 3 // com.sun.tools.javac.util.Warner warn
end local 2 // com.sun.tools.javac.comp.InferenceContext inferenceContext
end local 0 // com.sun.tools.javac.comp.Infer$GraphSolver this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Infer$GraphSolver;
0 4 2 inferenceContext Lcom/sun/tools/javac/comp/InferenceContext;
0 4 3 warn Lcom/sun/tools/javac/util/Warner;
MethodParameters:
Name Flags
this$0 final
inferenceContext
warn
void solve(com.sun.tools.javac.comp.Infer$GraphStrategy);
descriptor: (Lcom/sun/tools/javac/comp/Infer$GraphStrategy;)V
flags: (0x0000)
Code:
stack=3, locals=10, args_size=2
start local 0 // com.sun.tools.javac.comp.Infer$GraphSolver this
start local 1 // com.sun.tools.javac.comp.Infer$GraphStrategy sstrategy
0: .line 1658
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.warn:Lcom/sun/tools/javac/util/Warner;
invokevirtual com.sun.tools.javac.comp.Infer.doIncorporation:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
1: .line 1659
new com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph
dup
aload 0 /* this */
invokespecial com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph.<init>:(Lcom/sun/tools/javac/comp/Infer$GraphSolver;)V
astore 2 /* inferenceGraph */
start local 2 // com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph inferenceGraph
2: .line 1660
goto 24
3: .line 1661
StackMap locals: com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph
StackMap stack:
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.dependenciesFolder:Ljava/lang/String;
ifnull 5
4: .line 1663
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.pendingGraphs:Lcom/sun/tools/javac/util/List;
aload 2 /* inferenceGraph */
invokevirtual com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph.toDot:()Ljava/lang/String;
invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Infer.pendingGraphs:Lcom/sun/tools/javac/util/List;
5: .line 1665
StackMap locals:
StackMap stack:
aload 1 /* sstrategy */
aload 2 /* inferenceGraph */
invokeinterface com.sun.tools.javac.comp.Infer$GraphStrategy.pickNode:(Lcom/sun/tools/javac/comp/Infer$GraphSolver$InferenceGraph;)Lcom/sun/tools/javac/comp/Infer$GraphSolver$InferenceGraph$Node;
astore 3 /* nodeToSolve */
start local 3 // com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node nodeToSolve
6: .line 1666
aload 3 /* nodeToSolve */
getfield com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node.data:Ljava/lang/Object;
checkcast java.lang.Iterable
invokestatic com.sun.tools.javac.util.List.from:(Ljava/lang/Iterable;)Lcom/sun/tools/javac/util/List;
astore 4 /* varsToSolve */
start local 4 // com.sun.tools.javac.util.List varsToSolve
7: .line 1667
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
invokevirtual com.sun.tools.javac.comp.InferenceContext.save:()Lcom/sun/tools/javac/util/List;
astore 5 /* saved_undet */
start local 5 // com.sun.tools.javac.util.List saved_undet
8: .line 1670
goto 17
9: .line 1672
StackMap locals: com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
invokestatic com.sun.tools.javac.comp.Infer$GraphInferenceSteps.values:()[Lcom/sun/tools/javac/comp/Infer$GraphInferenceSteps;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 15
StackMap locals: com.sun.tools.javac.comp.Infer$GraphSolver com.sun.tools.javac.comp.Infer$GraphStrategy com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node com.sun.tools.javac.util.List com.sun.tools.javac.util.List top int int com.sun.tools.javac.comp.Infer$GraphInferenceSteps[]
StackMap stack:
10: aload 9
iload 7
aaload
astore 6 /* step */
start local 6 // com.sun.tools.javac.comp.Infer$GraphInferenceSteps step
11: .line 1673
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 4 /* varsToSolve */
aload 6 /* step */
getfield com.sun.tools.javac.comp.Infer$GraphInferenceSteps.steps:Ljava/util/EnumSet;
invokevirtual com.sun.tools.javac.comp.InferenceContext.solveBasic:(Lcom/sun/tools/javac/util/List;Ljava/util/EnumSet;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifeq 14
12: .line 1674
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.warn:Lcom/sun/tools/javac/util/Warner;
invokevirtual com.sun.tools.javac.comp.Infer.doIncorporation:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
13: .line 1675
goto 17
end local 6 // com.sun.tools.javac.comp.Infer$GraphInferenceSteps step
14: .line 1672
StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 8
if_icmplt 10
16: .line 1679
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.inferenceException:Lcom/sun/tools/javac/comp/Infer$InferenceException;
invokevirtual com.sun.tools.javac.comp.Infer$InferenceException.setMessage:()Lcom/sun/tools/javac/comp/Resolve$InapplicableMethodException;
athrow
17: .line 1670
StackMap locals: com.sun.tools.javac.comp.Infer$GraphSolver com.sun.tools.javac.comp.Infer$GraphStrategy com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
invokevirtual com.sun.tools.javac.comp.InferenceContext.restvars:()Lcom/sun/tools/javac/util/List;
aload 4 /* varsToSolve */
invokestatic com.sun.tools.javac.code.Type.containsAny:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Z
ifne 9
18: .line 1681
goto 23
19: .line 1682
StackMap locals:
StackMap stack: com.sun.tools.javac.comp.Infer$InferenceException
pop
20: .line 1684
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 5 /* saved_undet */
invokevirtual com.sun.tools.javac.comp.InferenceContext.rollback:(Lcom/sun/tools/javac/util/List;)V
21: .line 1685
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 4 /* varsToSolve */
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
invokevirtual com.sun.tools.javac.comp.Infer.instantiateAsUninferredVars:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/InferenceContext;)V
22: .line 1686
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.inferenceContext:Lcom/sun/tools/javac/comp/InferenceContext;
aload 0 /* this */
getfield com.sun.tools.javac.comp.Infer$GraphSolver.warn:Lcom/sun/tools/javac/util/Warner;
invokevirtual com.sun.tools.javac.comp.Infer.doIncorporation:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
23: .line 1688
StackMap locals:
StackMap stack:
aload 2 /* inferenceGraph */
aload 3 /* nodeToSolve */
invokevirtual com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph.deleteNode:(Lcom/sun/tools/javac/comp/Infer$GraphSolver$InferenceGraph$Node;)V
end local 5 // com.sun.tools.javac.util.List saved_undet
end local 4 // com.sun.tools.javac.util.List varsToSolve
end local 3 // com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node nodeToSolve
24: .line 1660
StackMap locals:
StackMap stack:
aload 1 /* sstrategy */
invokeinterface com.sun.tools.javac.comp.Infer$GraphStrategy.done:()Z
ifeq 3
25: .line 1690
return
end local 2 // com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph inferenceGraph
end local 1 // com.sun.tools.javac.comp.Infer$GraphStrategy sstrategy
end local 0 // com.sun.tools.javac.comp.Infer$GraphSolver this
LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/sun/tools/javac/comp/Infer$GraphSolver;
0 26 1 sstrategy Lcom/sun/tools/javac/comp/Infer$GraphStrategy;
2 26 2 inferenceGraph Lcom/sun/tools/javac/comp/Infer$GraphSolver$InferenceGraph;
6 24 3 nodeToSolve Lcom/sun/tools/javac/comp/Infer$GraphSolver$InferenceGraph$Node;
7 24 4 varsToSolve Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
8 24 5 saved_undet Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
11 14 6 step Lcom/sun/tools/javac/comp/Infer$GraphInferenceSteps;
Exception table:
from to target type
8 18 19 Class com.sun.tools.javac.comp.Infer$InferenceException
MethodParameters:
Name Flags
sstrategy
}
SourceFile: "Infer.java"
NestHost: com.sun.tools.javac.comp.Infer
InnerClasses:
final GraphInferenceSteps = com.sun.tools.javac.comp.Infer$GraphInferenceSteps of com.sun.tools.javac.comp.Infer
GraphSolver = com.sun.tools.javac.comp.Infer$GraphSolver of com.sun.tools.javac.comp.Infer
InferenceGraph = com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph of com.sun.tools.javac.comp.Infer$GraphSolver
Node = com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph$Node of com.sun.tools.javac.comp.Infer$GraphSolver$InferenceGraph
abstract GraphStrategy = com.sun.tools.javac.comp.Infer$GraphStrategy of com.sun.tools.javac.comp.Infer
public InferenceException = com.sun.tools.javac.comp.Infer$InferenceException of com.sun.tools.javac.comp.Infer
abstract InferenceStep = com.sun.tools.javac.comp.Infer$InferenceStep of com.sun.tools.javac.comp.Infer
public InapplicableMethodException = com.sun.tools.javac.comp.Resolve$InapplicableMethodException of com.sun.tools.javac.comp.Resolve