Delete JavaBaseScope.getPsiElement()

This commit is contained in:
Alexander Udalov
2013-07-26 18:33:47 +04:00
parent d399465bf3
commit 175a598e6d
6 changed files with 16 additions and 37 deletions
@@ -38,7 +38,6 @@ import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaNamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils;
import org.jetbrains.jet.lang.resolve.java.scope.JavaBaseScope;
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassStaticMembersScope;
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
import org.jetbrains.jet.lang.resolve.java.vfilefinder.VirtualFileFinder;
@@ -124,16 +123,11 @@ public final class JavaNamespaceResolver {
qualifiedName
);
JetScope newScope = createNamespaceScope(qualifiedName, javaNamespaceDescriptor);
JetScope newScope = createNamespaceScope(qualifiedName, javaNamespaceDescriptor, true);
if (newScope == null) {
return null;
}
if (newScope instanceof JavaBaseScope) {
trace.record(BindingContext.NAMESPACE, ((JavaBaseScope) newScope).getPsiElement(), javaNamespaceDescriptor);
}
javaNamespaceDescriptor.setMemberScope(newScope);
return javaNamespaceDescriptor;
@@ -150,11 +144,8 @@ public final class JavaNamespaceResolver {
}
@Nullable
private JetScope createNamespaceScope(
@NotNull FqName fqName,
@NotNull NamespaceDescriptor namespaceDescriptor
) {
JetScope namespaceScope = doCreateNamespaceScope(fqName, namespaceDescriptor);
private JetScope createNamespaceScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor namespaceDescriptor, boolean record) {
JetScope namespaceScope = doCreateNamespaceScope(fqName, namespaceDescriptor, record);
cache(fqName, namespaceScope);
return namespaceScope;
}
@@ -162,7 +153,8 @@ public final class JavaNamespaceResolver {
@Nullable
private JetScope doCreateNamespaceScope(
@NotNull FqName fqName,
@NotNull NamespaceDescriptor namespaceDescriptor
@NotNull NamespaceDescriptor namespaceDescriptor,
boolean record
) {
PsiPackage psiPackage = psiClassFinder.findPsiPackage(fqName);
if (psiPackage != null) {
@@ -182,6 +174,10 @@ public final class JavaNamespaceResolver {
// Otherwise (if psiClass is null or doesn't have a supported Kotlin annotation), it's a Java class and the package is empty
if (record) {
trace.record(BindingContext.NAMESPACE, psiPackage, namespaceDescriptor);
}
return new JavaPackageScope(namespaceDescriptor, psiPackage, fqName, javaDescriptorResolver, psiClassFinder);
}
@@ -195,7 +191,13 @@ public final class JavaNamespaceResolver {
if (!hasStaticMembers(psiClass)) {
return null;
}
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.CLASS_STATICS);
if (record) {
trace.record(BindingContext.NAMESPACE, psiClass, namespaceDescriptor);
}
return new JavaClassStaticMembersScope(namespaceDescriptor, fqName, psiClass, psiClassFinder, javaDescriptorResolver);
}
@@ -222,7 +224,7 @@ public final class JavaNamespaceResolver {
if (alreadyResolvedScope != null) {
return alreadyResolvedScope;
}
return createNamespaceScope(fqName, namespaceDescriptor);
return createNamespaceScope(fqName, namespaceDescriptor, false);
}
private static boolean hasStaticMembers(@NotNull PsiClass psiClass) {
@@ -21,7 +21,6 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.intellij.openapi.progress.ProgressIndicatorProvider;
import com.intellij.openapi.util.Condition;
import com.intellij.psi.PsiElement;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -159,10 +158,6 @@ public abstract class JavaBaseScope extends JetScopeImpl {
return result;
}
//TODO: remove this method
@NotNull
public abstract PsiElement getPsiElement();
@NotNull
protected Collection<ClassDescriptor> getInnerClasses() {
if (innerClasses == null) {
@@ -42,12 +42,6 @@ public abstract class JavaClassMembersScope extends JavaBaseScope {
this.psiClass = psiClass;
}
@NotNull
@Override
public PsiClass getPsiElement() {
return psiClass;
}
@NotNull
@Override
public Collection<DeclarationDescriptor> getDeclarationsByLabel(LabelName labelName) {
@@ -38,8 +38,6 @@ public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope
private ConstructorDescriptor primaryConstructor = null;
@NotNull
private final ClassDescriptor descriptor;
@NotNull
private final PsiClass psiClass;
private final boolean staticMembersOfPsiClass;
public JavaClassNonStaticMembersScope(
@@ -51,7 +49,6 @@ public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope
) {
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, staticMembersOfPsiClass), javaDescriptorResolver);
this.descriptor = descriptor;
this.psiClass = psiClass;
this.staticMembersOfPsiClass = staticMembersOfPsiClass;
}
@@ -35,8 +35,6 @@ import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.INCLUDE_K
public final class JavaClassStaticMembersScope extends JavaClassMembersScope {
@NotNull
private final FqName packageFQN;
@NotNull
private final PsiClass psiClass;
public JavaClassStaticMembersScope(
@NotNull NamespaceDescriptor descriptor,
@@ -47,7 +45,6 @@ public final class JavaClassStaticMembersScope extends JavaClassMembersScope {
) {
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, true), javaDescriptorResolver);
this.packageFQN = packageFQN;
this.psiClass = psiClass;
}
@Override
@@ -59,12 +59,6 @@ public final class JavaPackageScope extends JavaBaseScope {
this.psiClassFinder = psiClassFinder;
}
@Override
@NotNull
public PsiPackage getPsiElement() {
return psiPackage;
}
@Override
public ClassifierDescriptor getClassifier(@NotNull Name name) {
ClassDescriptor classDescriptor = javaDescriptorResolver.resolveClass(packageFQN.child(name), IGNORE_KOTLIN_SOURCES);