diff --git a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt index 273a097d64d..9a9fdcd4073 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ElementResolver.kt @@ -55,7 +55,8 @@ public abstract class ElementResolver protected( public open fun hasElementAdditionalResolveCached(jetElement: JetElement): Boolean = false - protected open fun probablyNothingCallableNames(): ProbablyNothingCallableNames = DefaultNothingCallableNames + protected open fun probablyNothingCallableNames(): ProbablyNothingCallableNames + = throw UnsupportedOperationException("Cannot use partial body resolve with no Nothing-functions index"); public fun resolveToElement(jetElement: JetElement, bodyResolveMode: BodyResolveMode = BodyResolveMode.FULL): BindingContext { var jetElement = jetElement diff --git a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt index fe492d08225..e00bd451044 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/resolve/lazy/ProbablyNothingCallableNames.kt @@ -17,13 +17,6 @@ package org.jetbrains.kotlin.resolve.lazy public trait ProbablyNothingCallableNames { - public fun functionNames(): Set - public fun propertyNames(): Set -} - -public object DefaultNothingCallableNames : ProbablyNothingCallableNames { - private val hardcodedNames = setOf("error") - - override fun functionNames() = hardcodedNames - override fun propertyNames(): Set = setOf() + public fun functionNames(): Collection + public fun propertyNames(): Collection } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.java index 55f89e51c15..d2a880dbdc4 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/ResolveElementCache.java @@ -30,13 +30,14 @@ import org.jetbrains.kotlin.psi.JetElement; import org.jetbrains.kotlin.psi.JetFile; import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider; import org.jetbrains.kotlin.resolve.BindingContext; -import org.jetbrains.kotlin.resolve.lazy.*; +import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode; +import org.jetbrains.kotlin.resolve.lazy.ElementResolver; +import org.jetbrains.kotlin.resolve.lazy.ProbablyNothingCallableNames; +import org.jetbrains.kotlin.resolve.lazy.ResolveSession; import org.jetbrains.kotlin.storage.LazyResolveStorageManager; import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull; import java.util.Collection; -import java.util.HashSet; -import java.util.Set; public class ResolveElementCache extends ElementResolver { private final Project project; @@ -94,20 +95,15 @@ public class ResolveElementCache extends ElementResolver { return new ProbablyNothingCallableNames() { @NotNull @Override - public Set functionNames() { + public Collection functionNames() { // we have to add hardcoded-names until we have Kotlin compiled classes in caches - Set hardcodedNames = DefaultNothingCallableNames.INSTANCE$.functionNames(); - Collection indexedNames = JetProbablyNothingFunctionShortNameIndex.getInstance().getAllKeys(project); - Set set = new HashSet(hardcodedNames.size() + indexedNames.size()); - set.addAll(hardcodedNames); - set.addAll(indexedNames); - return set; + return JetProbablyNothingFunctionShortNameIndex.getInstance().getAllKeys(project); } @NotNull @Override - public Set propertyNames() { - return new HashSet(JetProbablyNothingPropertyShortNameIndex.getInstance().getAllKeys(project)); + public Collection propertyNames() { + return JetProbablyNothingPropertyShortNameIndex.getInstance().getAllKeys(project); } }; }