JetClassOrObject implements JetNamedDeclaration

This commit is contained in:
Andrey Breslav
2012-12-18 21:20:42 +04:00
parent 91a1a1420d
commit 66aef9a64f
3 changed files with 19 additions and 22 deletions
@@ -23,7 +23,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.List; import java.util.List;
public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclarationContainer, JetElement, JetModifierListOwner, JetDeclaration { public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclarationContainer, JetElement, JetModifierListOwner, JetNamedDeclaration {
@Nullable @Nullable
JetDelegationSpecifierList getDelegationSpecifierList(); JetDelegationSpecifierList getDelegationSpecifierList();
@@ -36,6 +36,7 @@ public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclaration
// Objects always "have" a primary constructor // Objects always "have" a primary constructor
boolean hasPrimaryConstructor(); boolean hasPrimaryConstructor();
@Override
@Nullable @Nullable
Name getNameAsName(); Name getNameAsName();
@@ -75,8 +75,7 @@ public class JetGotoClassContributor implements GotoClassContributor {
Collection<JetClassOrObject> classesOrObjects = JetShortClassNameIndex.getInstance().get(name, project, scope); Collection<JetClassOrObject> classesOrObjects = JetShortClassNameIndex.getInstance().get(name, project, scope);
for (JetClassOrObject classOrObject : classesOrObjects) { for (JetClassOrObject classOrObject : classesOrObjects) {
if (classOrObject instanceof JetNamedDeclaration) { FqName fqName = JetPsiUtil.getFQName(classOrObject);
FqName fqName = JetPsiUtil.getFQName((JetNamedDeclaration) classOrObject);
if (fqName == null || javaQualifiedNames.contains(fqName.toString())) { if (fqName == null || javaQualifiedNames.contains(fqName.toString())) {
continue; continue;
} }
@@ -91,7 +90,6 @@ public class JetGotoClassContributor implements GotoClassContributor {
assert false; assert false;
} }
} }
}
return ArrayUtil.toObjectArray(items, NavigationItem.class); return ArrayUtil.toObjectArray(items, NavigationItem.class);
} }
@@ -86,8 +86,7 @@ public class JetShortNamesCache extends PsiShortNamesCache {
List<PsiClass> result = new ArrayList<PsiClass>(); List<PsiClass> result = new ArrayList<PsiClass>();
for (JetClassOrObject classOrObject : classOrObjects) { for (JetClassOrObject classOrObject : classOrObjects) {
if (classOrObject instanceof JetNamedDeclaration) { FqName fqName = JetPsiUtil.getFQName(classOrObject);
FqName fqName = JetPsiUtil.getFQName((JetNamedDeclaration) classOrObject);
if (fqName != null && fqName.shortName().getName().equals(name)) { if (fqName != null && fqName.shortName().getName().equals(name)) {
PsiClass psiClass = JavaElementFinder.getInstance(project).findClass(fqName.getFqName(), scope); PsiClass psiClass = JavaElementFinder.getInstance(project).findClass(fqName.getFqName(), scope);
if (psiClass != null) { if (psiClass != null) {
@@ -95,7 +94,6 @@ public class JetShortNamesCache extends PsiShortNamesCache {
} }
} }
} }
}
return result.toArray(new PsiClass[result.size()]); return result.toArray(new PsiClass[result.size()]);
} }