diff --git a/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Bar.java b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Bar.java new file mode 100644 index 000000000000..54a888592307 --- /dev/null +++ b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Bar.java @@ -0,0 +1,7 @@ +class Bar { + + void m() { + new FooImpl().someMethod(); + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Foo.java b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Foo.java new file mode 100644 index 000000000000..058f2ce0239f --- /dev/null +++ b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy/Foo.java @@ -0,0 +1,10 @@ +interface Foo { + void someMethod(); +} + +class FooImpl implements Foo { + @Override + public void someMethod() { + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Bar.java b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Bar.java new file mode 100644 index 000000000000..55f87d7c04e5 --- /dev/null +++ b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Bar.java @@ -0,0 +1,7 @@ +class Bar { + + void m() { + new Foo().run(); + } + +} \ No newline at end of file diff --git a/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Foo.java b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Foo.java new file mode 100644 index 000000000000..6375bbdbf198 --- /dev/null +++ b/java/java-tests/testData/compiler/compilerReferenceFindUsages/testMethodUsageInClassHierarchy2/Foo.java @@ -0,0 +1,6 @@ +interface Foo implements Runnable { + @Override + public void run() { + + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/compiler/CompilerReferencesFindUsagesTest.java b/java/java-tests/testSrc/com/intellij/compiler/CompilerReferencesFindUsagesTest.java index ca7a37ffd20a..8977e1f40ca3 100644 --- a/java/java-tests/testSrc/com/intellij/compiler/CompilerReferencesFindUsagesTest.java +++ b/java/java-tests/testSrc/com/intellij/compiler/CompilerReferencesFindUsagesTest.java @@ -55,6 +55,22 @@ public class CompilerReferencesFindUsagesTest extends DaemonAnalyzerTestCase { return JavaTestUtil.getJavaTestDataPath() + "/compiler/compilerReferenceFindUsages/"; } + public void testMethodUsageInClassHierarchy() throws Exception { + configureByFiles(getName(), getName() + "/Bar.java", getName() + "/Foo.java"); + PsiMethod methodToSearch = findClass("Foo").findMethodsByName("someMethod", false)[0]; + assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll()); + myCompilerTester.rebuild(); + assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll()); + } + + public void testMethodUsageInClassHierarchy2() throws Exception { + configureByFiles(getName(), getName() + "/Bar.java", getName() + "/Foo.java"); + PsiMethod methodToSearch = myJavaFacade.findClass(CommonClassNames.JAVA_LANG_RUNNABLE).findMethodsByName("run", false)[0]; + assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll()); + myCompilerTester.rebuild(); + assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll()); + } + public void testLibMethodUsage() throws Exception { configureByFile(getName() + "/Foo.java"); myCompilerTester.rebuild();