From 2daeaa38d9becd8ed9e5753c3238959547aa1797 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Fri, 28 Nov 2014 20:41:13 +0300 Subject: [PATCH] 2 more indices not needed anymore --- ...velNonExtensionFunctionShortNameIndex.java | 50 ------------------ ...velNonExtensionPropertyShortNameIndex.java | 51 ------------------- .../stubindex/StubIndexServiceImpl.java | 12 ----- idea/src/META-INF/plugin.xml | 2 - .../jet/plugin/caches/KotlinIndicesHelper.kt | 16 ++++-- 5 files changed, 11 insertions(+), 120 deletions(-) delete mode 100644 idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionFunctionShortNameIndex.java delete mode 100644 idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionPropertyShortNameIndex.java diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionFunctionShortNameIndex.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionFunctionShortNameIndex.java deleted file mode 100644 index 6a12d99f7c6..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionFunctionShortNameIndex.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2010-2013 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.stubindex; - -import com.intellij.openapi.project.Project; -import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.stubs.StringStubIndexExtension; -import com.intellij.psi.stubs.StubIndexKey; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.psi.JetNamedFunction; - -import java.util.Collection; - -public class JetTopLevelNonExtensionFunctionShortNameIndex extends StringStubIndexExtension { - private static final StubIndexKey KEY = KotlinIndexUtil.createIndexKey(JetTopLevelNonExtensionFunctionShortNameIndex.class); - - private static final JetTopLevelNonExtensionFunctionShortNameIndex ourInstance = new JetTopLevelNonExtensionFunctionShortNameIndex(); - - @NotNull - public static JetTopLevelNonExtensionFunctionShortNameIndex getInstance() { - return ourInstance; - } - - private JetTopLevelNonExtensionFunctionShortNameIndex() {} - - @NotNull - @Override - public StubIndexKey getKey() { - return KEY; - } - - @Override - public Collection get(String s, Project project, @NotNull GlobalSearchScope scope) { - return super.get(s, project, JetSourceFilterScope.kotlinSourcesAndLibraries(scope, project)); - } -} diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionPropertyShortNameIndex.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionPropertyShortNameIndex.java deleted file mode 100644 index cc4785e5357..00000000000 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetTopLevelNonExtensionPropertyShortNameIndex.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010-2014 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.jetbrains.jet.plugin.stubindex; - -import com.intellij.openapi.project.Project; -import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.stubs.StringStubIndexExtension; -import com.intellij.psi.stubs.StubIndexKey; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.psi.JetProperty; - -import java.util.Collection; - -public class JetTopLevelNonExtensionPropertyShortNameIndex extends StringStubIndexExtension { - private static final StubIndexKey KEY = KotlinIndexUtil.createIndexKey(JetTopLevelNonExtensionPropertyShortNameIndex.class); - - private static final JetTopLevelNonExtensionPropertyShortNameIndex ourInstance = new JetTopLevelNonExtensionPropertyShortNameIndex(); - - @NotNull - public static JetTopLevelNonExtensionPropertyShortNameIndex getInstance() { - return ourInstance; - } - - private JetTopLevelNonExtensionPropertyShortNameIndex() {} - - @NotNull - @Override - public StubIndexKey getKey() { - return KEY; - } - - @NotNull - @Override - public Collection get(String s, Project project, @NotNull GlobalSearchScope scope) { - return super.get(s, project, JetSourceFilterScope.kotlinSourcesAndLibraries(scope, project)); - } -} diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/StubIndexServiceImpl.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/StubIndexServiceImpl.java index 3b2ba380953..44ad38f866f 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/StubIndexServiceImpl.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/StubIndexServiceImpl.java @@ -96,11 +96,6 @@ public class StubIndexServiceImpl implements StubIndexService { public void indexFunction(KotlinFunctionStub stub, IndexSink sink) { String name = stub.getName(); if (name != null) { - if (stub.isTopLevel()) { - if (!stub.isExtension()) { - sink.occurrence(JetTopLevelNonExtensionFunctionShortNameIndex.getInstance().getKey(), name); - } - } sink.occurrence(JetFunctionShortNameIndex.getInstance().getKey(), name); if (stub.isProbablyNothingType()) { @@ -122,13 +117,6 @@ public class StubIndexServiceImpl implements StubIndexService { public void indexProperty(KotlinPropertyStub stub, IndexSink sink) { String name = stub.getName(); if (name != null) { - if (stub.isTopLevel()) { - // Collection only top level functions as only they are expected in completion without explicit import - if (!stub.hasReceiverTypeRef()) { - sink.occurrence(JetTopLevelNonExtensionPropertyShortNameIndex.getInstance().getKey(), name); - } - } - sink.occurrence(JetPropertyShortNameIndex.getInstance().getKey(), name); if (stub.isProbablyNothingType()) { diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 8c055e43372..388bc265dbb 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -399,8 +399,6 @@ - - diff --git a/idea/src/org/jetbrains/jet/plugin/caches/KotlinIndicesHelper.kt b/idea/src/org/jetbrains/jet/plugin/caches/KotlinIndicesHelper.kt index b4cc016d0d5..bbaa66b97af 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/KotlinIndicesHelper.kt +++ b/idea/src/org/jetbrains/jet/plugin/caches/KotlinIndicesHelper.kt @@ -58,15 +58,21 @@ public class KotlinIndicesHelper( } } - JetTopLevelNonExtensionFunctionShortNameIndex.getInstance().get(name, project, scope) - .mapTo(result) { resolutionFacade.resolveToDescriptor(it) as CallableDescriptor } - - JetTopLevelNonExtensionPropertyShortNameIndex.getInstance().get(name, project, scope) - .mapTo(result) { resolutionFacade.resolveToDescriptor(it) as CallableDescriptor } + result.addTopLevelNonExtensionCallablesByName(JetFunctionShortNameIndex.getInstance(), name) + result.addTopLevelNonExtensionCallablesByName(JetPropertyShortNameIndex.getInstance(), name) return result.filter(visibilityFilter) } + private fun MutableSet.addTopLevelNonExtensionCallablesByName( + index: StringStubIndexExtension, + name: String + ) { + index.get(name, project, scope) + .filter { it.getParent() is JetFile && it.getReceiverTypeReference() == null } + .mapTo(this) { resolutionFacade.resolveToDescriptor(it) as CallableDescriptor } + } + public fun getTopLevelCallables(nameFilter: (String) -> Boolean, context: JetExpression /*TODO: to be dropped*/): Collection { val sourceNames = JetTopLevelFunctionFqnNameIndex.getInstance().getAllKeys(project).stream() + JetTopLevelPropertyFqnNameIndex.getInstance().getAllKeys(project).stream() val allFqNames = sourceNames.map { FqName(it) } + JetFromJavaDescriptorHelper.getTopLevelCallableFqNames(project, scope, false).stream()