Minor refactorings in JavaNamespaceResolver
This commit is contained in:
+17
-15
@@ -74,7 +74,7 @@ public final class JavaNamespaceResolver {
|
|||||||
return searchRule.processFoundInKotlin(kotlinNamespaceDescriptor);
|
return searchRule.processFoundInKotlin(kotlinNamespaceDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
ResolverNamespaceData namespaceData = namespaceDescriptorCacheByFqn.get(qualifiedName);
|
ResolverNamespaceData namespaceData = lookUpCache(qualifiedName);
|
||||||
if (namespaceData != null) {
|
if (namespaceData != null) {
|
||||||
return namespaceData.getNamespaceDescriptor();
|
return namespaceData.getNamespaceDescriptor();
|
||||||
}
|
}
|
||||||
@@ -102,13 +102,17 @@ public final class JavaNamespaceResolver {
|
|||||||
return scopeData.getNamespaceDescriptor();
|
return scopeData.getNamespaceDescriptor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private ResolverNamespaceData lookUpCache(FqName qualifiedName) {
|
||||||
|
return namespaceDescriptorCacheByFqn.get(qualifiedName);
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public NamespaceDescriptor resolveNamespace(@NotNull FqName qualifiedName) {
|
public NamespaceDescriptor resolveNamespace(@NotNull FqName qualifiedName) {
|
||||||
return resolveNamespace(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
|
return resolveNamespace(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private NamespaceDescriptorParent resolveParentNamespace(FqName fqName) {
|
private NamespaceDescriptorParent resolveParentNamespace(@NotNull FqName fqName) {
|
||||||
if (fqName.isRoot()) {
|
if (fqName.isRoot()) {
|
||||||
return FAKE_ROOT_MODULE;
|
return FAKE_ROOT_MODULE;
|
||||||
}
|
}
|
||||||
@@ -140,31 +144,29 @@ public final class JavaNamespaceResolver {
|
|||||||
break lookingForPsi;
|
break lookingForPsi;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResolverNamespaceData oldValue =
|
cache(fqName, ResolverNamespaceData.NEGATIVE);
|
||||||
namespaceDescriptorCacheByFqn.put(fqName, ResolverNamespaceData.NEGATIVE);
|
|
||||||
if (oldValue != null) {
|
|
||||||
throw new IllegalStateException("rewrite at " + fqName);
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ResolverNamespaceData namespaceData =
|
ResolverNamespaceData namespaceData = new ResolverNamespaceData(psiClass, psiPackage, fqName, ns);
|
||||||
new ResolverNamespaceData(psiClass, psiPackage, fqName, ns);
|
|
||||||
|
|
||||||
namespaceData.setMemberScope(new JavaPackageScope(fqName, javaSemanticServices, namespaceData));
|
namespaceData.setMemberScope(new JavaPackageScope(fqName, javaSemanticServices, namespaceData));
|
||||||
|
|
||||||
ResolverNamespaceData oldValue =
|
cache(fqName, namespaceData);
|
||||||
namespaceDescriptorCacheByFqn.put(fqName, namespaceData);
|
|
||||||
if (oldValue != null) {
|
|
||||||
throw new IllegalStateException("rewrite at " + fqName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return namespaceData;
|
return namespaceData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void cache(@NotNull FqName fqName, @NotNull ResolverNamespaceData namespaceData) {
|
||||||
|
ResolverNamespaceData oldValue = namespaceDescriptorCacheByFqn.put(fqName, namespaceData);
|
||||||
|
if (oldValue != null) {
|
||||||
|
throw new IllegalStateException("rewrite at " + fqName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public JavaPackageScope getJavaPackageScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor ns) {
|
public JavaPackageScope getJavaPackageScope(@NotNull FqName fqName, @NotNull NamespaceDescriptor ns) {
|
||||||
ResolverNamespaceData resolverNamespaceData = namespaceDescriptorCacheByFqn.get(fqName);
|
ResolverNamespaceData resolverNamespaceData = lookUpCache(fqName);
|
||||||
if (resolverNamespaceData == null) {
|
if (resolverNamespaceData == null) {
|
||||||
resolverNamespaceData = createNamespaceResolverScopeData(fqName, ns);
|
resolverNamespaceData = createNamespaceResolverScopeData(fqName, ns);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user