Namespace aliases fixed
This commit is contained in:
@@ -256,6 +256,9 @@ public class TypeHierarchyResolver {
|
||||
}
|
||||
|
||||
String aliasName = importDirective.getAliasName();
|
||||
if (aliasName == null) {
|
||||
aliasName = referenceExpression != null ? referenceExpression.getReferencedName() : null;
|
||||
}
|
||||
if (classifierDescriptor != null) {
|
||||
context.getTrace().record(BindingContext.REFERENCE_TARGET, referenceExpression, classifierDescriptor);
|
||||
|
||||
|
||||
@@ -27,9 +27,13 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
||||
|
||||
@Nullable
|
||||
private SetMultimap<String, FunctionDescriptor> functionGroups;
|
||||
|
||||
@Nullable
|
||||
private Map<String, DeclarationDescriptor> variableClassOrNamespaceDescriptors;
|
||||
|
||||
@Nullable
|
||||
private Map<String, NamespaceDescriptor> namespaceAliases;
|
||||
|
||||
@Nullable
|
||||
private Map<String, List<DeclarationDescriptor>> labelsToDescriptors;
|
||||
|
||||
@@ -129,6 +133,14 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
||||
return variableClassOrNamespaceDescriptors;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private Map<String, NamespaceDescriptor> getNamespaceAliases() {
|
||||
if (namespaceAliases == null) {
|
||||
namespaceAliases = Maps.newHashMap();
|
||||
}
|
||||
return namespaceAliases;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addVariableDescriptor(@NotNull VariableDescriptor variableDescriptor) {
|
||||
Map<String, DeclarationDescriptor> variableClassOrNamespaceDescriptors = getVariableClassOrNamespaceDescriptors();
|
||||
@@ -203,7 +215,7 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
||||
@Override
|
||||
public void addNamespaceAlias(@NotNull String name, @NotNull NamespaceDescriptor namespaceDescriptor) {
|
||||
checkForRedeclaration(name, namespaceDescriptor);
|
||||
getVariableClassOrNamespaceDescriptors().put(name, namespaceDescriptor);
|
||||
getNamespaceAliases().put(name, namespaceDescriptor);
|
||||
allDescriptors.add(namespaceDescriptor);
|
||||
}
|
||||
|
||||
@@ -258,6 +270,9 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
||||
NamespaceDescriptor declaredNamespace = getDeclaredNamespace(name);
|
||||
if (declaredNamespace != null) return declaredNamespace;
|
||||
|
||||
NamespaceDescriptor aliased = getNamespaceAliases().get(name);
|
||||
if (aliased != null) return aliased;
|
||||
|
||||
NamespaceDescriptor namespace = getWorkerScope().getNamespace(name);
|
||||
if (namespace != null) return namespace;
|
||||
return super.getNamespace(name);
|
||||
|
||||
@@ -55,10 +55,10 @@ namespace null_safety {
|
||||
|
||||
val command = parse("")
|
||||
|
||||
command<error>.</error>foo
|
||||
command.foo
|
||||
|
||||
command.equals(null)
|
||||
command<warning>?.</warning>equals(null)
|
||||
command?.equals(null)
|
||||
command.equals1(null)
|
||||
command<warning>?.</warning>equals1(null)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user