Delete JavaBaseScope.getPsiElement()
This commit is contained in:
+16
-14
@@ -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.descriptor.JavaNamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
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.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.JavaClassStaticMembersScope;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
||||||
import org.jetbrains.jet.lang.resolve.java.vfilefinder.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.java.vfilefinder.VirtualFileFinder;
|
||||||
@@ -124,16 +123,11 @@ public final class JavaNamespaceResolver {
|
|||||||
qualifiedName
|
qualifiedName
|
||||||
);
|
);
|
||||||
|
|
||||||
JetScope newScope = createNamespaceScope(qualifiedName, javaNamespaceDescriptor);
|
JetScope newScope = createNamespaceScope(qualifiedName, javaNamespaceDescriptor, true);
|
||||||
if (newScope == null) {
|
if (newScope == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newScope instanceof JavaBaseScope) {
|
|
||||||
trace.record(BindingContext.NAMESPACE, ((JavaBaseScope) newScope).getPsiElement(), javaNamespaceDescriptor);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
javaNamespaceDescriptor.setMemberScope(newScope);
|
javaNamespaceDescriptor.setMemberScope(newScope);
|
||||||
|
|
||||||
return javaNamespaceDescriptor;
|
return javaNamespaceDescriptor;
|
||||||
@@ -150,11 +144,8 @@ public final class JavaNamespaceResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private JetScope createNamespaceScope(
|
private JetScope createNamespaceScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor namespaceDescriptor, boolean record) {
|
||||||
@NotNull FqName fqName,
|
JetScope namespaceScope = doCreateNamespaceScope(fqName, namespaceDescriptor, record);
|
||||||
@NotNull NamespaceDescriptor namespaceDescriptor
|
|
||||||
) {
|
|
||||||
JetScope namespaceScope = doCreateNamespaceScope(fqName, namespaceDescriptor);
|
|
||||||
cache(fqName, namespaceScope);
|
cache(fqName, namespaceScope);
|
||||||
return namespaceScope;
|
return namespaceScope;
|
||||||
}
|
}
|
||||||
@@ -162,7 +153,8 @@ public final class JavaNamespaceResolver {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private JetScope doCreateNamespaceScope(
|
private JetScope doCreateNamespaceScope(
|
||||||
@NotNull FqName fqName,
|
@NotNull FqName fqName,
|
||||||
@NotNull NamespaceDescriptor namespaceDescriptor
|
@NotNull NamespaceDescriptor namespaceDescriptor,
|
||||||
|
boolean record
|
||||||
) {
|
) {
|
||||||
PsiPackage psiPackage = psiClassFinder.findPsiPackage(fqName);
|
PsiPackage psiPackage = psiClassFinder.findPsiPackage(fqName);
|
||||||
if (psiPackage != null) {
|
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
|
// 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);
|
return new JavaPackageScope(namespaceDescriptor, psiPackage, fqName, javaDescriptorResolver, psiClassFinder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,7 +191,13 @@ public final class JavaNamespaceResolver {
|
|||||||
if (!hasStaticMembers(psiClass)) {
|
if (!hasStaticMembers(psiClass)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.CLASS_STATICS);
|
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);
|
return new JavaClassStaticMembersScope(namespaceDescriptor, fqName, psiClass, psiClassFinder, javaDescriptorResolver);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +224,7 @@ public final class JavaNamespaceResolver {
|
|||||||
if (alreadyResolvedScope != null) {
|
if (alreadyResolvedScope != null) {
|
||||||
return alreadyResolvedScope;
|
return alreadyResolvedScope;
|
||||||
}
|
}
|
||||||
return createNamespaceScope(fqName, namespaceDescriptor);
|
return createNamespaceScope(fqName, namespaceDescriptor, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean hasStaticMembers(@NotNull PsiClass psiClass) {
|
private static boolean hasStaticMembers(@NotNull PsiClass psiClass) {
|
||||||
|
|||||||
-5
@@ -21,7 +21,6 @@ import com.google.common.collect.Maps;
|
|||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import com.intellij.openapi.progress.ProgressIndicatorProvider;
|
import com.intellij.openapi.progress.ProgressIndicatorProvider;
|
||||||
import com.intellij.openapi.util.Condition;
|
import com.intellij.openapi.util.Condition;
|
||||||
import com.intellij.psi.PsiElement;
|
|
||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -159,10 +158,6 @@ public abstract class JavaBaseScope extends JetScopeImpl {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: remove this method
|
|
||||||
@NotNull
|
|
||||||
public abstract PsiElement getPsiElement();
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
protected Collection<ClassDescriptor> getInnerClasses() {
|
protected Collection<ClassDescriptor> getInnerClasses() {
|
||||||
if (innerClasses == null) {
|
if (innerClasses == null) {
|
||||||
|
|||||||
-6
@@ -42,12 +42,6 @@ public abstract class JavaClassMembersScope extends JavaBaseScope {
|
|||||||
this.psiClass = psiClass;
|
this.psiClass = psiClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public PsiClass getPsiElement() {
|
|
||||||
return psiClass;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Collection<DeclarationDescriptor> getDeclarationsByLabel(LabelName labelName) {
|
public Collection<DeclarationDescriptor> getDeclarationsByLabel(LabelName labelName) {
|
||||||
|
|||||||
-3
@@ -38,8 +38,6 @@ public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope
|
|||||||
private ConstructorDescriptor primaryConstructor = null;
|
private ConstructorDescriptor primaryConstructor = null;
|
||||||
@NotNull
|
@NotNull
|
||||||
private final ClassDescriptor descriptor;
|
private final ClassDescriptor descriptor;
|
||||||
@NotNull
|
|
||||||
private final PsiClass psiClass;
|
|
||||||
private final boolean staticMembersOfPsiClass;
|
private final boolean staticMembersOfPsiClass;
|
||||||
|
|
||||||
public JavaClassNonStaticMembersScope(
|
public JavaClassNonStaticMembersScope(
|
||||||
@@ -51,7 +49,6 @@ public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope
|
|||||||
) {
|
) {
|
||||||
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, staticMembersOfPsiClass), javaDescriptorResolver);
|
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, staticMembersOfPsiClass), javaDescriptorResolver);
|
||||||
this.descriptor = descriptor;
|
this.descriptor = descriptor;
|
||||||
this.psiClass = psiClass;
|
|
||||||
this.staticMembersOfPsiClass = staticMembersOfPsiClass;
|
this.staticMembersOfPsiClass = staticMembersOfPsiClass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
-3
@@ -35,8 +35,6 @@ import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.INCLUDE_K
|
|||||||
public final class JavaClassStaticMembersScope extends JavaClassMembersScope {
|
public final class JavaClassStaticMembersScope extends JavaClassMembersScope {
|
||||||
@NotNull
|
@NotNull
|
||||||
private final FqName packageFQN;
|
private final FqName packageFQN;
|
||||||
@NotNull
|
|
||||||
private final PsiClass psiClass;
|
|
||||||
|
|
||||||
public JavaClassStaticMembersScope(
|
public JavaClassStaticMembersScope(
|
||||||
@NotNull NamespaceDescriptor descriptor,
|
@NotNull NamespaceDescriptor descriptor,
|
||||||
@@ -47,7 +45,6 @@ public final class JavaClassStaticMembersScope extends JavaClassMembersScope {
|
|||||||
) {
|
) {
|
||||||
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, true), javaDescriptorResolver);
|
super(descriptor, psiClass, MembersProvider.forClass(psiClassFinder, psiClass, true), javaDescriptorResolver);
|
||||||
this.packageFQN = packageFQN;
|
this.packageFQN = packageFQN;
|
||||||
this.psiClass = psiClass;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
-6
@@ -59,12 +59,6 @@ public final class JavaPackageScope extends JavaBaseScope {
|
|||||||
this.psiClassFinder = psiClassFinder;
|
this.psiClassFinder = psiClassFinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@NotNull
|
|
||||||
public PsiPackage getPsiElement() {
|
|
||||||
return psiPackage;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ClassifierDescriptor getClassifier(@NotNull Name name) {
|
public ClassifierDescriptor getClassifier(@NotNull Name name) {
|
||||||
ClassDescriptor classDescriptor = javaDescriptorResolver.resolveClass(packageFQN.child(name), IGNORE_KOTLIN_SOURCES);
|
ClassDescriptor classDescriptor = javaDescriptorResolver.resolveClass(packageFQN.child(name), IGNORE_KOTLIN_SOURCES);
|
||||||
|
|||||||
Reference in New Issue
Block a user