diff --git a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties index bd131b89926..ebf7126a735 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetBundle.properties +++ b/idea/src/org/jetbrains/jet/plugin/JetBundle.properties @@ -272,6 +272,7 @@ find.what.overriding.methods.checkbox=Over&riding functions find.options.include.overloaded.methods.checkbox=Include o&verloaded functions and extensions find.what.functions.usages.checkbox=Usages of &functions find.what.properties.usages.checkbox=Usages of &properties +find.what.constructor.usages.checkbox=Usages of &constructor find.what.derived.traits.checkbox=&Derived traits find.what.derived.classes.checkbox=&Derived classes diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/KotlinFindClassUsagesDialog.java b/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/KotlinFindClassUsagesDialog.java index 09494b4e442..c7d2e885f09 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/KotlinFindClassUsagesDialog.java +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/KotlinFindClassUsagesDialog.java @@ -19,6 +19,8 @@ import javax.swing.*; public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog { private StateRestoringCheckBox constructorUsages; + private StateRestoringCheckBox derivedClasses; + private StateRestoringCheckBox derivedTraits; public KotlinFindClassUsagesDialog( PsiClass klass, @@ -47,22 +49,22 @@ public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog { FindBundle.message("find.what.fields.usages.checkbox"), JetBundle.message("find.what.properties.usages.checkbox") ); - Utils.renameCheckbox( - findWhatPanel, - FindBundle.message("find.what.implementing.classes.checkbox"), - JetBundle.message("find.what.implementing.classes.checkbox") - ); - Utils.renameCheckbox( - findWhatPanel, - FindBundle.message("find.what.derived.interfaces.checkbox"), - JetBundle.message("find.what.derived.traits.checkbox") - ); - Utils.renameCheckbox( - findWhatPanel, - FindBundle.message("find.what.derived.classes.checkbox"), - JetBundle.message("find.what.derived.classes.checkbox") - ); + Utils.removeCheckbox(findWhatPanel, FindBundle.message("find.what.implementing.classes.checkbox")); + Utils.removeCheckbox(findWhatPanel, FindBundle.message("find.what.derived.interfaces.checkbox")); + Utils.removeCheckbox(findWhatPanel, FindBundle.message("find.what.derived.classes.checkbox")); + derivedClasses = addCheckboxToPanel( + JetBundle.message("find.what.derived.classes.checkbox"), + getFindUsagesOptions().isDerivedClasses, + findWhatPanel, + true + ); + derivedTraits = addCheckboxToPanel( + JetBundle.message("find.what.derived.traits.checkbox"), + getFindUsagesOptions().isDerivedInterfaces, + findWhatPanel, + true + ); constructorUsages = addCheckboxToPanel( JetBundle.message("find.what.constructor.usages.checkbox"), getFindUsagesOptions().searchConstructorUsages, @@ -89,16 +91,18 @@ public class KotlinFindClassUsagesDialog extends FindClassUsagesDialog { @Override protected void update() { super.update(); - if (!isOKActionEnabled() && constructorUsages.isSelected()) { + if (!isOKActionEnabled() && (constructorUsages.isSelected() || derivedTraits.isSelected() || derivedClasses.isSelected())) { setOKActionEnabled(true); } } @Override public void calcFindUsagesOptions(JavaClassFindUsagesOptions options) { - assert options instanceof KotlinClassFindUsagesOptions; - super.calcFindUsagesOptions(options); - ((KotlinClassFindUsagesOptions) options).searchConstructorUsages = constructorUsages.isSelected(); + + KotlinClassFindUsagesOptions kotlinOptions = (KotlinClassFindUsagesOptions) options; + kotlinOptions.searchConstructorUsages = constructorUsages.isSelected(); + kotlinOptions.isDerivedClasses = derivedClasses.isSelected(); + kotlinOptions.isDerivedInterfaces = derivedTraits.isSelected(); } } diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/Utils.java b/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/Utils.java index 4bd37aa09c6..b7f4bc988a9 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/Utils.java +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/dialogs/Utils.java @@ -22,4 +22,18 @@ class Utils { return false; } + + static boolean removeCheckbox(@NotNull JPanel panel, @NotNull String srcText) { + for (Component component : panel.getComponents()) { + if (component instanceof JCheckBox) { + JCheckBox checkBox = (JCheckBox) component; + if (checkBox.getText().equals(srcText)) { + panel.remove(checkBox); + return true; + } + } + } + + return false; + } } diff --git a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindClassUsagesHandler.java b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindClassUsagesHandler.java index 3c74fff14d5..c1230a62ad8 100644 --- a/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindClassUsagesHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/findUsages/handlers/KotlinFindClassUsagesHandler.java @@ -23,8 +23,12 @@ import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ReadActionProcessor; import com.intellij.openapi.util.Computable; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.TextRange; import com.intellij.psi.*; +import com.intellij.psi.search.PsiElementProcessor; +import com.intellij.psi.search.PsiElementProcessorAdapter; +import com.intellij.psi.search.searches.ClassInheritorsSearch; import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.usageView.UsageInfo; @@ -92,7 +96,63 @@ public class KotlinFindClassUsagesHandler extends KotlinFindUsagesHandler processor, + @NotNull final JavaClassFindUsagesOptions options + ) { + for (JetDeclaration declaration : klass.getDeclarations()) { + if (declaration instanceof JetNamedFunction && options.isMethodsUsages + || declaration instanceof JetProperty && options.isFieldsUsages) { + if (!ReferencesSearch.search(new ReferencesSearch.SearchParameters(declaration, options.searchScope, false)).forEach( + new ReadActionProcessor() { + @Override + public boolean processInReadAction(PsiReference ref) { + return processUsage(processor, ref, options); + } + } + )) return false; + } + } + return true; + } + + private static ClassInheritorsSearch.InheritanceChecker INHERITANCE_CHECKER = new ClassInheritorsSearch.InheritanceChecker() { + @Override + public boolean checkInheritance(@NotNull PsiClass subClass, @NotNull PsiClass parentClass) { + return true; + } + }; + + private static boolean processInheritors( + @NotNull PsiClass klass, + @NotNull final Processor processor, + @NotNull final KotlinClassFindUsagesOptions options + ) { + //noinspection unchecked + ClassInheritorsSearch.SearchParameters searchParameters = new ClassInheritorsSearch.SearchParameters( + klass, options.searchScope, options.isCheckDeepInheritance, true, true, Condition.TRUE, INHERITANCE_CHECKER + ); + return ClassInheritorsSearch.search(searchParameters).forEach( + new PsiElementProcessorAdapter( + new PsiElementProcessor() { + @Override + public boolean execute(@NotNull PsiClass element) { + if ((element.isInterface() && options.isDerivedInterfaces) + || (!element.isInterface() && options.isDerivedClasses)) { + return processUsage(processor, element, options); + } + return true; + } + } + ) + ); } private static DeclarationDescriptor getCallDescriptor(PsiElement element, BindingContext bindingContext) { @@ -114,27 +174,6 @@ public class KotlinFindClassUsagesHandler extends KotlinFindUsagesHandler processor, - @NotNull final JavaClassFindUsagesOptions options - ) { - for (JetDeclaration declaration : klass.getDeclarations()) { - if (declaration instanceof JetNamedFunction && options.isMethodsUsages - || declaration instanceof JetProperty && options.isFieldsUsages) { - if (!ReferencesSearch.search(new ReferencesSearch.SearchParameters(declaration, options.searchScope, false)).forEach( - new ReadActionProcessor() { - @Override - public boolean processInReadAction(PsiReference ref) { - return processUsage(processor, ref, options); - } - } - )) return false; - } - } - return true; - } - private static boolean isConstructorUsage(PsiElement element, JetClass jetClass) { PsiConstructorCall constructorCall = PsiTreeUtil.getParentOfType(element, PsiConstructorCall.class); if (constructorCall != null && constructorCall == element.getParent()) { diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.0.kt b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.0.kt new file mode 100644 index 00000000000..53a34ab9efa --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +trait X { + +} + +open class A: X { + +} + +open class C: Y { + +} + +trait Z: A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.1.java b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.1.java new file mode 100644 index 00000000000..82ec469ed7f --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.1.java @@ -0,0 +1,11 @@ +class B extends A { + +} + +interface Y extends X { + +} + +interface U extends Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.results.txt b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.results.txt new file mode 100644 index 00000000000..7968096783f --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.results.txt @@ -0,0 +1 @@ +Unclassified usage (1: 7) class B extends A { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.0.kt b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.0.kt new file mode 100644 index 00000000000..f4ae7005701 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +trait X { + +} + +open class A: X { + +} + +open class C: Y { + +} + +trait Z: A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.1.java b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.1.java new file mode 100644 index 00000000000..82ec469ed7f --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.1.java @@ -0,0 +1,11 @@ +class B extends A { + +} + +interface Y extends X { + +} + +interface U extends Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.results.txt b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.results.txt new file mode 100644 index 00000000000..f0ba20c0315 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.results.txt @@ -0,0 +1,3 @@ +Unclassified usage (11: 12) open class C: Y { +Unclassified usage (1: 7) class B extends A { +Unclassified usage (7: 12) open class A: X { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.0.kt b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.0.kt new file mode 100644 index 00000000000..01e8c7ca562 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +trait X { + +} + +open class A: X { + +} + +open class C: Y { + +} + +trait Z: A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.1.java b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.1.java new file mode 100644 index 00000000000..82ec469ed7f --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.1.java @@ -0,0 +1,11 @@ +class B extends A { + +} + +interface Y extends X { + +} + +interface U extends Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.results.txt b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.results.txt new file mode 100644 index 00000000000..3657834e238 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.results.txt @@ -0,0 +1,2 @@ +Unclassified usage (15: 7) trait Z: A { +Unclassified usage (9: 11) interface U extends Z { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.0.kt b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.0.kt new file mode 100644 index 00000000000..8b1a8e9045e --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.0.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +trait X { + +} + +open class A: X { + +} + +open class C: Y { + +} + +trait Z: A { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.1.java b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.1.java new file mode 100644 index 00000000000..82ec469ed7f --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.1.java @@ -0,0 +1,11 @@ +class B extends A { + +} + +interface Y extends X { + +} + +interface U extends Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.results.txt b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.results.txt new file mode 100644 index 00000000000..8317542a628 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.results.txt @@ -0,0 +1,3 @@ +Unclassified usage (15: 7) trait Z: A { +Unclassified usage (5: 11) interface Y extends X { +Unclassified usage (9: 11) interface U extends Z { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.0.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.0.kt new file mode 100644 index 00000000000..bb98ff4b379 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.0.kt @@ -0,0 +1,13 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +trait X { + +} + +open class A: X { + +} + +trait Y: X { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.1.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.1.kt new file mode 100644 index 00000000000..e40a5879f40 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.1.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +open class B: A() { + +} + +open class C: Y { + +} + +trait Z: A { + +} + +trait U: Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.results.txt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.results.txt new file mode 100644 index 00000000000..244b907ed4d --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.results.txt @@ -0,0 +1 @@ +Unclassified usage (3: 12) open class B: A() { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.0.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.0.kt new file mode 100644 index 00000000000..1813a7169ac --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.0.kt @@ -0,0 +1,13 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +trait X { + +} + +open class A: X { + +} + +trait Y: X { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.1.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.1.kt new file mode 100644 index 00000000000..e40a5879f40 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.1.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedClasses +open class B: A() { + +} + +open class C: Y { + +} + +trait Z: A { + +} + +trait U: Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.results.txt b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.results.txt new file mode 100644 index 00000000000..3a3c35feced --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.results.txt @@ -0,0 +1,3 @@ +Unclassified usage (3: 12) open class B: A() { +Unclassified usage (7: 12) open class A: X { +Unclassified usage (7: 12) open class C: Y { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.0.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.0.kt new file mode 100644 index 00000000000..05e37e35dbe --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.0.kt @@ -0,0 +1,13 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +trait X { + +} + +open class A: X { + +} + +trait Y: X { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.1.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.1.kt new file mode 100644 index 00000000000..bb1ff8afaf3 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.1.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +open class B: A() { + +} + +open class C: Y { + +} + +trait Z: A { + +} + +trait U: Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.results.txt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.results.txt new file mode 100644 index 00000000000..1952f112ab2 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.results.txt @@ -0,0 +1,3 @@ +Unclassified usage (11: 7) trait Y: X { +Unclassified usage (11: 7) trait Z: A { +Unclassified usage (15: 7) trait U: Z { \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt new file mode 100644 index 00000000000..4670984e11a --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt @@ -0,0 +1,13 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +trait X { + +} + +open class A: X { + +} + +trait Y: X { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.1.kt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.1.kt new file mode 100644 index 00000000000..bb1ff8afaf3 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.1.kt @@ -0,0 +1,17 @@ +// PSI_ELEMENT: org.jetbrains.jet.lang.psi.JetClass +// OPTIONS: derivedInterfaces +open class B: A() { + +} + +open class C: Y { + +} + +trait Z: A { + +} + +trait U: Z { + +} \ No newline at end of file diff --git a/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.results.txt b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.results.txt new file mode 100644 index 00000000000..ba47031e7b6 --- /dev/null +++ b/idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.results.txt @@ -0,0 +1,2 @@ +Unclassified usage (11: 7) trait Z: A { +Unclassified usage (15: 7) trait U: Z { \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java index a8c25d40ee6..68b862f7ec3 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/AbstractJetFindUsagesTest.java @@ -74,6 +74,12 @@ public abstract class AbstractJetFindUsagesTest extends LightCodeInsightFixtureT else if (s.equals("constructorUsages")) { options.searchConstructorUsages = true; } + else if (s.equals("derivedInterfaces")) { + options.isDerivedInterfaces = true; + } + else if (s.equals("derivedClasses")) { + options.isDerivedClasses = true; + } else if (s.equals("functionUsages")) { options.isMethodsUsages = true; } diff --git a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java index b2695cf53b9..497faee243a 100644 --- a/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java +++ b/idea/tests/org/jetbrains/jet/findUsages/JetFindUsagesTest.java @@ -78,6 +78,26 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findClassUsages/javaClassPropertyUsages2.0.kt"); } + @TestMetadata("javaDerivedClassUsages1.0.kt") + public void testJavaDerivedClassUsages1() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/javaDerivedClassUsages1.0.kt"); + } + + @TestMetadata("javaDerivedClassUsages2.0.kt") + public void testJavaDerivedClassUsages2() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/javaDerivedClassUsages2.0.kt"); + } + + @TestMetadata("javaDerivedInterfaceUsages1.0.kt") + public void testJavaDerivedInterfaceUsages1() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages1.0.kt"); + } + + @TestMetadata("javaDerivedInterfaceUsages2.0.kt") + public void testJavaDerivedInterfaceUsages2() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/javaDerivedInterfaceUsages2.0.kt"); + } + @TestMetadata("kotlinClassAllUsages.0.kt") public void testKotlinClassAllUsages() throws Exception { doTest("idea/testData/findUsages/findClassUsages/kotlinClassAllUsages.0.kt"); @@ -123,6 +143,26 @@ public class JetFindUsagesTest extends AbstractJetFindUsagesTest { doTest("idea/testData/findUsages/findClassUsages/kotlinClassPropertyUsages2.0.kt"); } + @TestMetadata("kotlinDerivedClassUsages1.0.kt") + public void testKotlinDerivedClassUsages1() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages1.0.kt"); + } + + @TestMetadata("kotlinDerivedClassUsages2.0.kt") + public void testKotlinDerivedClassUsages2() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinDerivedClassUsages2.0.kt"); + } + + @TestMetadata("kotlinDerivedInterfaceUsages1.0.kt") + public void testKotlinDerivedInterfaceUsages1() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages1.0.kt"); + } + + @TestMetadata("kotlinDerivedInterfaceUsages2.0.kt") + public void testKotlinDerivedInterfaceUsages2() throws Exception { + doTest("idea/testData/findUsages/findClassUsages/kotlinDerivedInterfaceUsages2.0.kt"); + } + } @TestMetadata("idea/testData/findUsages/findMethodUsages")