Lines 50-57
Link Here
|
50 |
return flowInfo; |
50 |
return flowInfo; |
51 |
} else { |
51 |
} else { |
52 |
LabelFlowContext labelContext; |
52 |
LabelFlowContext labelContext; |
53 |
FlowInfo mergedInfo = |
53 |
FlowInfo statementInfo, mergedInfo; |
54 |
statement |
54 |
if (((statementInfo = statement |
55 |
.analyseCode( |
55 |
.analyseCode( |
56 |
currentScope, |
56 |
currentScope, |
57 |
(labelContext = |
57 |
(labelContext = |
Lines 61-68
Link Here
|
61 |
label, |
61 |
label, |
62 |
(targetLabel = new BranchLabel()), |
62 |
(targetLabel = new BranchLabel()), |
63 |
currentScope)), |
63 |
currentScope)), |
64 |
flowInfo) |
64 |
flowInfo)).tagBits & FlowInfo.UNREACHABLE) != 0) { |
65 |
.mergedWith(labelContext.initsOnBreak); |
65 |
// an embedded loop has had no chance to reinject forgotten null info |
|
|
66 |
mergedInfo = flowInfo.unconditionalCopy(). |
67 |
addInitializationsFrom(labelContext.initsOnBreak); |
68 |
} else { |
69 |
mergedInfo = statementInfo.mergedWith(labelContext.initsOnBreak); |
70 |
} |
66 |
mergedInitStateIndex = |
71 |
mergedInitStateIndex = |
67 |
currentScope.methodScope().recordInitializationStates(mergedInfo); |
72 |
currentScope.methodScope().recordInitializationStates(mergedInfo); |
68 |
if ((this.bits & ASTNode.LabelUsed) == 0) { |
73 |
if ((this.bits & ASTNode.LabelUsed) == 0) { |