mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
"Move assignment to field declaration" intention CCE fix
This commit is contained in:
+4
-3
@@ -133,13 +133,14 @@ public class MoveFieldAssignmentToInitializerAction extends BaseIntentionAction
|
||||
if (!PsiUtil.isOnAssignmentLeftHand(reference)) return;
|
||||
PsiElement resolved = reference.resolve();
|
||||
if (resolved != field) return;
|
||||
PsiExpression rValue = ((PsiAssignmentExpression)reference.getParent()).getRExpression();
|
||||
PsiAssignmentExpression assignmentExpression = PsiTreeUtil.getParentOfType(reference, PsiAssignmentExpression.class);
|
||||
PsiExpression rValue = assignmentExpression.getRExpression();
|
||||
if (currentInitializingBlock != null) {
|
||||
// ignore usages other than initializing
|
||||
if (rValue == null || !PsiEquivalenceUtil.areElementsEquivalent(rValue, expression)) {
|
||||
result.set(Boolean.FALSE);
|
||||
}
|
||||
initializingAssignments.add((PsiAssignmentExpression)reference.getParent());
|
||||
initializingAssignments.add(assignmentExpression);
|
||||
}
|
||||
totalUsages.add(assignment);
|
||||
}
|
||||
@@ -153,7 +154,7 @@ public class MoveFieldAssignmentToInitializerAction extends BaseIntentionAction
|
||||
}
|
||||
|
||||
private static PsiField getAssignedField(final PsiAssignmentExpression assignment) {
|
||||
PsiExpression lExpression = assignment.getLExpression();
|
||||
PsiExpression lExpression = PsiUtil.skipParenthesizedExprDown(assignment.getLExpression());
|
||||
if (!(lExpression instanceof PsiReferenceExpression)) return null;
|
||||
PsiElement resolved = ((PsiReferenceExpression)lExpression).resolve();
|
||||
if (!(resolved instanceof PsiField)) return null;
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// "Move assignment to field declaration" "true"
|
||||
public class X {
|
||||
int i = 0;
|
||||
{
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// "Move assignment to field declaration" "false"
|
||||
public class X {
|
||||
int i;
|
||||
{
|
||||
<caret>i=(i)=0; // don't throw exception
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// "Move assignment to field declaration" "true"
|
||||
public class X {
|
||||
int i;
|
||||
{
|
||||
(i)=<caret>0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user