diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java index 8f6ef5153c7..7f0ff49e756 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java @@ -355,13 +355,26 @@ public class JetShortNamesCache extends PsiShortNamesCache { for (String fqName : JetFullClassNameIndex.getInstance().getAllKeys(project)) { FqName classFQName = new FqName(fqName); if (acceptedShortNameCondition.value(classFQName.shortName().getName())) { - classDescriptors.addAll(ResolveSessionUtils.getClassDescriptorsByFqName(analyzer, classFQName)); + classDescriptors.addAll(getJetClassesDescriptorsByFQName(analyzer, classFQName)); } } return classDescriptors; } + private Collection getJetClassesDescriptorsByFQName(@NotNull KotlinCodeAnalyzer analyzer, @NotNull FqName classFQName) { + Collection jetClassOrObjects = JetFullClassNameIndex.getInstance().get( + classFQName.getFqName(), project, GlobalSearchScope.allScope(project)); + + if (jetClassOrObjects.isEmpty()) { + // This fqn is absent in caches, dead or not in scope + return Collections.emptyList(); + } + + // Note: Can't search with psi element as analyzer could be built over temp files + return ResolveSessionUtils.getClassDescriptorsByFqName(analyzer, classFQName); + } + @NotNull @Override public PsiMethod[] getMethodsByName(@NonNls @NotNull String name, @NotNull GlobalSearchScope scope) {