diff --git a/java/java-impl/src/com/intellij/usages/impl/rules/JavaUsageTypeProvider.java b/java/java-impl/src/com/intellij/usages/impl/rules/JavaUsageTypeProvider.java index f37a1c2a5742..bfe944e54f27 100644 --- a/java/java-impl/src/com/intellij/usages/impl/rules/JavaUsageTypeProvider.java +++ b/java/java-impl/src/com/intellij/usages/impl/rules/JavaUsageTypeProvider.java @@ -240,6 +240,8 @@ public class JavaUsageTypeProvider implements UsageTypeProviderEx { } } + if (PsiTreeUtil.getParentOfType(element, PsiImportStaticStatement.class, false) != null) return UsageType.CLASS_IMPORT; + return null; } diff --git a/java/java-tests/testData/psi/usages/StaticFieldUsageInImport.java b/java/java-tests/testData/psi/usages/StaticFieldUsageInImport.java new file mode 100644 index 000000000000..a6ace30445c6 --- /dev/null +++ b/java/java-tests/testData/psi/usages/StaticFieldUsageInImport.java @@ -0,0 +1,3 @@ +import static Foo.STATIC_FIELD; +public class StaticMethodCallInImport { +} \ No newline at end of file diff --git a/java/java-tests/testData/psi/usages/StaticMethodUsageInImport.java b/java/java-tests/testData/psi/usages/StaticMethodUsageInImport.java new file mode 100644 index 000000000000..dbf4588efc10 --- /dev/null +++ b/java/java-tests/testData/psi/usages/StaticMethodUsageInImport.java @@ -0,0 +1,4 @@ +import static Foo.staticMethod; +class StaticMethodUsageInImport { + { staticMethod(); } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/psi/usages/JavaUsageTypeProviderTest.java b/java/java-tests/testSrc/com/intellij/java/psi/usages/JavaUsageTypeProviderTest.java index 255df3c36584..5d983e5a5717 100644 --- a/java/java-tests/testSrc/com/intellij/java/psi/usages/JavaUsageTypeProviderTest.java +++ b/java/java-tests/testSrc/com/intellij/java/psi/usages/JavaUsageTypeProviderTest.java @@ -43,6 +43,16 @@ public class JavaUsageTypeProviderTest extends LightCodeInsightFixtureTestCase { assertUsageType(UsageType.CLASS_STATIC_MEMBER_ACCESS, myFixture.findClass("Foo")); } + public void testStaticFieldUsageInImport() { + myFixture.configureByFiles("StaticFieldUsageInImport.java", "Foo.java"); + assertUsageType(UsageType.CLASS_IMPORT, myFixture.findClass("Foo")); + } + + public void testStaticMethodUsageInImport() { + myFixture.configureByFiles("StaticMethodUsageInImport.java", "Foo.java"); + assertUsageType(UsageType.CLASS_IMPORT, myFixture.findClass("Foo")); + } + private void assertUsageType(UsageType expected, PsiClass target) { UsageTarget[] targets = {new PsiElement2UsageTargetAdapter(target)}; PsiElement element = myFixture.getReferenceAtCaretPositionWithAssertion().getElement();