From 1168cf62bfa4798b6c20d13b251922c8ab1f9147 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 25 Jul 2014 18:28:14 +0400 Subject: [PATCH] Don't list symbols from test data in "Go to symbol" #KT-4094 Fixed --- .../caches/JetGotoSymbolContributor.java | 7 ++-- .../gotoSymbol/stdLibArrayListOf.kt | 5 +++ .../gotoSymbol/stdLibArrayListOfNoSources.kt | 4 +++ .../gotoSymbol/stdLibJoinToString.kt | 36 +++++++++++++++++++ .../JetLightCodeInsightFixtureTestCase.java | 3 ++ .../navigation/AbstractKotlinGotoTest.java | 24 +++++++++---- .../navigation/KotlinGotoTestGenerated.java | 15 ++++++++ 7 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt create mode 100644 idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt create mode 100644 idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetGotoSymbolContributor.java b/idea/src/org/jetbrains/jet/plugin/caches/JetGotoSymbolContributor.java index c9340b0c800..46a267d7bbf 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetGotoSymbolContributor.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetGotoSymbolContributor.java @@ -47,11 +47,8 @@ public class JetGotoSymbolContributor implements ChooseByNameContributor { public NavigationItem[] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) { GlobalSearchScope scope = includeNonProjectItems ? GlobalSearchScope.allScope(project) : GlobalSearchScope.projectScope(project); - Collection functions = StubIndex.getInstance().get( - JetFunctionShortNameIndex.getInstance().getKey(), name, project, scope); - - Collection properties = StubIndex.getInstance().get( - JetPropertyShortNameIndex.getInstance().getKey(), name, project, scope); + Collection functions = JetFunctionShortNameIndex.getInstance().get(name, project, scope); + Collection properties = JetPropertyShortNameIndex.getInstance().get(name, project, scope); List items = new ArrayList(Collections2.filter(functions, Predicates.notNull())); items.addAll(properties); diff --git a/idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt b/idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt new file mode 100644 index 00000000000..f27a67873aa --- /dev/null +++ b/idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt @@ -0,0 +1,5 @@ +// RUNTIME_WITH_SOURCES +// CHECK_BOX +// SEARCH_TEXT: arrayListOf +// REF: (in kotlin).arrayListOf(T) +// REF: (in kotlin.KotlinPackage).arrayListOf(T...) diff --git a/idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt b/idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt new file mode 100644 index 00000000000..61e8e56e8bc --- /dev/null +++ b/idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt @@ -0,0 +1,4 @@ +// RUNTIME +// CHECK_BOX +// SEARCH_TEXT: arrayListOf +// REF: (in kotlin.KotlinPackage).arrayListOf(T...) diff --git a/idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt b/idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt new file mode 100644 index 00000000000..478fdcfa3af --- /dev/null +++ b/idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt @@ -0,0 +1,36 @@ +// RUNTIME_WITH_SOURCES +// CHECK_BOX +// SEARCH_TEXT: joinToString +// REF: (for Array in kotlin).joinToString(String,String,String,Int,String) +// REF: (for BooleanArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for ByteArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for CharArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for DoubleArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for FloatArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for IntArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for Iterable in kotlin).joinToString(String,String,String,Int,String) +// REF: (for LongArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for ShortArray in kotlin).joinToString(String,String,String,Int,String) +// REF: (for Stream in kotlin).joinToString(String,String,String,Int,String) +// REF: (in kotlin.KotlinPackage).joinToString$default(Iterable, String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(Object[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(Stream, String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(boolean[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(byte[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(char[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(double[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(float[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(int[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(long[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString$default(short[], String, String, String, int, String, int) +// REF: (in kotlin.KotlinPackage).joinToString(Iterable, String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(Stream, String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(T[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(boolean[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(byte[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(char[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(double[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(float[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(int[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(long[], String, String, String, int, String) +// REF: (in kotlin.KotlinPackage).joinToString(short[], String, String, String, int, String) diff --git a/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java b/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java index 24f363d9aa8..032829993c8 100644 --- a/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java +++ b/idea/tests/org/jetbrains/jet/plugin/JetLightCodeInsightFixtureTestCase.java @@ -84,6 +84,9 @@ public abstract class JetLightCodeInsightFixtureTestCase extends LightCodeInsigh else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME")) { return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE; } + else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME_WITH_SOURCES")) { + return ProjectDescriptorWithStdlibSources.INSTANCE; + } else if (InTextDirectivesUtils.isDirectiveDefined(fileText, "JS")) { return JetStdJSProjectDescriptor.INSTANCE; } diff --git a/idea/tests/org/jetbrains/jet/plugin/navigation/AbstractKotlinGotoTest.java b/idea/tests/org/jetbrains/jet/plugin/navigation/AbstractKotlinGotoTest.java index 9defd6cdeaa..fa69614c717 100644 --- a/idea/tests/org/jetbrains/jet/plugin/navigation/AbstractKotlinGotoTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/navigation/AbstractKotlinGotoTest.java @@ -24,9 +24,10 @@ import com.intellij.ide.util.gotoByName.GotoClassModel2; import com.intellij.ide.util.gotoByName.GotoSymbolModel2; import com.intellij.lang.Language; import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; import com.intellij.psi.PsiElement; import com.intellij.testFramework.UsefulTestCase; +import kotlin.Function1; +import kotlin.KotlinPackage; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.InTextDirectivesUtils; @@ -42,12 +43,12 @@ import java.util.List; public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureTestCase { protected void doSymbolTest(String path) { myFixture.configureByFile(path); - assertGotoSymbol(new GotoSymbolModel2(getProject()), getProject(), myFixture.getEditor()); + assertGotoSymbol(new GotoSymbolModel2(getProject()), myFixture.getEditor()); } protected void doClassTest(String path) { myFixture.configureByFile(path); - assertGotoSymbol(new GotoClassModel2(getProject()), getProject(), myFixture.getEditor()); + assertGotoSymbol(new GotoClassModel2(getProject()), myFixture.getEditor()); } private String dirPath = null; @@ -77,13 +78,22 @@ public abstract class AbstractKotlinGotoTest extends JetLightCodeInsightFixtureT return getTestName(true) + ".kt"; } - private static void assertGotoSymbol(FilteringGotoByModel model, @NotNull Project project, @NotNull Editor editor) { - List searchTextList = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// SEARCH_TEXT:"); + private static void assertGotoSymbol(@NotNull FilteringGotoByModel model, @NotNull Editor editor) { + String documentText = editor.getDocument().getText(); + List searchTextList = InTextDirectivesUtils.findListWithPrefixes(documentText, "// SEARCH_TEXT:"); Assert.assertFalse("There's no search text in test data file given. Use '// SEARCH_TEXT:' directive", searchTextList.isEmpty()); - List expectedReferences = InTextDirectivesUtils.findListWithPrefixes(editor.getDocument().getText(), "// REF:"); - boolean enableCheckbox = InTextDirectivesUtils.isDirectiveDefined(editor.getDocument().getText(), "// CHECK_BOX"); + List expectedReferences = KotlinPackage.map( + InTextDirectivesUtils.findLinesWithPrefixesRemoved(documentText, "// REF:"), + new Function1() { + @Override + public String invoke(String input) { + return input.trim(); + } + } + ); + boolean enableCheckbox = InTextDirectivesUtils.isDirectiveDefined(documentText, "// CHECK_BOX"); String searchText = searchTextList.get(0); diff --git a/idea/tests/org/jetbrains/jet/plugin/navigation/KotlinGotoTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/navigation/KotlinGotoTestGenerated.java index 1739d4906cd..4fa61c1b8fd 100644 --- a/idea/tests/org/jetbrains/jet/plugin/navigation/KotlinGotoTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/navigation/KotlinGotoTestGenerated.java @@ -101,6 +101,21 @@ public class KotlinGotoTestGenerated extends AbstractKotlinGotoTest { doSymbolTest("idea/testData/navigation/gotoSymbol/properties.kt"); } + @TestMetadata("stdLibArrayListOf.kt") + public void testStdLibArrayListOf() throws Exception { + doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibArrayListOf.kt"); + } + + @TestMetadata("stdLibArrayListOfNoSources.kt") + public void testStdLibArrayListOfNoSources() throws Exception { + doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibArrayListOfNoSources.kt"); + } + + @TestMetadata("stdLibJoinToString.kt") + public void testStdLibJoinToString() throws Exception { + doSymbolTest("idea/testData/navigation/gotoSymbol/stdLibJoinToString.kt"); + } + } public static Test suite() {