Move namespaceDescriptorCache field to NamespaceResolver from JavaDescriptorResolver
This commit is contained in:
-9
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java;
|
package org.jetbrains.jet.lang.resolve.java;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiAnnotation;
|
import com.intellij.psi.PsiAnnotation;
|
||||||
import com.intellij.psi.PsiAnnotationMemberValue;
|
import com.intellij.psi.PsiAnnotationMemberValue;
|
||||||
@@ -30,7 +29,6 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
|
|||||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverClassData;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverClassData;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverNamespaceData;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverScopeData;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolveData.ResolverScopeData;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScope;
|
||||||
@@ -43,7 +41,6 @@ import org.jetbrains.jet.lang.types.JetType;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -74,8 +71,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
protected final Map<FqName, ResolverNamespaceData> namespaceDescriptorCacheByFqn = Maps.newHashMap();
|
|
||||||
|
|
||||||
protected Project project;
|
protected Project project;
|
||||||
protected JavaSemanticServices semanticServices;
|
protected JavaSemanticServices semanticServices;
|
||||||
private BindingTrace trace;
|
private BindingTrace trace;
|
||||||
@@ -150,10 +145,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
return constructorResolver.resolveConstructors(classData);
|
return constructorResolver.resolveConstructors(classData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<FqName, ResolverNamespaceData> getNamespaceDescriptorCacheByFqn() {
|
|
||||||
return namespaceDescriptorCacheByFqn;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public NamespaceDescriptor resolveNamespace(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
|
public NamespaceDescriptor resolveNamespace(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
|
||||||
return namespaceResolver.resolveNamespace(qualifiedName, searchRule);
|
return namespaceResolver.resolveNamespace(qualifiedName, searchRule);
|
||||||
|
|||||||
+8
-6
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.resolve.java.resolver;
|
package org.jetbrains.jet.lang.resolve.java.resolver;
|
||||||
|
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
import com.intellij.psi.PsiClass;
|
import com.intellij.psi.PsiClass;
|
||||||
import com.intellij.psi.PsiPackage;
|
import com.intellij.psi.PsiPackage;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -31,9 +32,12 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public final class NamespaceResolver {
|
public final class NamespaceResolver {
|
||||||
|
|
||||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||||
|
private final Map<FqName, JavaDescriptorResolveData.ResolverNamespaceData> namespaceDescriptorCacheByFqn = Maps.newHashMap();
|
||||||
|
|
||||||
public NamespaceResolver(JavaDescriptorResolver javaDescriptorResolver) {
|
public NamespaceResolver(JavaDescriptorResolver javaDescriptorResolver) {
|
||||||
this.javaDescriptorResolver = javaDescriptorResolver;
|
this.javaDescriptorResolver = javaDescriptorResolver;
|
||||||
@@ -60,8 +64,7 @@ public final class NamespaceResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
JavaDescriptorResolveData.ResolverNamespaceData namespaceData =
|
JavaDescriptorResolveData.ResolverNamespaceData namespaceData = namespaceDescriptorCacheByFqn.get(qualifiedName);
|
||||||
javaDescriptorResolver.getNamespaceDescriptorCacheByFqn().get(qualifiedName);
|
|
||||||
if (namespaceData != null) {
|
if (namespaceData != null) {
|
||||||
return namespaceData.getNamespaceDescriptor();
|
return namespaceData.getNamespaceDescriptor();
|
||||||
}
|
}
|
||||||
@@ -126,7 +129,7 @@ public final class NamespaceResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JavaDescriptorResolveData.ResolverNamespaceData oldValue =
|
JavaDescriptorResolveData.ResolverNamespaceData oldValue =
|
||||||
javaDescriptorResolver.getNamespaceDescriptorCacheByFqn().put(fqName, JavaDescriptorResolveData.ResolverNamespaceData.NEGATIVE);
|
namespaceDescriptorCacheByFqn.put(fqName, JavaDescriptorResolveData.ResolverNamespaceData.NEGATIVE);
|
||||||
if (oldValue != null) {
|
if (oldValue != null) {
|
||||||
throw new IllegalStateException("rewrite at " + fqName);
|
throw new IllegalStateException("rewrite at " + fqName);
|
||||||
}
|
}
|
||||||
@@ -139,7 +142,7 @@ public final class NamespaceResolver {
|
|||||||
namespaceData.setMemberScope(new JavaPackageScope(fqName, javaDescriptorResolver.getSemanticServices(), namespaceData));
|
namespaceData.setMemberScope(new JavaPackageScope(fqName, javaDescriptorResolver.getSemanticServices(), namespaceData));
|
||||||
|
|
||||||
JavaDescriptorResolveData.ResolverNamespaceData oldValue =
|
JavaDescriptorResolveData.ResolverNamespaceData oldValue =
|
||||||
javaDescriptorResolver.getNamespaceDescriptorCacheByFqn().put(fqName, namespaceData);
|
namespaceDescriptorCacheByFqn.put(fqName, namespaceData);
|
||||||
if (oldValue != null) {
|
if (oldValue != null) {
|
||||||
throw new IllegalStateException("rewrite at " + fqName);
|
throw new IllegalStateException("rewrite at " + fqName);
|
||||||
}
|
}
|
||||||
@@ -149,8 +152,7 @@ public final class NamespaceResolver {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public JavaPackageScope getJavaPackageScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor ns) {
|
public JavaPackageScope getJavaPackageScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor ns) {
|
||||||
JavaDescriptorResolveData.ResolverNamespaceData resolverNamespaceData =
|
JavaDescriptorResolveData.ResolverNamespaceData resolverNamespaceData = namespaceDescriptorCacheByFqn.get(fqName);
|
||||||
javaDescriptorResolver.getNamespaceDescriptorCacheByFqn().get(fqName);
|
|
||||||
if (resolverNamespaceData == null) {
|
if (resolverNamespaceData == null) {
|
||||||
resolverNamespaceData = createNamespaceResolverScopeData(fqName, ns);
|
resolverNamespaceData = createNamespaceResolverScopeData(fqName, ns);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user