unused declaration: fix qualified references processing again

This commit is contained in:
Dmitry Batkovich
2018-09-28 16:23:12 +03:00
parent 2506cea718
commit 9f995e90a6
4 changed files with 28 additions and 7 deletions
@@ -148,13 +148,7 @@ public class RefJavaUtilImpl extends RefJavaUtil {
@Override
public boolean visitQualifiedReferenceExpression(@NotNull UQualifiedReferenceExpression node) {
visitReferenceExpression(node);
node.getAnnotations().forEach(annotation -> annotation.accept(this));
UExpression receiver = node.getReceiver();
receiver.accept(this);
if (!(receiver instanceof UInstanceExpression)) {
node.getSelector().accept(this);
}
return true;
return false;
}
@Override
@@ -203,6 +197,10 @@ public class RefJavaUtilImpl extends RefJavaUtil {
}
private void visitReferenceExpression(UExpression node) {
UElement uastParent = node.getUastParent();
if (uastParent instanceof UQualifiedReferenceExpression && ((UQualifiedReferenceExpression)uastParent).getSelector() == node) {
return;
}
PsiElement psiResolved = null;
if (node instanceof UResolvable) {
psiResolved = ((UResolvable)node).resolve();
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<problems/>
@@ -0,0 +1,17 @@
class A {
void m(String string) {
}
}
class B extends A {
void m(String string) {
super.m(string + "///");
}
}
public class Test {
public static void main(String[] args) {
new B().m("abc");
}
}
@@ -238,4 +238,8 @@ public class UnusedDeclarationTest extends AbstractUnusedDeclarationTest {
public void testTypeParameterUsed() {
doTest();
}
public void testMethodCallQualifiedWithSuper() {
doTest();
}
}