mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
DuplicatesFinder: deparenthesize qualifiers
This commit is contained in:
+7
-1
@@ -519,11 +519,17 @@ public class DuplicatesFinder {
|
||||
return (resolveResult2 instanceof PsiLocalVariable || resolveResult2 instanceof PsiParameter) &&
|
||||
match.putDeclarationCorrespondence(resolveResult1, resolveResult2);
|
||||
}
|
||||
final PsiElement qualifier2 = candidate.getQualifier();
|
||||
PsiElement qualifier2 = candidate.getQualifier();
|
||||
while (qualifier2 instanceof PsiParenthesizedExpression) {
|
||||
qualifier2 = ((PsiParenthesizedExpression)qualifier2).getExpression();
|
||||
}
|
||||
if (!equivalentResolve(resolveResult1, resolveResult2, qualifier2)) {
|
||||
return matchExtractableVariable(pattern, candidate, match);
|
||||
}
|
||||
PsiElement qualifier1 = pattern.getQualifier();
|
||||
while (qualifier1 instanceof PsiParenthesizedExpression) {
|
||||
qualifier1 = ((PsiParenthesizedExpression)qualifier1).getExpression();
|
||||
}
|
||||
if (qualifier1 instanceof PsiReferenceExpression && qualifier2 instanceof PsiReferenceExpression &&
|
||||
!match.areCorrespond(((PsiReferenceExpression)qualifier1).resolve(), ((PsiReferenceExpression)qualifier2).resolve())) {
|
||||
return false;
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
class C {
|
||||
public static void main(String[] args) {
|
||||
switch (args.length) {
|
||||
case 1:
|
||||
<error descr="Cannot resolve symbol 'foo'">foo</error>.bar;
|
||||
break;
|
||||
case 2:
|
||||
(<error descr="Cannot resolve symbol 'baz'">baz</error>).bar;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -41,6 +41,7 @@ class DuplicateBranchesInSwitchTest : LightCodeInsightFixtureTestCase() {
|
||||
fun testParentheses() = doTest()
|
||||
fun testAssignment() = doTest()
|
||||
fun testNoExceptionWhenFirstLabelIsMissing() = doTest()
|
||||
fun testUnresolvedQualifier() = doTest()
|
||||
|
||||
private fun doTest() {
|
||||
myFixture.testHighlighting("${getTestName(false)}.java")
|
||||
|
||||
Reference in New Issue
Block a user