public class org.eclipse.jdt.internal.compiler.ast.WhileStatement extends org.eclipse.jdt.internal.compiler.ast.Statement
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.eclipse.jdt.internal.compiler.ast.WhileStatement
super_class: org.eclipse.jdt.internal.compiler.ast.Statement
{
public org.eclipse.jdt.internal.compiler.ast.Expression condition;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Expression;
flags: (0x0001) ACC_PUBLIC
public org.eclipse.jdt.internal.compiler.ast.Statement action;
descriptor: Lorg/eclipse/jdt/internal/compiler/ast/Statement;
flags: (0x0001) ACC_PUBLIC
private org.eclipse.jdt.internal.compiler.codegen.BranchLabel breakLabel;
descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
flags: (0x0002) ACC_PRIVATE
private org.eclipse.jdt.internal.compiler.codegen.BranchLabel continueLabel;
descriptor: Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
flags: (0x0002) ACC_PRIVATE
int preCondInitStateIndex;
descriptor: I
flags: (0x0000)
int condIfTrueInitStateIndex;
descriptor: I
flags: (0x0000)
int mergedInitStateIndex;
descriptor: I
flags: (0x0000)
public void <init>(org.eclipse.jdt.internal.compiler.ast.Expression, org.eclipse.jdt.internal.compiler.ast.Statement, int, int);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ast/Expression;Lorg/eclipse/jdt/internal/compiler/ast/Statement;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial org.eclipse.jdt.internal.compiler.ast.Statement.<init>:()V
1: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
2: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
3: aload 0
iconst_m1
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
4: aload 0
aload 1
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
5: aload 0
aload 2
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
6: aload 2
instanceof org.eclipse.jdt.internal.compiler.ast.EmptyStatement
ifeq 7
aload 2
dup
getfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
iconst_1
ior
putfield org.eclipse.jdt.internal.compiler.ast.Statement.bits:I
7: StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.ast.Expression org.eclipse.jdt.internal.compiler.ast.Statement int int
StackMap stack:
aload 0
iload 3
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
8: aload 0
iload 4
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceEnd:I
9: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 10 1 condition Lorg/eclipse/jdt/internal/compiler/ast/Expression;
0 10 2 action Lorg/eclipse/jdt/internal/compiler/ast/Statement;
0 10 3 s I
0 10 4 e I
MethodParameters:
Name Flags
condition
action
s
e
public org.eclipse.jdt.internal.compiler.flow.FlowInfo analyseCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.flow.FlowContext, org.eclipse.jdt.internal.compiler.flow.FlowInfo);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
1: aload 0
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:()V
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
2: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.reachMode:()I
iconst_3
iand
ifeq 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 4
start local 4 5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
astore 5
start local 5 6: aload 5
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 7
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifeq 7
iconst_1
goto 8
StackMap locals: int org.eclipse.jdt.internal.compiler.impl.Constant
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 6
start local 6 9: aload 5
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 10
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifne 10
iconst_1
goto 11
StackMap locals: int
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: istore 7
start local 7 12: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
astore 5
13: aload 5
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 14
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifeq 14
iconst_1
goto 15
StackMap locals: int
StackMap stack:
14: iconst_0
StackMap locals:
StackMap stack: int
15: istore 8
start local 8 16: aload 5
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 17
aload 5
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifne 17
iconst_1
goto 18
StackMap locals: int
StackMap stack:
17: iconst_0
StackMap locals:
StackMap stack: int
18: istore 9
start local 9 19: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
20: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.nullInfoLessUnconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 11
start local 11 21: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
22: aload 1
23: new org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
dup
aload 2
aload 3
aload 0
aconst_null
24: aconst_null
aload 1
iconst_1
25: invokespecial org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Z)V
26: dup
astore 10
start local 10 27: aload 11
28: invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.analyseCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 11
29: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.checkNPEbyUnboxing:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
30: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 32
31: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifeq 47
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.compilerOptions:()Lorg/eclipse/jdt/internal/compiler/impl/CompilerOptions;
getfield org.eclipse.jdt.internal.compiler.impl.CompilerOptions.complianceLevel:J
ldc 3080192
lcmp
ifgt 47
32: StackMap locals: int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 10
aload 1
33: aload 11
34: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
35: aload 10
aload 1
36: aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
37: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
38: iload 6
ifeq 40
39: getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
areturn
40: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 15
start local 15 41: iload 8
ifeq 43
42: aload 15
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.setReachMode:(I)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
43: StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo top top top org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 0
44: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 15
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
45: putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
46: aload 15
areturn
end local 15 47: StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
new org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
dup
48: aload 2
49: aload 3
50: aload 0
51: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
52: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
53: aload 1
54: iconst_1
55: invokespecial org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.<init>:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Z)V
56: astore 12
start local 12 57: aload 12
aload 10
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.copyNullCheckedFieldsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;)V
58: iload 7
ifeq 61
59: getstatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.DEAD_END:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 13
start local 13 60: goto 64
end local 13 61: StackMap locals: org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext
StackMap stack:
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenTrue:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 13
start local 13 62: iload 9
ifeq 64
63: aload 13
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.setReachMode:(I)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
64: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 0
65: aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
66: aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenTrue:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
67: invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
68: putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
69: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 13
aload 1
iload 4
iconst_1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.complainIfUnreachable:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;IZ)I
iconst_2
if_icmpge 71
70: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 1
aload 12
aload 13
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.analyseCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 13
71: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 14
start local 14 72: aload 13
getfield org.eclipse.jdt.internal.compiler.flow.FlowInfo.tagBits:I
aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
iand
istore 15
start local 15 73: iload 15
iconst_3
iand
ifeq 85
74: iload 15
iconst_1
iand
ifeq 76
75: aload 0
aconst_null
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
76: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo int
StackMap stack:
aload 14
aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
77: aload 13
aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 13
78: aload 10
aload 1
79: aload 13
iconst_0
80: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Z)V
81: aload 12
aload 1
82: aload 13
iconst_0
83: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Z)V
84: goto 102
85: StackMap locals:
StackMap stack:
aload 10
aload 1
86: aload 11
87: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
88: aload 13
aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnContinue:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 13
89: aload 10
aload 1
90: aload 13
91: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
92: aload 12
aload 1
93: aload 13
94: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredFinalChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
95: aload 12
aload 1
96: aload 13
97: invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.complainOnDeferredNullChecks:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
98: aload 14
99: aload 13
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
100: invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addPotentialInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
101: aload 11
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.initsWhenFalse:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
pop
102: StackMap locals:
StackMap stack:
aload 12
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.hasEscapingExceptions:()Z
ifeq 107
103: aload 3
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.copy:()Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
astore 16
start local 16 104: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 106
105: aload 16
aload 16
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalCopy:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
aload 13
invokevirtual org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.addNullInfoFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.unconditionalInits:()Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedWith:(Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 16
106: StackMap locals: org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack:
aload 12
aload 16
invokevirtual org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.simulateThrowAfterLoopBack:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)V
end local 16 end local 15 107: StackMap locals:
StackMap stack:
aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
getfield org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo.tagBits:I
108: iconst_3
109: iand
ifeq 111
110: aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
goto 112
111: StackMap locals:
StackMap stack:
aload 3
aload 12
getfield org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext.initsOnBreak:Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
invokevirtual org.eclipse.jdt.internal.compiler.flow.FlowInfo.addInitializationsFrom:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
112: StackMap locals:
StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo
iload 8
113: aload 14
114: iload 9
115: iload 6
ifeq 116
iconst_0
goto 117
StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.flow.FlowInfo int
116: iconst_1
117: StackMap locals: org.eclipse.jdt.internal.compiler.ast.WhileStatement org.eclipse.jdt.internal.compiler.lookup.BlockScope org.eclipse.jdt.internal.compiler.flow.FlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.impl.Constant int int int int org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.LoopingFlowContext org.eclipse.jdt.internal.compiler.flow.FlowInfo org.eclipse.jdt.internal.compiler.flow.FlowInfo
StackMap stack: org.eclipse.jdt.internal.compiler.flow.FlowInfo int org.eclipse.jdt.internal.compiler.flow.FlowInfo int int
invokestatic org.eclipse.jdt.internal.compiler.flow.FlowInfo.mergedOptimizedBranches:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZLorg/eclipse/jdt/internal/compiler/flow/FlowInfo;ZZ)Lorg/eclipse/jdt/internal/compiler/flow/UnconditionalFlowInfo;
astore 15
start local 15 118: aload 0
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
aload 15
invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.recordInitializationStates:(Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;)I
putfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
119: aload 15
areturn
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 120 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 120 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 120 2 flowContext Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
0 120 3 flowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
5 120 4 initialComplaintLevel I
6 120 5 cst Lorg/eclipse/jdt/internal/compiler/impl/Constant;
9 120 6 isConditionTrue Z
12 120 7 isConditionFalse Z
16 120 8 isConditionOptimizedTrue Z
19 120 9 isConditionOptimizedFalse Z
27 120 10 condLoopContext Lorg/eclipse/jdt/internal/compiler/flow/LoopingFlowContext;
21 120 11 condInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
57 120 12 loopingContext Lorg/eclipse/jdt/internal/compiler/flow/LoopingFlowContext;
60 61 13 actionInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
62 120 13 actionInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
72 120 14 exitBranch Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
41 47 15 mergedInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
73 107 15 combinedTagBits I
104 107 16 loopbackFlowInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
118 120 15 mergedInfo Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
MethodParameters:
Name Flags
currentScope
flowContext
flowInfo
public void generateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.bits:I
ldc -2147483648
iand
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 3
start local 3 3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
astore 4
start local 4 4: aload 4
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 5
aload 4
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifne 5
iconst_1
goto 6
StackMap locals: int org.eclipse.jdt.internal.compiler.impl.Constant
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 5
start local 5 7: iload 5
ifeq 14
8: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
iconst_0
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
9: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 12
10: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
11: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
12: StackMap locals: int
StackMap stack:
aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
13: return
14: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
15: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnonnull 25
16: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpne 33
17: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
18: aload 1
19: aload 2
20: aconst_null
21: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
22: iconst_1
23: invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateOptimizedBoolean:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Z)V
24: goto 33
25: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.initialize:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
26: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 28
27: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifne 33
28: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 33
29: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.isEmptyBlock:()Z
ifne 33
30: aload 2
getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
istore 6
start local 6 31: aload 2
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.goto_:(Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;)V
32: aload 2
iload 6
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
end local 6 33: StackMap locals:
StackMap stack:
new org.eclipse.jdt.internal.compiler.codegen.BranchLabel
dup
aload 2
invokespecial org.eclipse.jdt.internal.compiler.codegen.BranchLabel.<init>:(Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
astore 6
start local 6 34: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 46
35: aload 6
dup
getfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
iconst_2
ior
putfield org.eclipse.jdt.internal.compiler.codegen.BranchLabel.tagBits:I
36: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
iconst_m1
if_icmpeq 41
37: aload 2
38: aload 1
39: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condIfTrueInitStateIndex:I
40: invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
41: StackMap locals: org.eclipse.jdt.internal.compiler.codegen.BranchLabel
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
42: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.generateCode:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;)V
43: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
iconst_m1
if_icmpeq 47
44: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.preCondInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
45: goto 47
46: StackMap locals:
StackMap stack:
aload 6
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
47: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
ifnull 56
48: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.continueLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
49: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
50: aload 1
51: aload 2
52: aload 6
53: aconst_null
54: iconst_1
55: invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.generateOptimizedBoolean:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;Z)V
56: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
iconst_m1
if_icmpeq 59
57: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.removeNotDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
58: aload 2
aload 1
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.mergedInitStateIndex:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.addDefinitelyAssignedVariables:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;I)V
59: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.breakLabel:Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
invokevirtual org.eclipse.jdt.internal.compiler.codegen.BranchLabel.place:()V
60: aload 2
iload 3
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.sourceStart:I
invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
61: 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 62 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 62 1 currentScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
0 62 2 codeStream Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
3 62 3 pc I
4 62 4 cst Lorg/eclipse/jdt/internal/compiler/impl/Constant;
7 62 5 isConditionOptimizedFalse Z
31 33 6 jumpPC I
34 62 6 actionLabel Lorg/eclipse/jdt/internal/compiler/codegen/BranchLabel;
MethodParameters:
Name Flags
currentScope
codeStream
public void resolve(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
getstatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.BOOLEAN:Lorg/eclipse/jdt/internal/compiler/lookup/BaseTypeBinding;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.resolveTypeExpecting:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
astore 2
start local 2 1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.computeConversion:(Lorg/eclipse/jdt/internal/compiler/lookup/Scope;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)V
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 4
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.resolve:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
4: StackMap locals: org.eclipse.jdt.internal.compiler.lookup.TypeBinding
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 5 1 scope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
1 5 2 type Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
MethodParameters:
Name Flags
scope
public java.lang.StringBuffer printStatement(int, java.lang.StringBuffer);
descriptor: (ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 1
aload 2
invokestatic org.eclipse.jdt.internal.compiler.ast.WhileStatement.printIndent:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
ldc "while ("
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
iconst_0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.printExpression:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
bipush 41
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnonnull 4
3: aload 2
bipush 59
invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
pop
goto 5
4: StackMap locals:
StackMap stack:
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
iload 1
iconst_1
iadd
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.printStatement:(ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
pop
5: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 6 1 tab I
0 6 2 output Ljava/lang/StringBuffer;
MethodParameters:
Name Flags
tab
output
public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
ifeq 4
1: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
2: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 4
3: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aload 1
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.traverse:(Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
4: StackMap locals:
StackMap stack:
aload 1
aload 0
aload 2
invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
0 6 1 visitor Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
0 6 2 blockScope Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
MethodParameters:
Name Flags
visitor
blockScope
public boolean doesNotCompleteNormally();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
getfield org.eclipse.jdt.internal.compiler.ast.Expression.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
astore 1
start local 1 1: aload 1
ifnull 3
aload 1
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 2
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifne 3
StackMap locals: org.eclipse.jdt.internal.compiler.impl.Constant
StackMap stack:
2: iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 2
start local 2 5: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.condition:Lorg/eclipse/jdt/internal/compiler/ast/Expression;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Expression.optimizedBooleanConstant:()Lorg/eclipse/jdt/internal/compiler/impl/Constant;
astore 1
6: aload 1
ifnonnull 7
iconst_1
goto 9
StackMap locals: int
StackMap stack:
7: aload 1
getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
if_acmpeq 8
aload 1
invokevirtual org.eclipse.jdt.internal.compiler.impl.Constant.booleanValue:()Z
ifeq 8
iconst_1
goto 9
StackMap locals:
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: istore 3
start local 3 10: iload 2
ifne 11
iload 3
ifeq 13
StackMap locals: int
StackMap stack:
11: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
ifnull 12
aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
aconst_null
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.breaksOut:([C)Z
ifne 13
StackMap locals:
StackMap stack:
12: iconst_1
ireturn
StackMap locals:
StackMap stack:
13: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
1 14 1 cst Lorg/eclipse/jdt/internal/compiler/impl/Constant;
5 14 2 isConditionTrue Z
10 14 3 isConditionOptimizedTrue Z
public boolean completesByContinue();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.eclipse.jdt.internal.compiler.ast.WhileStatement.action:Lorg/eclipse/jdt/internal/compiler/ast/Statement;
invokevirtual org.eclipse.jdt.internal.compiler.ast.Statement.continuesAtOuterLabel:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/eclipse/jdt/internal/compiler/ast/WhileStatement;
}
SourceFile: "WhileStatement.java"