class com.sun.tools.javac.comp.Flow$FlowAnalyzer extends com.sun.tools.javac.comp.Flow$BaseAnalyzer
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Flow$FlowAnalyzer
super_class: com.sun.tools.javac.comp.Flow$BaseAnalyzer
{
java.util.HashMap<com.sun.tools.javac.code.Symbol, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>> preciseRethrowTypes;
descriptor: Ljava/util/HashMap;
flags: (0x0000)
Signature: Ljava/util/HashMap<Lcom/sun/tools/javac/code/Symbol;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;>;
com.sun.tools.javac.tree.JCTree$JCClassDecl classDef;
descriptor: Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
flags: (0x0000)
com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> thrown;
descriptor: Lcom/sun/tools/javac/util/List;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type> caught;
descriptor: Lcom/sun/tools/javac/util/List;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
final com.sun.tools.javac.comp.Flow this$0;
descriptor: Lcom/sun/tools/javac/comp/Flow;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Flow);
descriptor: (Lcom/sun/tools/javac/comp/Flow;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
invokespecial com.sun.tools.javac.comp.Flow$BaseAnalyzer.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
MethodParameters:
Name Flags
this$0 final
void markDead();
descriptor: ()V
flags: (0x0000)
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
void errorUncaught();
descriptor: ()V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
astore 1
start local 1 1: goto 24
2: StackMap locals: com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
StackMap stack:
aload 1
instanceof com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
ifeq 22
3: aload 1
checkcast com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
astore 2
start local 2 4: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
ifnull 10
5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.pos:I
aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
getfield com.sun.tools.javac.tree.JCTree.pos:I
if_icmpne 10
6: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
7: aload 2
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit.thrown:Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.UnreportedExceptionDefaultConstructor:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
8: invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
9: goto 23
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
StackMap stack:
10: aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
getstatic com.sun.tools.javac.tree.JCTree$Tag.VARDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifeq 18
11: aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
invokevirtual com.sun.tools.javac.code.Symbol$VarSymbol.isResourceVariable:()Z
ifeq 18
12: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
13: aload 2
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit.thrown:Lcom/sun/tools/javac/code/Type;
14: aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
getfield com.sun.tools.javac.code.Symbol$VarSymbol.name:Lcom/sun/tools/javac/util/Name;
15: invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.UnreportedExceptionImplicitClose:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
16: invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
17: goto 23
18: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
19: aload 2
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit.thrown:Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.UnreportedExceptionNeedToCatchOrThrow:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
20: invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
end local 2 21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
invokevirtual com.sun.tools.javac.util.Log.hasErrorOn:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Z
invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
23: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
astore 1
24: StackMap locals:
StackMap stack:
aload 1
ifnonnull 2
end local 1 25: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
1 25 1 exit Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
4 21 2 thrownExit Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer$ThrownPendingExit;
void markThrown(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
flags: (0x0000)
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 1
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
aload 2
invokevirtual com.sun.tools.javac.comp.Check.isUnchecked:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;)Z
ifne 4
1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 2
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.isHandled:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Z
ifne 3
2: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
new com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
dup
aload 0
aload 1
aload 2
invokespecial com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit.<init>:(Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
3: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 2
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.incl:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree;
0 5 2 exc Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
tree
exc
public void visitClassDef(com.sun.tools.javac.tree.JCTree$JCClassDecl);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=12, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
ifnonnull 1
return
1: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
astore 2
start local 2 2: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
astore 3
start local 3 3: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
astore 4
start local 4 4: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 5
start local 5 5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
astore 6
start local 6 6: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.name:Lcom/sun/tools/javac/util/Name;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names.empty:Lcom/sun/tools/javac/util/Name;
if_acmpne 7
iconst_1
goto 8
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Lint
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 7
start local 7 9: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
10: iload 7
ifne 12
11: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
12: StackMap locals: int
StackMap stack:
aload 0
aload 1
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
13: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
14: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.sym:Lcom/sun/tools/javac/code/Symbol$ClassSymbol;
invokevirtual com.sun.tools.javac.code.Lint.augment:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Lint;
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
15: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 8
start local 8 16: goto 22
17: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
getstatic com.sun.tools.javac.tree.JCTree$Tag.METHODDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 21
18: aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokestatic com.sun.tools.javac.tree.TreeInfo.flags:(Lcom/sun/tools/javac/tree/JCTree;)J
ldc 8
land
lconst_0
lcmp
ifeq 21
19: aload 0
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
20: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.errorUncaught:()V
21: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 8
StackMap locals:
StackMap stack:
22: aload 8
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 17
end local 8 23: iload 7
ifne 37
24: iconst_1
istore 8
start local 8 25: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 9
start local 9 26: goto 36
27: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Lint int int com.sun.tools.javac.util.List
StackMap stack:
aload 9
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokestatic com.sun.tools.javac.tree.TreeInfo.isInitialConstructor:(Lcom/sun/tools/javac/tree/JCTree;)Z
ifeq 35
28: aload 9
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCMethodDecl
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
getfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
29: astore 10
start local 10 30: iload 8
ifeq 34
31: aload 0
aload 10
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
32: iconst_0
istore 8
33: goto 35
34: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 10
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
end local 10 35: StackMap locals:
StackMap stack:
aload 9
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 9
StackMap locals:
StackMap stack:
36: aload 9
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 27
end local 9 end local 8 37: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 8
start local 8 38: goto 44
39: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
getstatic com.sun.tools.javac.tree.JCTree$Tag.METHODDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 43
40: aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokestatic com.sun.tools.javac.tree.TreeInfo.flags:(Lcom/sun/tools/javac/tree/JCTree;)J
ldc 8
land
lconst_0
lcmp
ifne 43
41: aload 0
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
42: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.errorUncaught:()V
43: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 8
StackMap locals:
StackMap stack:
44: aload 8
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 39
end local 8 45: iload 7
ifeq 56
46: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 8
start local 8 47: goto 54
48: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokestatic com.sun.tools.javac.tree.TreeInfo.isConstructor:(Lcom/sun/tools/javac/tree/JCTree;)Z
ifeq 53
49: aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCMethodDecl
astore 9
start local 9 50: aload 0
aload 9
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
51: aload 9
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.tree.TreeMaker.Types:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.thrown:Lcom/sun/tools/javac/util/List;
52: aload 9
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 9
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
getfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.code.Types.createMethodTypeWithThrown:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
putfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
end local 9 53: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 8
StackMap locals:
StackMap stack:
54: aload 8
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 48
end local 8 55: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 3
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 3
56: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 8
start local 8 57: goto 64
58: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
iload 7
ifeq 60
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokestatic com.sun.tools.javac.tree.TreeInfo.isConstructor:(Lcom/sun/tools/javac/tree/JCTree;)Z
ifeq 60
59: goto 63
60: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
getstatic com.sun.tools.javac.tree.JCTree$Tag.METHODDEF:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifeq 63
61: aload 0
aload 8
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
62: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.errorUncaught:()V
63: StackMap locals:
StackMap stack:
aload 8
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 8
StackMap locals:
StackMap stack:
64: aload 8
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 58
end local 8 65: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
66: goto 73
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.tree.JCTree$JCClassDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Lint int
StackMap stack: java.lang.Throwable
67: astore 11
68: aload 0
aload 5
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
69: aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
70: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
71: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 6
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
72: aload 11
athrow
73: StackMap locals:
StackMap stack:
aload 0
aload 5
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
74: aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
75: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
76: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 6
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
77: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 78 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 78 1 tree Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
2 78 2 classDefPrev Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
3 78 3 thrownPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
4 78 4 caughtPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
5 78 5 pendingExitsPrev Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
6 78 6 lintPrev Lcom/sun/tools/javac/code/Lint;
9 78 7 anonymousClass Z
16 23 8 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
25 37 8 firstConstructor Z
26 37 9 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
30 35 10 mthrown Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
38 45 8 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
47 55 8 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
50 53 9 mdef Lcom/sun/tools/javac/tree/JCTree$JCMethodDecl;
57 65 8 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
Exception table:
from to target type
15 67 67 any
MethodParameters:
Name Flags
tree
public void visitMethodDef(com.sun.tools.javac.tree.JCTree$JCMethodDecl);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCMethodDecl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
ifnonnull 1
return
1: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
astore 2
start local 2 2: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
getfield com.sun.tools.javac.code.Symbol$MethodSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
astore 3
start local 3 3: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
astore 4
start local 4 4: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
invokevirtual com.sun.tools.javac.code.Lint.augment:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Lint;
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.isEmpty:()Z
invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
6: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.params:Lcom/sun/tools/javac/util/List;
astore 5
start local 5 7: goto 11
8: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCMethodDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.code.Lint com.sun.tools.javac.util.List
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
astore 6
start local 6 9: aload 0
aload 6
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
end local 6 10: aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
StackMap locals:
StackMap stack:
11: aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 8
end local 5 12: aload 1
invokestatic com.sun.tools.javac.tree.TreeInfo.isInitialConstructor:(Lcom/sun/tools/javac/tree/JCTree;)Z
ifeq 14
13: aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
aload 3
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
goto 16
14: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.sym:Lcom/sun/tools/javac/code/Symbol$MethodSymbol;
invokevirtual com.sun.tools.javac.code.Symbol$MethodSymbol.flags:()J
ldc 1048584
land
ldc 1048576
lcmp
ifeq 16
15: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
16: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodDecl.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
17: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
astore 5
start local 5 18: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
19: goto 29
20: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
astore 6
start local 6 21: aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
22: aload 6
instanceof com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
ifne 28
23: aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
getstatic com.sun.tools.javac.tree.JCTree$Tag.RETURN:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 25
24: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
invokevirtual com.sun.tools.javac.util.Log.hasErrorOn:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Z
ifne 25
iconst_0
goto 26
StackMap locals: com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
StackMap stack:
25: iconst_1
26: StackMap locals:
StackMap stack: int
invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
27: goto 29
28: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 6
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
end local 6 29: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 20
end local 5 30: goto 35
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCMethodDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.code.Lint
StackMap stack: java.lang.Throwable
31: astore 7
32: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
33: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 4
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
34: aload 7
athrow
35: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
36: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 4
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
37: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 38 1 tree Lcom/sun/tools/javac/tree/JCTree$JCMethodDecl;
2 38 2 caughtPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
3 38 3 mthrown Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
4 38 4 lintPrev Lcom/sun/tools/javac/code/Lint;
7 12 5 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;>;
9 10 6 def Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
18 30 5 exits Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
21 29 6 exit Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
Exception table:
from to target type
6 31 31 any
MethodParameters:
Name Flags
tree
public void visitVarDef(com.sun.tools.javac.tree.JCTree$JCVariableDecl);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.init:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnull 9
1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
astore 2
start local 2 2: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
invokevirtual com.sun.tools.javac.code.Lint.augment:(Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Lint;
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
3: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.init:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
4: goto 8
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCVariableDecl com.sun.tools.javac.code.Lint
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 2
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 2
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 10 1 tree Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
2 9 2 lintPrev Lcom/sun/tools/javac/code/Lint;
Exception table:
from to target type
3 5 5 any
MethodParameters:
Name Flags
tree
public void visitBlock(com.sun.tools.javac.tree.JCTree$JCBlock);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCBlock;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCBlock.stats:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCBlock;
MethodParameters:
Name Flags
tree
public void visitDoLoop(com.sun.tools.javac.tree.JCTree$JCDoWhileLoop);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCDoWhileLoop;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 1: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCDoWhileLoop.body:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
4: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCDoWhileLoop.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 7 1 tree Lcom/sun/tools/javac/tree/JCTree$JCDoWhileLoop;
1 7 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitWhileLoop(com.sun.tools.javac.tree.JCTree$JCWhileLoop);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCWhileLoop;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 1: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCWhileLoop.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCWhileLoop.body:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
4: aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
5: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 7 1 tree Lcom/sun/tools/javac/tree/JCTree$JCWhileLoop;
1 7 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitForLoop(com.sun.tools.javac.tree.JCTree$JCForLoop);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCForLoop;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 1: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.init:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
2: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
3: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnull 5
4: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: StackMap locals: com.sun.tools.javac.util.ListBuffer
StackMap stack:
aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.body:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
6: aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
7: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.step:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
8: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 10 1 tree Lcom/sun/tools/javac/tree/JCTree$JCForLoop;
1 10 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitForeachLoop(com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCEnhancedForLoop;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.var:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef:(Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 2: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
4: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop.body:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
6: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 8 1 tree Lcom/sun/tools/javac/tree/JCTree$JCEnhancedForLoop;
2 8 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitLabelled(com.sun.tools.javac.tree.JCTree$JCLabeledStatement);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCLabeledStatement;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 1: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCLabeledStatement.body:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree$JCLabeledStatement;
1 5 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitSwitch(com.sun.tools.javac.tree.JCTree$JCSwitch);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCSwitch;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitch.selector:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitch.cases:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.handleSwitch:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCSwitch;
MethodParameters:
Name Flags
tree
public void visitSwitchExpression(com.sun.tools.javac.tree.JCTree$JCSwitchExpression);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCSwitchExpression;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitchExpression.selector:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitchExpression.cases:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.handleSwitch:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCSwitchExpression;
MethodParameters:
Name Flags
tree
private void handleSwitch(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.tree.JCTree$JCExpression, com.sun.tools.javac.util.List<com.sun.tools.javac.tree.JCTree$JCCase>);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 4
start local 4 1: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 3
astore 5
start local 5 4: goto 9
5: StackMap locals: com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCase
astore 6
start local 6 6: aload 0
aload 6
getfield com.sun.tools.javac.tree.JCTree$JCCase.pats:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
7: aload 0
aload 6
getfield com.sun.tools.javac.tree.JCTree$JCCase.stats:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
end local 6 8: aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
StackMap locals:
StackMap stack:
9: aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 5
end local 5 10: aload 1
getstatic com.sun.tools.javac.tree.JCTree$Tag.SWITCH_EXPRESSION:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifeq 13
11: aload 0
aload 1
aload 4
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveYields:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
12: goto 14
13: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
pop
14: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 15 1 tree Lcom/sun/tools/javac/tree/JCTree;
0 15 2 selector Lcom/sun/tools/javac/tree/JCTree$JCExpression;
0 15 3 cases Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCase;>;
1 15 4 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
4 10 5 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCase;>;
6 8 6 c Lcom/sun/tools/javac/tree/JCTree$JCCase;
Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/JCTree$JCExpression;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCase;>;)V
MethodParameters:
Name Flags
tree
selector
cases
public void visitTry(com.sun.tools.javac.tree.JCTree$JCTry);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCTry;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=16, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
astore 2
start local 2 1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
astore 3
start local 3 2: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
3: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.catchers:Lcom/sun/tools/javac/util/List;
astore 4
start local 4 4: goto 14
5: StackMap locals: com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
aload 4
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
invokestatic com.sun.tools.javac.tree.TreeInfo.isMultiCatch:(Lcom/sun/tools/javac/tree/JCTree$JCCatch;)Z
ifeq 7
6: aload 4
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.param:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCTypeUnion
getfield com.sun.tools.javac.tree.JCTree$JCTypeUnion.alternatives:Lcom/sun/tools/javac/util/List;
goto 8
7: StackMap locals:
StackMap stack:
aload 4
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.param:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
8: StackMap locals:
StackMap stack: com.sun.tools.javac.util.List
astore 5
start local 5 9: aload 5
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 12
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
10: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCExpression
astore 6
start local 6 11: aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 6
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.incl:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
end local 6 12: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 5 13: aload 4
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 4
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
14: aload 4
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 5
end local 4 15: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 4
start local 4 16: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
17: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.resources:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 27
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
18: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
astore 5
start local 5 19: aload 5
instanceof com.sun.tools.javac.tree.JCTree$JCVariableDecl
ifeq 23
20: aload 5
checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
astore 7
start local 7 21: aload 0
aload 7
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef:(Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
end local 7 22: goto 27
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator
StackMap stack:
23: aload 5
instanceof com.sun.tools.javac.tree.JCTree$JCExpression
ifeq 26
24: aload 0
aload 5
checkcast com.sun.tools.javac.tree.JCTree$JCExpression
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
25: goto 27
26: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 5 27: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 18
28: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.resources:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 51
StackMap locals:
StackMap stack:
29: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
astore 5
start local 5 30: aload 5
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.isCompound:()Z
ifeq 32
31: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 5
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.interfaces:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 5
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.supertype:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
goto 33
32: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator
StackMap stack:
aload 5
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
33: StackMap locals:
StackMap stack: com.sun.tools.javac.util.List
astore 7
start local 7 34: aload 7
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 9
goto 50
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
35: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 8
start local 8 36: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 8
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.autoCloseableType:Lcom/sun/tools/javac/code/Type;
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
invokevirtual com.sun.tools.javac.code.Types.asSuper:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
ifnull 50
37: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.rs:Lcom/sun/tools/javac/comp/Resolve;
aload 1
38: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.attrEnv:Lcom/sun/tools/javac/comp/Env;
39: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 8
iconst_0
invokevirtual com.sun.tools.javac.code.Types.skipTypeVars:(Lcom/sun/tools/javac/code/Type;Z)Lcom/sun/tools/javac/code/Type;
40: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.names:Lcom/sun/tools/javac/util/Names;
getfield com.sun.tools.javac.util.Names.close:Lcom/sun/tools/javac/util/Name;
41: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
42: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
43: invokevirtual com.sun.tools.javac.comp.Resolve.resolveQualifiedMethod:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Symbol;
astore 10
start local 10 44: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 5
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
aload 10
invokevirtual com.sun.tools.javac.code.Types.memberType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol;)Lcom/sun/tools/javac/code/Type;
astore 11
start local 11 45: aload 10
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.MTH:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 50
46: aload 11
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 49
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator com.sun.tools.javac.util.List com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type top java.util.Iterator
StackMap stack:
47: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 12
start local 12 48: aload 0
aload 5
aload 12
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markThrown:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
end local 12 49: StackMap locals:
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 47
end local 11 end local 10 end local 8 50: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 35
end local 7 end local 5 51: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 29
52: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
53: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.runtimeExceptionType:Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.errorType:Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 5
start local 5 54: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
55: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
56: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
astore 6
start local 6 57: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.catchers:Lcom/sun/tools/javac/util/List;
astore 7
start local 7 58: goto 84
59: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.param:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
astore 8
start local 8 60: aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
invokestatic com.sun.tools.javac.tree.TreeInfo.isMultiCatch:(Lcom/sun/tools/javac/tree/JCTree$JCCatch;)Z
ifeq 62
61: aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.param:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
checkcast com.sun.tools.javac.tree.JCTree$JCTypeUnion
getfield com.sun.tools.javac.tree.JCTree$JCTypeUnion.alternatives:Lcom/sun/tools/javac/util/List;
goto 63
62: StackMap locals: com.sun.tools.javac.tree.JCTree$JCVariableDecl
StackMap stack:
aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.param:Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.vartype:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
63: StackMap locals:
StackMap stack: com.sun.tools.javac.util.List
astore 9
start local 9 64: invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
astore 10
start local 10 65: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 5
aload 6
invokevirtual com.sun.tools.javac.comp.Check.diff:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 11
start local 11 66: aload 9
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 13
goto 78
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.tree.JCTree$JCVariableDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
67: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCExpression
astore 12
start local 12 68: aload 12
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
astore 14
start local 14 69: aload 14
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.unknownType:Lcom/sun/tools/javac/code/Type;
if_acmpeq 78
70: aload 10
aload 14
invokevirtual com.sun.tools.javac.util.List.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
astore 10
71: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
aload 14
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
ifeq 73
72: goto 78
73: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.tree.JCTree$JCVariableDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.tree.JCTree$JCExpression java.util.Iterator com.sun.tools.javac.code.Type
StackMap stack:
aload 9
invokevirtual com.sun.tools.javac.util.List.size:()I
iconst_1
if_icmple 74
aload 12
invokevirtual com.sun.tools.javac.tree.JCTree$JCExpression.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
goto 75
StackMap locals:
StackMap stack:
74: aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
invokevirtual com.sun.tools.javac.tree.JCTree$JCCatch.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
StackMap locals:
StackMap stack: com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition
75: astore 15
start local 15 76: aload 0
aload 15
aload 14
aload 5
aload 6
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.checkCaughtType:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
77: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 14
aload 6
invokevirtual com.sun.tools.javac.comp.Check.incl:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 6
end local 15 end local 14 end local 12 78: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.tree.JCTree$JCVariableDecl com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List top java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 67
79: aload 0
aload 8
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
80: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.preciseRethrowTypes:Ljava/util/HashMap;
aload 8
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 10
aload 11
invokevirtual com.sun.tools.javac.comp.Check.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
81: aload 0
aload 7
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCatch
getfield com.sun.tools.javac.tree.JCTree$JCCatch.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
82: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.preciseRethrowTypes:Ljava/util/HashMap;
aload 8
getfield com.sun.tools.javac.tree.JCTree$JCVariableDecl.sym:Lcom/sun/tools/javac/code/Symbol$VarSymbol;
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 11 end local 10 end local 9 end local 8 83: aload 7
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 7
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
84: aload 7
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 59
end local 7 85: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.finalizer:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
ifnull 100
86: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
astore 7
start local 7 87: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
88: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 8
start local 8 89: aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
90: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.finalizer:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
91: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.finallyCanCompleteNormally:Z
ifne 94
92: aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 3
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
93: goto 106
94: StackMap locals: com.sun.tools.javac.util.ListBuffer
StackMap stack:
aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 5
aload 6
invokevirtual com.sun.tools.javac.comp.Check.diff:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
95: aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 7
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
96: goto 98
97: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 8
invokevirtual com.sun.tools.javac.util.ListBuffer.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
98: StackMap locals:
StackMap stack:
aload 8
invokevirtual com.sun.tools.javac.util.ListBuffer.nonEmpty:()Z
ifne 97
end local 8 end local 7 99: goto 106
100: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 5
aload 6
invokevirtual com.sun.tools.javac.comp.Check.diff:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.union:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
101: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 7
start local 7 102: aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
103: goto 105
StackMap locals: com.sun.tools.javac.util.ListBuffer
StackMap stack:
104: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 7
invokevirtual com.sun.tools.javac.util.ListBuffer.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
StackMap locals:
StackMap stack:
105: aload 7
invokevirtual com.sun.tools.javac.util.ListBuffer.nonEmpty:()Z
ifne 104
end local 7 106: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 107 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 107 1 tree Lcom/sun/tools/javac/tree/JCTree$JCTry;
1 107 2 caughtPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
2 107 3 thrownPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
4 15 4 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCatch;>;
9 13 5 subClauses Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;
11 12 6 ct Lcom/sun/tools/javac/tree/JCTree$JCExpression;
16 107 4 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
19 27 5 resource Lcom/sun/tools/javac/tree/JCTree;
21 22 7 vdecl Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
30 51 5 resource Lcom/sun/tools/javac/tree/JCTree;
34 51 7 closeableSupertypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
36 50 8 sup Lcom/sun/tools/javac/code/Type;
44 50 10 closeMethod Lcom/sun/tools/javac/code/Symbol;
45 50 11 mt Lcom/sun/tools/javac/code/Type;
48 49 12 t Lcom/sun/tools/javac/code/Type;
54 107 5 thrownInTry Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
57 107 6 caughtInTry Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
58 85 7 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCatch;>;
60 83 8 param Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
64 83 9 subClauses Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCExpression;>;
65 83 10 ctypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
66 83 11 rethrownTypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
68 78 12 ct Lcom/sun/tools/javac/tree/JCTree$JCExpression;
69 78 14 exc Lcom/sun/tools/javac/code/Type;
76 78 15 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
87 99 7 savedThrown Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
89 99 8 exits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
102 106 7 exits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
MethodParameters:
Name Flags
tree
public void visitIf(com.sun.tools.javac.tree.JCTree$JCIf);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCIf;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCIf.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCIf.thenpart:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
2: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCIf.elsepart:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
ifnull 4
3: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCIf.elsepart:Lcom/sun/tools/javac/tree/JCTree$JCStatement;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree$JCIf;
MethodParameters:
Name Flags
tree
void checkCaughtType(com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, com.sun.tools.javac.code.Type, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>, com.sun.tools.javac.util.List<com.sun.tools.javac.code.Type>);
descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 2
aload 4
invokevirtual com.sun.tools.javac.comp.Check.subset:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Z
ifeq 3
1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
aload 2
invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ExceptAlreadyCaught:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
2: goto 16
StackMap locals:
StackMap stack:
3: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Check.isUnchecked:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;)Z
ifne 8
4: aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.isExceptionOrThrowable:(Lcom/sun/tools/javac/code/Type;)Z
ifne 8
5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 2
aload 3
invokevirtual com.sun.tools.javac.comp.Check.intersects:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Z
ifne 8
6: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
aload 2
invokestatic com.sun.tools.javac.resources.CompilerProperties$Errors.ExceptNeverThrownInTry:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/JCDiagnostic$Error;
invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Error;)V
7: goto 16
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 2
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
aload 3
invokevirtual com.sun.tools.javac.comp.Check.intersect:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
astore 5
start local 5 9: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 5
aload 4
invokevirtual com.sun.tools.javac.comp.Check.diff:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 16
10: aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.isExceptionOrThrowable:(Lcom/sun/tools/javac/code/Type;)Z
ifne 16
11: aload 5
invokevirtual com.sun.tools.javac.util.List.length:()I
iconst_1
if_icmpne 13
12: aload 5
invokestatic com.sun.tools.javac.resources.CompilerProperties$Warnings.UnreachableCatch:(Ljava/util/List;)Lcom/sun/tools/javac/util/JCDiagnostic$Warning;
goto 14
13: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 5
invokestatic com.sun.tools.javac.resources.CompilerProperties$Warnings.UnreachableCatch1:(Ljava/util/List;)Lcom/sun/tools/javac/util/JCDiagnostic$Warning;
14: StackMap locals:
StackMap stack: com.sun.tools.javac.util.JCDiagnostic$Warning
astore 6
start local 6 15: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
aload 6
invokevirtual com.sun.tools.javac.util.Log.warning:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic$Warning;)V
end local 6 end local 5 16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 17 1 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
0 17 2 exc Lcom/sun/tools/javac/code/Type;
0 17 3 thrownInTry Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
0 17 4 caughtInTry Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
9 16 5 catchableThrownTypes Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
15 16 6 key Lcom/sun/tools/javac/util/JCDiagnostic$Warning;
Signature: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;)V
MethodParameters:
Name Flags
pos
exc
thrownInTry
caughtInTry
private boolean isExceptionOrThrowable(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.throwableType:Lcom/sun/tools/javac/code/Type;
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
if_acmpeq 3
1: aload 1
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.exceptionType:Lcom/sun/tools/javac/code/Type;
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
if_acmpeq 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 4 1 exc Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
exc
public void visitBreak(com.sun.tools.javac.tree.JCTree$JCBreak);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCBreak;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
dup
aload 1
invokespecial com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.<init>:(Lcom/sun/tools/javac/tree/JCTree;)V
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.recordExit:(Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCBreak;
MethodParameters:
Name Flags
tree
public void visitYield(com.sun.tools.javac.tree.JCTree$JCYield);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCYield;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCYield.value:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
new com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
dup
aload 1
invokespecial com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.<init>:(Lcom/sun/tools/javac/tree/JCTree;)V
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.recordExit:(Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 3 1 tree Lcom/sun/tools/javac/tree/JCTree$JCYield;
MethodParameters:
Name Flags
tree
public void visitContinue(com.sun.tools.javac.tree.JCTree$JCContinue);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCContinue;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
dup
aload 1
invokespecial com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.<init>:(Lcom/sun/tools/javac/tree/JCTree;)V
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.recordExit:(Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCContinue;
MethodParameters:
Name Flags
tree
public void visitReturn(com.sun.tools.javac.tree.JCTree$JCReturn);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCReturn;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCReturn.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
new com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
dup
aload 1
invokespecial com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.<init>:(Lcom/sun/tools/javac/tree/JCTree;)V
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.recordExit:(Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 3 1 tree Lcom/sun/tools/javac/tree/JCTree$JCReturn;
MethodParameters:
Name Flags
tree
public void visitThrow(com.sun.tools.javac.tree.JCTree$JCThrow);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCThrow;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCThrow.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCThrow.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokestatic com.sun.tools.javac.tree.TreeInfo.symbol:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/code/Symbol;
astore 2
start local 2 2: aload 2
ifnull 11
3: aload 2
getfield com.sun.tools.javac.code.Symbol.kind:Lcom/sun/tools/javac/code/Kinds$Kind;
getstatic com.sun.tools.javac.code.Kinds$Kind.VAR:Lcom/sun/tools/javac/code/Kinds$Kind;
if_acmpne 11
4: aload 2
invokevirtual com.sun.tools.javac.code.Symbol.flags:()J
ldc 2199023255568
land
lconst_0
lcmp
ifeq 11
5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.preciseRethrowTypes:Ljava/util/HashMap;
aload 2
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 11
6: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.preciseRethrowTypes:Ljava/util/HashMap;
aload 2
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 9
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCThrow com.sun.tools.javac.code.Symbol top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 3
start local 3 8: aload 0
aload 1
aload 3
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markThrown:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
end local 3 9: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
10: goto 12
11: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCThrow com.sun.tools.javac.code.Symbol
StackMap stack:
aload 0
aload 1
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCThrow.expr:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markThrown:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
12: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markDead:()V
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 14 1 tree Lcom/sun/tools/javac/tree/JCTree$JCThrow;
2 14 2 sym Lcom/sun/tools/javac/code/Symbol;
8 9 3 t Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
tree
public void visitApply(com.sun.tools.javac.tree.JCTree$JCMethodInvocation);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.meth:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.args:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
2: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCMethodInvocation.meth:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
getfield com.sun.tools.javac.tree.JCTree$JCExpression.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
astore 2
start local 2 3: goto 6
4: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 1
aload 2
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markThrown:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
5: aload 2
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 2
StackMap locals:
StackMap stack:
6: aload 2
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 4
end local 2 7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 8 1 tree Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;
3 7 2 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
MethodParameters:
Name Flags
tree
public void visitNewClass(com.sun.tools.javac.tree.JCTree$JCNewClass);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCNewClass;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.encl:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.args:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
2: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.constructorType:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
astore 2
start local 2 3: goto 6
4: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 1
aload 2
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.markThrown:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/code/Type;)V
5: aload 2
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 2
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 4
end local 2 7: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
astore 2
start local 2 8: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.def:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
ifnull 14
9: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.constructor:Lcom/sun/tools/javac/code/Symbol;
getfield com.sun.tools.javac.code.Symbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
astore 3
start local 3 10: goto 13
11: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.chk:Lcom/sun/tools/javac/comp/Check;
aload 3
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Check.incl:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
12: aload 3
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 3
13: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 11
end local 3 14: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.def:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
15: goto 19
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
17: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
18: aload 4
athrow
19: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
20: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 21 1 tree Lcom/sun/tools/javac/tree/JCTree$JCNewClass;
3 7 2 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
8 21 2 caughtPrev Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
10 14 3 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
Exception table:
from to target type
8 16 16 any
MethodParameters:
Name Flags
tree
public void visitLambda(com.sun.tools.javac.tree.JCTree$JCLambda);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCLambda;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCLambda.type:Lcom/sun/tools/javac/code/Type;
ifnull 3
1: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCLambda.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
ifeq 3
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
astore 2
start local 2 4: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
astore 3
start local 3 5: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 4
start local 4 6: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
7: aload 0
aload 1
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.types:Lcom/sun/tools/javac/code/Types;
invokevirtual com.sun.tools.javac.tree.JCTree$JCLambda.getDescriptorType:(Lcom/sun/tools/javac/code/Types;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.getThrownTypes:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
8: aload 0
invokestatic com.sun.tools.javac.util.List.nil:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
9: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCLambda.body:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
10: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
astore 5
start local 5 11: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
12: goto 22
13: StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCLambda com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.List
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
astore 6
start local 6 14: aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
15: aload 6
instanceof com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit
ifne 21
16: aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
getstatic com.sun.tools.javac.tree.JCTree$Tag.RETURN:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 18
17: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
invokevirtual com.sun.tools.javac.util.Log.hasErrorOn:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Z
ifne 18
iconst_0
goto 19
StackMap locals: com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
StackMap stack:
18: iconst_1
19: StackMap locals:
StackMap stack: int
invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
20: goto 22
21: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 6
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
end local 6 22: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 13
23: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.errorUncaught:()V
end local 5 24: goto 30
StackMap locals: com.sun.tools.javac.comp.Flow$FlowAnalyzer com.sun.tools.javac.tree.JCTree$JCLambda com.sun.tools.javac.util.List com.sun.tools.javac.util.List com.sun.tools.javac.util.ListBuffer
StackMap stack: java.lang.Throwable
25: astore 7
26: aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
27: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
28: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
29: aload 7
athrow
30: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
31: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
32: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
33: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 34 1 tree Lcom/sun/tools/javac/tree/JCTree$JCLambda;
4 34 2 prevCaught Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
5 34 3 prevThrown Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
6 34 4 prevPending Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
11 24 5 exits Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
14 22 6 exit Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
Exception table:
from to target type
6 25 25 any
MethodParameters:
Name Flags
tree
public void visitModuleDef(com.sun.tools.javac.tree.JCTree$JCModuleDecl);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=2, args_size=2
start local 0 start local 1 0: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree$JCModuleDecl;
MethodParameters:
Name Flags
tree
public void analyzeTree(com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.tree.TreeMaker);
descriptor: (Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/TreeMaker;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
getfield com.sun.tools.javac.comp.Env.tree:Lcom/sun/tools/javac/tree/JCTree;
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.analyzeTree:(Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/TreeMaker;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 2 1 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
0 2 2 make Lcom/sun/tools/javac/tree/TreeMaker;
Signature: (Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/tree/TreeMaker;)V
MethodParameters:
Name Flags
env
make
public void analyzeTree(com.sun.tools.javac.comp.Env<com.sun.tools.javac.comp.AttrContext>, com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.tree.TreeMaker);
descriptor: (Lcom/sun/tools/javac/comp/Env;Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/TreeMaker;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 1
putfield com.sun.tools.javac.comp.Flow.attrEnv:Lcom/sun/tools/javac/comp/Env;
1: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 3
putfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
2: aload 0
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.preciseRethrowTypes:Ljava/util/HashMap;
4: aload 0
aload 0
aconst_null
dup_x1
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
5: aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
6: aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$FlowAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
7: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 4
9: aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
10: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aconst_null
putfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
11: aload 0
aload 0
aconst_null
dup_x1
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
12: aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
13: aload 4
athrow
14: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
15: aload 0
getfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aconst_null
putfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
16: aload 0
aload 0
aconst_null
dup_x1
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.caught:Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.thrown:Lcom/sun/tools/javac/util/List;
17: aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$FlowAnalyzer.classDef:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
18: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/tools/javac/comp/Flow$FlowAnalyzer;
0 19 1 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
0 19 2 tree Lcom/sun/tools/javac/tree/JCTree;
0 19 3 make Lcom/sun/tools/javac/tree/TreeMaker;
Exception table:
from to target type
0 8 8 any
Signature: (Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/tree/TreeMaker;)V
MethodParameters:
Name Flags
env
tree
make
}
SourceFile: "Flow.java"
NestHost: com.sun.tools.javac.comp.Flow
InnerClasses:
public final Kind = com.sun.tools.javac.code.Kinds$Kind of com.sun.tools.javac.code.Kinds
public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
public VarSymbol = com.sun.tools.javac.code.Symbol$VarSymbol of com.sun.tools.javac.code.Symbol
abstract BaseAnalyzer = com.sun.tools.javac.comp.Flow$BaseAnalyzer of com.sun.tools.javac.comp.Flow
PendingExit = com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit of com.sun.tools.javac.comp.Flow$BaseAnalyzer
FlowAnalyzer = com.sun.tools.javac.comp.Flow$FlowAnalyzer of com.sun.tools.javac.comp.Flow
ThrownPendingExit = com.sun.tools.javac.comp.Flow$FlowAnalyzer$ThrownPendingExit of com.sun.tools.javac.comp.Flow$FlowAnalyzer
abstract Liveness = com.sun.tools.javac.comp.Flow$Liveness of com.sun.tools.javac.comp.Flow
public Errors = com.sun.tools.javac.resources.CompilerProperties$Errors of com.sun.tools.javac.resources.CompilerProperties
public Warnings = com.sun.tools.javac.resources.CompilerProperties$Warnings of com.sun.tools.javac.resources.CompilerProperties
public JCBlock = com.sun.tools.javac.tree.JCTree$JCBlock of com.sun.tools.javac.tree.JCTree
public JCBreak = com.sun.tools.javac.tree.JCTree$JCBreak of com.sun.tools.javac.tree.JCTree
public JCCase = com.sun.tools.javac.tree.JCTree$JCCase of com.sun.tools.javac.tree.JCTree
public JCCatch = com.sun.tools.javac.tree.JCTree$JCCatch of com.sun.tools.javac.tree.JCTree
public JCClassDecl = com.sun.tools.javac.tree.JCTree$JCClassDecl of com.sun.tools.javac.tree.JCTree
public JCContinue = com.sun.tools.javac.tree.JCTree$JCContinue of com.sun.tools.javac.tree.JCTree
public JCDoWhileLoop = com.sun.tools.javac.tree.JCTree$JCDoWhileLoop of com.sun.tools.javac.tree.JCTree
public JCEnhancedForLoop = com.sun.tools.javac.tree.JCTree$JCEnhancedForLoop of com.sun.tools.javac.tree.JCTree
public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
public JCForLoop = com.sun.tools.javac.tree.JCTree$JCForLoop of com.sun.tools.javac.tree.JCTree
public JCIf = com.sun.tools.javac.tree.JCTree$JCIf of com.sun.tools.javac.tree.JCTree
public JCLabeledStatement = com.sun.tools.javac.tree.JCTree$JCLabeledStatement of com.sun.tools.javac.tree.JCTree
public JCLambda = com.sun.tools.javac.tree.JCTree$JCLambda of com.sun.tools.javac.tree.JCTree
public JCMethodDecl = com.sun.tools.javac.tree.JCTree$JCMethodDecl of com.sun.tools.javac.tree.JCTree
public JCMethodInvocation = com.sun.tools.javac.tree.JCTree$JCMethodInvocation of com.sun.tools.javac.tree.JCTree
public JCModuleDecl = com.sun.tools.javac.tree.JCTree$JCModuleDecl of com.sun.tools.javac.tree.JCTree
public JCNewClass = com.sun.tools.javac.tree.JCTree$JCNewClass of com.sun.tools.javac.tree.JCTree
public JCReturn = com.sun.tools.javac.tree.JCTree$JCReturn of com.sun.tools.javac.tree.JCTree
public JCSwitch = com.sun.tools.javac.tree.JCTree$JCSwitch of com.sun.tools.javac.tree.JCTree
public JCSwitchExpression = com.sun.tools.javac.tree.JCTree$JCSwitchExpression of com.sun.tools.javac.tree.JCTree
public JCThrow = com.sun.tools.javac.tree.JCTree$JCThrow of com.sun.tools.javac.tree.JCTree
public JCTry = com.sun.tools.javac.tree.JCTree$JCTry of com.sun.tools.javac.tree.JCTree
public JCTypeUnion = com.sun.tools.javac.tree.JCTree$JCTypeUnion of com.sun.tools.javac.tree.JCTree
public JCVariableDecl = com.sun.tools.javac.tree.JCTree$JCVariableDecl of com.sun.tools.javac.tree.JCTree
public JCWhileLoop = com.sun.tools.javac.tree.JCTree$JCWhileLoop of com.sun.tools.javac.tree.JCTree
public JCYield = com.sun.tools.javac.tree.JCTree$JCYield of com.sun.tools.javac.tree.JCTree
public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
public final Error = com.sun.tools.javac.util.JCDiagnostic$Error of com.sun.tools.javac.util.JCDiagnostic
public final Warning = com.sun.tools.javac.util.JCDiagnostic$Warning of com.sun.tools.javac.util.JCDiagnostic