[jvm] Fix double highlighting for qualified expressions in dependency inspection

GitOrigin-RevId: f04115b9aff3f3fc1cf2fa7dcf6270461d1b306a
This commit is contained in:
Bart van Helvert
2022-11-11 09:20:07 +00:00
committed by intellij-monorepo-bot
parent 93eacc6d9d
commit 57b2f30acd
2 changed files with 15 additions and 4 deletions
@@ -38,21 +38,20 @@ public class JavaDependencyVisitorFactory extends DependencyVisitorFactory {
@Override
public void visitReferenceExpression(@NotNull PsiReferenceExpression expression) {
if (expression.getParent() instanceof PsiReferenceExpression expr && expr.isQualified()) return;
visitReferenceElement(expression);
}
@Override
public void visitElement(@NotNull PsiElement element) {
super.visitElement(element);
processElement(element);
super.visitElement(element);
}
private void processElement(@NotNull PsiElement element) {
for (PsiReference ref : element.getReferences()) {
PsiElement resolved = ref.resolve();
if (resolved != null) {
myProcessor.process(ref.getElement(), resolved);
}
if (resolved != null) myProcessor.process(ref.getElement(), resolved);
}
}
@@ -39,6 +39,18 @@ class JavaDependencyInspectionTest : DependencyInspectionTestBase() {
}
""".trimIndent(), skipImports = true)
fun `test illegal imported dependency qualified expression`() = dependencyViolationTest(javaFooFile, "ImportClientJava.java", """
package pkg.client;
import pkg.api.JavaFoo;
class Client {
public static void main(String[] args) {
<error descr="Dependency rule 'Deny usages of scope 'JavaFoo' in scope 'ImportClientJava'.' is violated">JavaFoo.foo</error>();
}
}
""".trimIndent(), skipImports = true)
fun `test illegal fully qualified dependency Java API`() = dependencyViolationTest(javaFooFile, "FqClientJava.java", """
package pkg.client;