abstract class com.sun.tools.javac.comp.Flow$BaseAnalyzer extends com.sun.tools.javac.tree.TreeScanner
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.tools.javac.comp.Flow$BaseAnalyzer
super_class: com.sun.tools.javac.tree.TreeScanner
{
com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit> pendingExits;
descriptor: Lcom/sun/tools/javac/util/ListBuffer;
flags: (0x0000)
Signature: Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.sun.tools.javac.tree.TreeScanner.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer;
abstract void markDead();
descriptor: ()V
flags: (0x0400) ACC_ABSTRACT
void recordExit(com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit);
descriptor: (Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
aload 1
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
1: aload 0
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.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$BaseAnalyzer;
0 3 1 pe Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
MethodParameters:
Name Flags
pe
private com.sun.tools.javac.comp.Flow$Liveness resolveJump(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit>, com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;)Lcom/sun/tools/javac/comp/Flow$Liveness;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: aload 0
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer.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 2: aload 0
aload 2
putfield com.sun.tools.javac.comp.Flow$BaseAnalyzer.pendingExits:Lcom/sun/tools/javac/util/ListBuffer;
3: goto 12
4: StackMap locals: int 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 5: aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
aload 3
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind.treeTag:Lcom/sun/tools/javac/tree/JCTree$Tag;
invokevirtual com.sun.tools.javac.tree.JCTree.hasTag:(Lcom/sun/tools/javac/tree/JCTree$Tag;)Z
ifeq 10
6: aload 3
aload 6
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.tree:Lcom/sun/tools/javac/tree/JCTree;
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind.getTarget:(Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/tree/JCTree;
aload 1
if_acmpne 10
7: aload 6
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit.resolveJump:()V
8: iconst_1
istore 4
9: goto 11
10: StackMap locals: com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Flow$BaseAnalyzer.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 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 4
13: iload 4
invokestatic com.sun.tools.javac.comp.Flow$Liveness.from:(Z)Lcom/sun/tools/javac/comp/Flow$Liveness;
areturn
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 14 0 this Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer;
0 14 1 tree Lcom/sun/tools/javac/tree/JCTree;
0 14 2 oldPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
0 14 3 jk Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;
1 14 4 resolved Z
2 14 5 exits Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
5 11 6 exit Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;
Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;)Lcom/sun/tools/javac/comp/Flow$Liveness;
MethodParameters:
Name Flags
tree
oldPendingExits
jk
com.sun.tools.javac.comp.Flow$Liveness resolveContinues(com.sun.tools.javac.tree.JCTree);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;)Lcom/sun/tools/javac/comp/Flow$Liveness;
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
getstatic com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind.CONTINUE:Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.resolveJump:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;)Lcom/sun/tools/javac/comp/Flow$Liveness;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree;
MethodParameters:
Name Flags
tree
com.sun.tools.javac.comp.Flow$Liveness resolveBreaks(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit>);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind.BREAK:Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.resolveJump:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;)Lcom/sun/tools/javac/comp/Flow$Liveness;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree;
0 1 2 oldPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;)Lcom/sun/tools/javac/comp/Flow$Liveness;
MethodParameters:
Name Flags
tree
oldPendingExits
com.sun.tools.javac.comp.Flow$Liveness resolveYields(com.sun.tools.javac.tree.JCTree, com.sun.tools.javac.util.ListBuffer<com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit>);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;)Lcom/sun/tools/javac/comp/Flow$Liveness;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind.YIELD:Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.resolveJump:(Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer;Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$JumpKind;)Lcom/sun/tools/javac/comp/Flow$Liveness;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree;
0 1 2 oldPendingExits Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;
Signature: (Lcom/sun/tools/javac/tree/JCTree;Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/comp/Flow$BaseAnalyzer$PendingExit;>;)Lcom/sun/tools/javac/comp/Flow$Liveness;
MethodParameters:
Name Flags
tree
oldPendingExits
public void scan(com.sun.tools.javac.tree.JCTree);
descriptor: (Lcom/sun/tools/javac/tree/JCTree;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
1: aload 1
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
ifnull 3
2: aload 1
getfield com.sun.tools.javac.tree.JCTree.type:Lcom/sun/tools/javac/code/Type;
getstatic com.sun.tools.javac.code.Type.stuckType:Lcom/sun/tools/javac/code/Type$JCNoType;
if_acmpeq 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial com.sun.tools.javac.tree.TreeScanner.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$BaseAnalyzer;
0 5 1 tree Lcom/sun/tools/javac/tree/JCTree;
MethodParameters:
Name Flags
tree
public void visitPackageDef(com.sun.tools.javac.tree.JCTree$JCPackageDecl);
descriptor: (Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;)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$BaseAnalyzer;
0 1 1 tree Lcom/sun/tools/javac/tree/JCTree$JCPackageDecl;
MethodParameters:
Name Flags
tree
protected void scanSyntheticBreak(com.sun.tools.javac.tree.TreeMaker, com.sun.tools.javac.tree.JCTree);
descriptor: (Lcom/sun/tools/javac/tree/TreeMaker;Lcom/sun/tools/javac/tree/JCTree;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
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 5
1: aload 1
iconst_m1
invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(I)Lcom/sun/tools/javac/tree/TreeMaker;
aconst_null
invokevirtual com.sun.tools.javac.tree.TreeMaker.Yield:(Lcom/sun/tools/javac/tree/JCTree$JCExpression;)Lcom/sun/tools/javac/tree/JCTree$JCYield;
astore 3
start local 3 2: aload 3
aload 2
putfield com.sun.tools.javac.tree.JCTree$JCYield.target:Lcom/sun/tools/javac/tree/JCTree;
3: aload 0
aload 3
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
end local 3 4: goto 8
5: StackMap locals:
StackMap stack:
aload 1
iconst_m1
invokevirtual com.sun.tools.javac.tree.TreeMaker.at:(I)Lcom/sun/tools/javac/tree/TreeMaker;
aconst_null
invokevirtual com.sun.tools.javac.tree.TreeMaker.Break:(Lcom/sun/tools/javac/util/Name;)Lcom/sun/tools/javac/tree/JCTree$JCBreak;
astore 3
start local 3 6: aload 3
aload 2
putfield com.sun.tools.javac.tree.JCTree$JCBreak.target:Lcom/sun/tools/javac/tree/JCTree;
7: aload 0
aload 3
invokevirtual com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan:(Lcom/sun/tools/javac/tree/JCTree;)V
end local 3 8: StackMap locals:
StackMap stack:
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$BaseAnalyzer;
0 9 1 make Lcom/sun/tools/javac/tree/TreeMaker;
0 9 2 swtch Lcom/sun/tools/javac/tree/JCTree;
2 4 3 brk Lcom/sun/tools/javac/tree/JCTree$JCYield;
6 8 3 brk Lcom/sun/tools/javac/tree/JCTree$JCBreak;
MethodParameters:
Name Flags
make
swtch
}
SourceFile: "Flow.java"
NestHost: com.sun.tools.javac.comp.Flow
InnerClasses:
abstract BaseAnalyzer = com.sun.tools.javac.comp.Flow$BaseAnalyzer of com.sun.tools.javac.comp.Flow
abstract JumpKind = com.sun.tools.javac.comp.Flow$BaseAnalyzer$JumpKind of com.sun.tools.javac.comp.Flow$BaseAnalyzer
PendingExit = com.sun.tools.javac.comp.Flow$BaseAnalyzer$PendingExit of com.sun.tools.javac.comp.Flow$BaseAnalyzer
abstract Liveness = com.sun.tools.javac.comp.Flow$Liveness of com.sun.tools.javac.comp.Flow
public JCBreak = com.sun.tools.javac.tree.JCTree$JCBreak 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 JCPackageDecl = com.sun.tools.javac.tree.JCTree$JCPackageDecl 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