From f28a8a60c13b50ca89d90a615ca9f992292b010b Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Tue, 22 Sep 2015 15:35:38 +0300 Subject: [PATCH] AllClassesCompletion: drop usage of KotlinBuiltIns.getInstance() --- .../kotlin/idea/completion/AllClassesCompletion.kt | 8 +++++--- .../jetbrains/kotlin/idea/completion/CompletionSession.kt | 2 +- .../idea/completion/ParameterNameAndTypeCompletion.kt | 7 ++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt index 59b532348af..b416f49e1d2 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/AllClassesCompletion.kt @@ -21,11 +21,11 @@ import com.intellij.codeInsight.completion.CompletionParameters import com.intellij.codeInsight.completion.PrefixMatcher import com.intellij.psi.PsiClass import org.jetbrains.kotlin.asJava.KotlinLightClass -import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.idea.core.KotlinIndicesHelper import org.jetbrains.kotlin.idea.project.ProjectStructureUtil +import org.jetbrains.kotlin.idea.resolve.ResolutionFacade import org.jetbrains.kotlin.psi.JetFile import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter import org.jetbrains.kotlin.resolve.scopes.JetScope @@ -34,17 +34,19 @@ import org.jetbrains.kotlin.resolve.scopes.getDescriptorsFiltered class AllClassesCompletion(private val parameters: CompletionParameters, private val kotlinIndicesHelper: KotlinIndicesHelper, private val prefixMatcher: PrefixMatcher, + private val resolutionFacade: ResolutionFacade, private val kindFilter: (ClassKind) -> Boolean ) { fun collect(classDescriptorCollector: (ClassDescriptor) -> Unit, javaClassCollector: (PsiClass) -> Unit) { + //TODO: this is a temporary hack until we have built-ins in indices - collectClassesFromScope(classDescriptorCollector, KotlinBuiltIns.getInstance().builtInsPackageScope) + collectClassesFromScope(classDescriptorCollector, resolutionFacade.moduleDescriptor.builtIns.builtInsPackageScope) kotlinIndicesHelper .getKotlinClasses({ prefixMatcher.prefixMatches(it) }, kindFilter) .forEach { classDescriptorCollector(it) } - if (!ProjectStructureUtil.isJsKotlinModule(parameters.getOriginalFile() as JetFile)) { + if (!ProjectStructureUtil.isJsKotlinModule(parameters.originalFile as JetFile)) { addAdaptedJavaCompletion(javaClassCollector) } } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt index 61f32b6e398..c4bb8f17fe0 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/CompletionSession.kt @@ -340,7 +340,7 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC } protected fun addAllClasses(kindFilter: (ClassKind) -> Boolean) { - AllClassesCompletion(parameters, indicesHelper, prefixMatcher, kindFilter) + AllClassesCompletion(parameters, indicesHelper, prefixMatcher, resolutionFacade, kindFilter) .collect( { descriptor -> collector.addDescriptorElements(descriptor, notImported = true) }, { javaClass -> collector.addElement(lookupElementFactory.createLookupElementForJavaClass(javaClass), notImported = true) } diff --git a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ParameterNameAndTypeCompletion.kt b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ParameterNameAndTypeCompletion.kt index 8d5df79c7f6..f0fe5ca0bf7 100644 --- a/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ParameterNameAndTypeCompletion.kt +++ b/idea/idea-completion/src/org/jetbrains/kotlin/idea/completion/ParameterNameAndTypeCompletion.kt @@ -90,9 +90,10 @@ class ParameterNameAndTypeCompletion( public fun addFromAllClasses(parameters: CompletionParameters, indicesHelper: KotlinIndicesHelper) { for ((i, prefixMatcher) in nameSuggestionPrefixMatchers.withIndex()) { - AllClassesCompletion(parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), { !it.isSingleton() }) - .collect( - { addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher, notImported = true) }, + AllClassesCompletion( + parameters, indicesHelper, prefixMatcher.toClassifierNamePrefixMatcher(), resolutionFacade, { !it.isSingleton() } + ).collect( + { addSuggestionsForClassifier(it, userPrefixes[i], prefixMatcher, notImported = true) }, { addSuggestionsForJavaClass(it, userPrefixes[i], prefixMatcher, notImported = true) } )