mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
ignore parenthesis when building control flow (IDEA-156926)
This commit is contained in:
+2
-1
@@ -25,6 +25,7 @@
|
||||
package com.intellij.psi.controlFlow;
|
||||
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPolicy {
|
||||
@@ -35,7 +36,7 @@ public class LocalsOrMyInstanceFieldsControlFlowPolicy implements ControlFlowPol
|
||||
|
||||
@Override
|
||||
public PsiVariable getUsedVariable(@NotNull PsiReferenceExpression refExpr) {
|
||||
PsiExpression qualifier = refExpr.getQualifierExpression();
|
||||
PsiExpression qualifier = PsiUtil.skipParenthesizedExprDown(refExpr.getQualifierExpression());
|
||||
if (qualifier == null || qualifier instanceof PsiThisExpression) {
|
||||
PsiElement resolved = refExpr.resolve();
|
||||
if (!(resolved instanceof PsiVariable)) return null;
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
class Unassigned {
|
||||
public final int a;
|
||||
public int b;
|
||||
|
||||
Unassigned(int value) {
|
||||
b = <error descr="Variable '(this).a' might not have been initialized">(this).a</error>;
|
||||
a = value;
|
||||
}
|
||||
}
|
||||
+3
@@ -72,4 +72,7 @@ public class LightAdvHighlightingJdk6Test extends LightDaemonAnalyzerTestCase {
|
||||
public void testSkipAbstractMethodsIfTheyMustBeDeclaredInNonAbstractSuperclass() {
|
||||
doTest(false, false);
|
||||
}
|
||||
public void testVariableUsedBeforeAssignmentWithParenthesis() {
|
||||
doTest(false, false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user