defer assignment: choose anchor from same code block

EA-48621 - assert: CompositeElement.addChild
This commit is contained in:
Anna.Kozlova
2016-10-12 12:58:45 +02:00
parent 2fe5c4f51c
commit 5af6b0be16
3 changed files with 24 additions and 1 deletions

View File

@@ -154,7 +154,10 @@ public class DeferFinalAssignmentFix implements IntentionAction {
PsiElement element = null; //controlFlow.getEndOffset(codeBlock) == offset ? getEnclosingStatement(controlFlow.getElement(offset)) : null;
while (offset < controlFlow.getSize()) {
element = controlFlow.getElement(offset);
if (element != null) element = PsiUtil.getEnclosingStatement(element);
while (element != null) {
if (element.getParent() == codeBlock) break;
element = element.getParent();
}
int startOffset = controlFlow.getStartOffset(element);
if (startOffset != -1 && startOffset >= minOffset && element instanceof PsiStatement) break;
offset++;

View File

@@ -0,0 +1,11 @@
// "Defer assignment to 'i' using temp variable" "true"
class a {
{
final int i;
int i1;
if (true) i1 = 0;
if (true) i1 = 0;
i = i1;
{if (false);}
}
}

View File

@@ -0,0 +1,9 @@
// "Defer assignment to 'i' using temp variable" "true"
class a {
{
final int i;
if (true) i = 0;
if (true) <caret>i = 0;
{if (false);}
}
}