diff --git a/java/java-impl/src/com/intellij/packageDependencies/JavaDependencyVisitorFactory.java b/java/java-impl/src/com/intellij/packageDependencies/JavaDependencyVisitorFactory.java index d7753e9cff6b..8f5de47adaba 100644 --- a/java/java-impl/src/com/intellij/packageDependencies/JavaDependencyVisitorFactory.java +++ b/java/java-impl/src/com/intellij/packageDependencies/JavaDependencyVisitorFactory.java @@ -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); } } diff --git a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/JavaDependencyInspectionTest.kt b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/JavaDependencyInspectionTest.kt index fe26392998ee..41a9476978fb 100644 --- a/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/JavaDependencyInspectionTest.kt +++ b/jvm/jvm-analysis-java-tests/testSrc/com/intellij/codeInspection/tests/java/JavaDependencyInspectionTest.kt @@ -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) { + JavaFoo.foo(); + } + } + """.trimIndent(), skipImports = true) + fun `test illegal fully qualified dependency Java API`() = dependencyViolationTest(javaFooFile, "FqClientJava.java", """ package pkg.client;