diff --git a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java index 14793efa617..e713769fb5b 100644 --- a/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java +++ b/idea/src/org/jetbrains/jet/plugin/caches/JetShortNamesCache.java @@ -86,18 +86,20 @@ public class JetShortNamesCache extends PsiShortNamesCache { @Override public PsiClass[] getClassesByName(@NotNull @NonNls String name, @NotNull GlobalSearchScope scope) { // Quick check for classes from getAllClassNames() - Collection classNames = JetShortClassNameIndex.getInstance().getAllKeys(project); - if (!classNames.contains(name)) { + Collection classOrObjects = JetShortClassNameIndex.getInstance().get(name, project, scope); + if (classOrObjects.isEmpty()) { return new PsiClass[0]; } List result = new ArrayList(); - - for (String fqName : JetFullClassNameIndex.getInstance().getAllKeys(project)) { - if ((new FqName(fqName)).shortName().getName().equals(name)) { - PsiClass psiClass = javaElementFinder.findClass(fqName, scope); - if (psiClass != null) { - result.add(psiClass); + for (JetClassOrObject classOrObject : classOrObjects) { + if (classOrObject instanceof JetNamedDeclaration) { + FqName fqName = JetPsiUtil.getFQName((JetNamedDeclaration) classOrObject); + if (fqName != null && fqName.shortName().getName().equals(name)) { + PsiClass psiClass = javaElementFinder.findClass(fqName.getFqName(), scope); + if (psiClass != null) { + result.add(psiClass); + } } } }