class com.sun.tools.javac.comp.Flow$AliveAnalyzer extends com.sun.tools.javac.comp.Flow$BaseAnalyzer<com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Flow$AliveAnalyzer
super_class: com.sun.tools.javac.comp.Flow$BaseAnalyzer
{
private boolean alive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
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$AliveAnalyzer.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$AliveAnalyzer;
MethodParameters:
Name Flags
this$0 final
void markDead();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
void scanDef(com.sun.tools.javac.tree.JCTree);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 1
ifnull 5
aload 1
getstatic com.sun.tools.javac.tree.JCTree$Tag.BLOCK:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifeq 5
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifne 5
2: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
3: ldc "initializer.must.be.able.to.complete.normally"
iconst_0
anewarray java.lang.Object
4: invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 6 1 tree Lcom/sun/tools/javac/tree/JCTree;
MethodParameters:
Name Flags
tree
void scanStat(com.sun.tools.javac.tree.JCTree);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifne 3
aload 1
ifnull 3
1: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
aload 1
invokevirtual com.sun.tools.javac.tree.JCTree.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
ldc "unreachable.stmt"
iconst_0
anewarray java.lang.Object
invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
2: aload 1
getstatic com.sun.tools.javac.tree.JCTree$Tag.SKIP:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifne 3
aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree;
MethodParameters:
Name Flags
tree
void scanStats(com.sun.tools.javac.util.List<? extends com.sun.tools.javac.tree.JCTree$JCStatement>);
descriptor: (Lcom/sun/tools/javac/util/List;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
1: aload 1
astore 2
start local 2 2: goto 5
3: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 0
aload 2
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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
4: aload 2
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 2
StackMap locals:
StackMap stack:
5: aload 2
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 3
end local 2 6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 7 1 trees Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/tree/JCTree$JCStatement;>;
2 6 2 l Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/tree/JCTree$JCStatement;>;
Signature: (Lcom/sun/tools/javac/util/List<+Lcom/sun/tools/javac/tree/JCTree$JCStatement;>;)V
MethodParameters:
Name Flags
trees
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=7, 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$AliveAnalyzer.alive:Z
istore 2
start local 2 2: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 3
start local 3 3: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
5: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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;
6: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 5
start local 5 7: goto 12
8: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCClassDecl int com.sun.tools.javac.util.ListBuffer 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
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 11
9: aload 5
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 11
10: aload 0
aload 5
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$AliveAnalyzer.scanDef:(Lcom/sun/tools/javac/tree/JCTree;)V
11: StackMap locals:
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
StackMap locals:
StackMap stack:
12: aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 8
end local 5 13: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 5
start local 5 14: goto 19
15: StackMap locals:
StackMap stack:
aload 5
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 18
16: aload 5
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 18
17: aload 0
aload 5
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$AliveAnalyzer.scanDef:(Lcom/sun/tools/javac/tree/JCTree;)V
18: StackMap locals:
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
StackMap locals:
StackMap stack:
19: aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 15
end local 5 20: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCClassDecl.defs:Lcom/sun/tools/javac/util/List;
astore 5
start local 5 21: goto 25
22: StackMap locals:
StackMap stack:
aload 5
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 24
23: aload 0
aload 5
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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
24: StackMap locals:
StackMap stack:
aload 5
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 5
StackMap locals:
StackMap stack:
25: aload 5
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 22
end local 5 26: goto 32
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCClassDecl int com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Lint
StackMap stack: java.lang.Throwable
27: astore 6
28: aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
29: aload 0
iload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
30: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 4
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
31: aload 6
athrow
32: StackMap locals:
StackMap stack:
aload 0
aload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
33: aload 0
iload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
34: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 4
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
35: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 36 1 tree Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
2 36 2 alivePrev Z
3 36 3 pendingExitsPrev Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
4 36 4 lintPrev Lcom/sun/tools/javac/code/Lint;
7 13 5 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
14 20 5 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
21 26 5 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree;>;
Exception table:
from to target type
6 27 27 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=6, 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$AliveAnalyzer.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$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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;
3: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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
4: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
5: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
6: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifeq 8
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.getReturnType:()Lcom/sun/tools/javac/code/Type;
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 8
7: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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.tree.JCTree$JCMethodDecl.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokestatic com.sun.tools.javac.tree.TreeInfo.diagEndPos:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
ldc "missing.ret.stmt"
iconst_0
anewarray java.lang.Object
invokevirtual com.sun.tools.javac.util.Log.error:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
8: StackMap locals: com.sun.tools.javac.code.Lint
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
astore 3
start local 3 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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
10: goto 14
11: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 3
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
astore 4
start local 4 12: aload 3
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 3
13: aload 4
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
invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
end local 4 14: StackMap locals:
StackMap stack:
aload 3
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 11
end local 3 15: goto 19
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCMethodDecl com.sun.tools.javac.code.Lint
StackMap stack: java.lang.Throwable
16: astore 5
17: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 2
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
18: aload 5
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 2
putfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
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$AliveAnalyzer;
0 21 1 tree Lcom/sun/tools/javac/tree/JCTree$JCMethodDecl;
2 21 2 lintPrev Lcom/sun/tools/javac/code/Lint;
9 15 3 exits Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
12 14 4 exit Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
Exception table:
from to target type
4 16 16 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$AliveAnalyzer.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$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
4: goto 8
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer 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$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer;
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$AliveAnalyzer.scanStats:(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$AliveAnalyzer;
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=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: aload 0
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifeq 6
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCDoWhileLoop.cond: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.isTrue:()Z
ifne 6
iconst_1
goto 7
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCDoWhileLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
6: iconst_0
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCDoWhileLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer int
7: putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
8: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
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$AliveAnalyzer;
0 10 1 tree Lcom/sun/tools/javac/tree/JCTree$JCDoWhileLoop;
1 10 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=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCWhileLoop.cond: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.isFalse:()Z
ifeq 4
iconst_0
goto 5
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCWhileLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
4: iconst_1
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCWhileLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer int
5: putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
6: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
7: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
8: aload 0
aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
ifne 10
9: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCWhileLoop.cond: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.isTrue:()Z
ifeq 10
iconst_0
goto 11
StackMap locals:
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
10: iconst_1
11: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCWhileLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer int
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 13 1 tree Lcom/sun/tools/javac/tree/JCTree$JCWhileLoop;
1 13 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=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.scanStats:(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$AliveAnalyzer.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 9
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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.cond: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.isFalse:()Z
ifeq 6
iconst_0
goto 7
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCForLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
6: iconst_1
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCForLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer int
7: putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
8: goto 10
9: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
10: StackMap locals:
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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
11: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
12: 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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
13: aload 0
aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
ifne 16
14: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.cond:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnull 15
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCForLoop.cond: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.isTrue:()Z
ifeq 16
StackMap locals:
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
15: iconst_0
goto 17
StackMap locals:
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer
16: iconst_1
17: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCForLoop com.sun.tools.javac.util.ListBuffer
StackMap stack: com.sun.tools.javac.comp.Flow$AliveAnalyzer int
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
18: return
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$AliveAnalyzer;
0 19 1 tree Lcom/sun/tools/javac/tree/JCTree$JCForLoop;
1 19 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=4, 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$AliveAnalyzer.visitVarDef:(Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
1: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
5: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveContinues:(Lcom/sun/tools/javac/tree/JCTree;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
6: aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
pop
7: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 9 1 tree Lcom/sun/tools/javac/tree/JCTree$JCEnhancedForLoop;
2 9 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=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
3: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
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$AliveAnalyzer;
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=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: aload 0
aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitch.selector:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
3: iconst_0
istore 3
start local 3 4: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCSwitch.cases:Lcom/sun/tools/javac/util/List;
astore 4
start local 4 5: goto 20
6: StackMap locals: com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.List
StackMap stack:
aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
7: aload 4
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCase
astore 5
start local 5 8: aload 5
getfield com.sun.tools.javac.tree.JCTree$JCCase.pat:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
ifnonnull 10
9: iconst_1
istore 3
goto 11
10: StackMap locals: com.sun.tools.javac.tree.JCTree$JCCase
StackMap stack:
aload 0
aload 5
getfield com.sun.tools.javac.tree.JCTree$JCCase.pat:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
11: StackMap locals:
StackMap stack:
aload 0
aload 5
getfield com.sun.tools.javac.tree.JCTree$JCCase.stats:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scanStats:(Lcom/sun/tools/javac/util/List;)V
12: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifeq 19
13: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
getstatic com.sun.tools.javac.code.Lint$LintCategory.FALLTHROUGH:Lcom/sun/tools/javac/code/Lint$LintCategory;
invokevirtual com.sun.tools.javac.code.Lint.isEnabled:(Lcom/sun/tools/javac/code/Lint$LintCategory;)Z
ifeq 19
14: aload 5
getfield com.sun.tools.javac.tree.JCTree$JCCase.stats:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifeq 19
aload 4
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifeq 19
15: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
getstatic com.sun.tools.javac.code.Lint$LintCategory.FALLTHROUGH:Lcom/sun/tools/javac/code/Lint$LintCategory;
16: aload 4
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree$JCCase
invokevirtual com.sun.tools.javac.tree.JCTree$JCCase.pos:()Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
17: ldc "possible.fall-through.into.case"
iconst_0
anewarray java.lang.Object
18: invokevirtual com.sun.tools.javac.util.Log.warning:(Lcom/sun/tools/javac/code/Lint$LintCategory;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
end local 5 19: StackMap locals:
StackMap stack:
aload 4
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 4
StackMap locals:
StackMap stack:
20: aload 4
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 6
end local 4 21: iload 3
ifne 23
22: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
23: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
aload 0
aload 1
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.resolveBreaks:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Z
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
24: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 25 1 tree Lcom/sun/tools/javac/tree/JCTree$JCSwitch;
1 25 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
4 25 3 hasDefault Z
5 21 4 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCase;>;
8 19 5 c Lcom/sun/tools/javac/tree/JCTree$JCCase;
MethodParameters:
Name Flags
tree
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=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
2: 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 4
goto 12
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
3: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.tree.JCTree
astore 3
start local 3 4: aload 3
instanceof com.sun.tools.javac.tree.JCTree$JCVariableDecl
ifeq 8
5: aload 3
checkcast com.sun.tools.javac.tree.JCTree$JCVariableDecl
astore 5
start local 5 6: aload 0
aload 5
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.visitVarDef:(Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;)V
end local 5 7: goto 12
StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.tree.JCTree java.util.Iterator
StackMap stack:
8: aload 3
instanceof com.sun.tools.javac.tree.JCTree$JCExpression
ifeq 11
9: aload 0
aload 3
checkcast com.sun.tools.javac.tree.JCTree$JCExpression
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
10: goto 12
11: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
aload 1
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 12: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
14: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
istore 3
start local 3 15: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.catchers:Lcom/sun/tools/javac/util/List;
astore 4
start local 4 16: goto 23
17: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.List
StackMap stack:
aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
18: 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;
astore 5
start local 5 19: aload 0
aload 5
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
20: aload 0
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.body:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
21: iload 3
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ior
istore 3
end local 5 22: aload 4
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 4
StackMap locals:
StackMap stack:
23: aload 4
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 17
end local 4 24: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.finalizer:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
ifnull 41
25: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 4
start local 4 26: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
27: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
28: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
29: aload 1
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
putfield com.sun.tools.javac.tree.JCTree$JCTry.finallyCanCompleteNormally:Z
30: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
ifne 38
31: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.lint:Lcom/sun/tools/javac/code/Lint;
getstatic com.sun.tools.javac.code.Lint$LintCategory.FINALLY:Lcom/sun/tools/javac/code/Lint$LintCategory;
invokevirtual com.sun.tools.javac.code.Lint.isEnabled:(Lcom/sun/tools/javac/code/Lint$LintCategory;)Z
ifeq 47
32: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
getfield com.sun.tools.javac.comp.Flow.log:Lcom/sun/tools/javac/util/Log;
getstatic com.sun.tools.javac.code.Lint$LintCategory.FINALLY:Lcom/sun/tools/javac/code/Lint$LintCategory;
33: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCTry.finalizer:Lcom/sun/tools/javac/tree/JCTree$JCBlock;
invokestatic com.sun.tools.javac.tree.TreeInfo.diagEndPos:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
34: ldc "finally.cannot.complete"
iconst_0
anewarray java.lang.Object
35: invokevirtual com.sun.tools.javac.util.Log.warning:(Lcom/sun/tools/javac/code/Lint$LintCategory;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
36: goto 47
37: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCTry com.sun.tools.javac.util.ListBuffer int com.sun.tools.javac.util.ListBuffer
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 4
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
38: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.sun.tools.javac.util.ListBuffer.nonEmpty:()Z
ifne 37
39: aload 0
iload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
end local 4 40: goto 47
41: StackMap locals:
StackMap stack:
aload 0
iload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
42: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 4
start local 4 43: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
44: goto 46
StackMap locals: com.sun.tools.javac.util.ListBuffer
StackMap stack:
45: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 4
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:
46: aload 4
invokevirtual com.sun.tools.javac.util.ListBuffer.nonEmpty:()Z
ifne 45
end local 4 47: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 48 1 tree Lcom/sun/tools/javac/tree/JCTree$JCTry;
1 48 2 prevPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
4 12 3 resource Lcom/sun/tools/javac/tree/JCTree;
6 7 5 vdecl Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
15 48 3 aliveEnd Z
16 24 4 l Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/tree/JCTree$JCCatch;>;
19 22 5 param Lcom/sun/tools/javac/tree/JCTree$JCVariableDecl;
26 40 4 exits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
43 47 4 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=3, locals=3, 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$AliveAnalyzer.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$AliveAnalyzer.scanStat:(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 8
3: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
istore 2
start local 2 4: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
5: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
6: aload 0
dup
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
iload 2
ior
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
end local 2 7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
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$AliveAnalyzer;
0 10 1 tree Lcom/sun/tools/javac/tree/JCTree$JCIf;
4 7 2 aliveAfterThen Z
MethodParameters:
Name Flags
tree
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$AliveAnalyzer.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$AliveAnalyzer;
0 2 1 tree Lcom/sun/tools/javac/tree/JCTree$JCBreak;
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$AliveAnalyzer.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$AliveAnalyzer;
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$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer;
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=2, locals=2, 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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
1: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.markDead:()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$AliveAnalyzer;
0 3 1 tree Lcom/sun/tools/javac/tree/JCTree$JCThrow;
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=2, locals=2, 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$AliveAnalyzer.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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)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$AliveAnalyzer;
0 3 1 tree Lcom/sun/tools/javac/tree/JCTree$JCMethodInvocation;
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=2, locals=2, 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$AliveAnalyzer.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$AliveAnalyzer.scan:(Lcom/sun/tools/javac/util/List;)V
2: aload 1
getfield com.sun.tools.javac.tree.JCTree$JCNewClass.def:Lcom/sun/tools/javac/tree/JCTree$JCClassDecl;
ifnull 4
3: 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$AliveAnalyzer.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$AliveAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree$JCNewClass;
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=5, 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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
astore 2
start local 2 4: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
istore 3
start local 3 5: 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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
6: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
7: 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$AliveAnalyzer.scanStat:(Lcom/sun/tools/javac/tree/JCTree;)V
8: aload 1
aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
putfield com.sun.tools.javac.tree.JCTree$JCLambda.canCompleteNormally:Z
9: goto 14
10: StackMap locals: com.sun.tools.javac.comp.Flow$AliveAnalyzer com.sun.tools.javac.tree.JCTree$JCLambda com.sun.tools.javac.util.ListBuffer int
StackMap stack: java.lang.Throwable
astore 4
11: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
12: aload 0
iload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
13: aload 4
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
15: aload 0
iload 3
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
16: return
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$AliveAnalyzer;
0 17 1 tree Lcom/sun/tools/javac/tree/JCTree$JCLambda;
4 17 2 prevPending Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
5 17 3 prevAlive Z
Exception table:
from to target type
5 10 10 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$AliveAnalyzer;
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$AliveAnalyzer.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$AliveAnalyzer;
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=3, 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$AliveAnalyzer.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$AliveAnalyzer.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$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
3: aload 0
iconst_1
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.alive:Z
4: aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Flow$AliveAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
5: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 4
7: aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
8: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aconst_null
putfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
9: aload 4
athrow
10: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
11: aload 0
getfield com.sun.tools.javac.comp.Flow$AliveAnalyzer.this$0:Lcom/sun/tools/javac/comp/Flow;
aconst_null
putfield com.sun.tools.javac.comp.Flow.make:Lcom/sun/tools/javac/tree/TreeMaker;
12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/tools/javac/comp/Flow$AliveAnalyzer;
0 13 1 env Lcom/sun/tools/javac/comp/Env<Lcom/sun/tools/javac/comp/AttrContext;>;
0 13 2 tree Lcom/sun/tools/javac/tree/JCTree;
0 13 3 make Lcom/sun/tools/javac/tree/TreeMaker;
Exception table:
from to target type
0 6 6 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
}
Signature: Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
SourceFile: "Flow.java"
NestHost: com.sun.tools.javac.comp.Flow
InnerClasses:
public final LintCategory = com.sun.tools.javac.code.Lint$LintCategory of com.sun.tools.javac.code.Lint
public MethodSymbol = com.sun.tools.javac.code.Symbol$MethodSymbol of com.sun.tools.javac.code.Symbol
AliveAnalyzer = com.sun.tools.javac.comp.Flow$AliveAnalyzer of com.sun.tools.javac.comp.Flow
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
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 abstract JCStatement = com.sun.tools.javac.tree.JCTree$JCStatement of com.sun.tools.javac.tree.JCTree
public JCSwitch = com.sun.tools.javac.tree.JCTree$JCSwitch 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 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 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