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;
public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclarationContainer, JetElement, JetModifierListOwner, JetDeclaration {
public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclarationContainer, JetElement, JetModifierListOwner, JetNamedDeclaration {
@Nullable
JetDelegationSpecifierList getDelegationSpecifierList();
@@ -36,6 +36,7 @@ public interface JetClassOrObject extends PsiNameIdentifierOwner, JetDeclaration
// Objects always "have" a primary constructor
boolean hasPrimaryConstructor();
@Override
@Nullable
Name getNameAsName();
@@ -75,21 +75,19 @@ public class JetGotoClassContributor implements GotoClassContributor {
Collection<JetClassOrObject> classesOrObjects = JetShortClassNameIndex.getInstance().get(name, project, scope);
for (JetClassOrObject classOrObject : classesOrObjects) {
if (classOrObject instanceof JetNamedDeclaration) {
FqName fqName = JetPsiUtil.getFQName((JetNamedDeclaration) classOrObject);
if (fqName == null || javaQualifiedNames.contains(fqName.toString())) {
continue;
}
FqName fqName = JetPsiUtil.getFQName(classOrObject);
if (fqName == null || javaQualifiedNames.contains(fqName.toString())) {
continue;
}
if (classOrObject instanceof JetObjectDeclaration) {
// items.add((JetObjectDeclaration) classOrObject);
}
else if (classOrObject instanceof JetClass) {
items.add(classOrObject);
}
else {
assert false;
}
if (classOrObject instanceof JetObjectDeclaration) {
// items.add((JetObjectDeclaration) classOrObject);
}
else if (classOrObject instanceof JetClass) {
items.add(classOrObject);
}
else {
assert false;
}
}
@@ -86,13 +86,11 @@ public class JetShortNamesCache extends PsiShortNamesCache {
List<PsiClass> result = new ArrayList<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.getInstance(project).findClass(fqName.getFqName(), scope);
if (psiClass != null) {
result.add(psiClass);
}
FqName fqName = JetPsiUtil.getFQName(classOrObject);
if (fqName != null && fqName.shortName().getName().equals(name)) {
PsiClass psiClass = JavaElementFinder.getInstance(project).findClass(fqName.getFqName(), scope);
if (psiClass != null) {
result.add(psiClass);
}
}
}