Unnecessary creation of the default namespace eliminated

This commit is contained in:
Andrey Breslav
2012-03-12 16:21:27 +04:00
parent c6fae0c18f
commit 68698cb34a
2 changed files with 5 additions and 9 deletions
@@ -175,9 +175,6 @@ public class TopDownAnalyzer {
@Override @Override
public NamespaceDescriptorImpl getNamespace(String name) { public NamespaceDescriptorImpl getNamespace(String name) {
if (name == "") {
return (NamespaceDescriptorImpl) trace.get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, "");
}
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@@ -84,9 +84,6 @@ public class TypeHierarchyResolver {
public void process(@NotNull JetScope outerScope, @NotNull NamespaceLike owner, @NotNull Collection<? extends PsiElement> declarations) { public void process(@NotNull JetScope outerScope, @NotNull NamespaceLike owner, @NotNull Collection<? extends PsiElement> declarations) {
// Create the default package
createNamespaceDescriptorIfNeeded(null, owner, "");
collectNamespacesAndClassifiers(outerScope, outerScope, owner, declarations); // namespaceScopes, classes collectNamespacesAndClassifiers(outerScope, outerScope, owner, declarations); // namespaceScopes, classes
importsResolver.processTypeImports(); importsResolver.processTypeImports();
@@ -231,9 +228,11 @@ public class TypeHierarchyResolver {
} }
private NamespaceDescriptorImpl createNamespaceDescriptorPathIfNeeded(JetFile file, NamespaceLike owner, JetScope outerScope) { private NamespaceDescriptorImpl createNamespaceDescriptorPathIfNeeded(JetFile file, NamespaceLike owner, JetScope outerScope) {
JetNamespaceHeader namespaceHeader = file.getNamespaceHeader();
NamespaceLike currentOwner = owner; NamespaceLike currentOwner = owner;
for (JetSimpleNameExpression nameExpression : file.getNamespaceHeader().getParentNamespaceNames()) { for (JetSimpleNameExpression nameExpression : namespaceHeader.getParentNamespaceNames()) {
String namespaceName = JetPsiUtil.safeName(nameExpression.getReferencedName()); String namespaceName = JetPsiUtil.safeName(nameExpression.getReferencedName());
NamespaceDescriptorImpl namespaceDescriptor = createNamespaceDescriptorIfNeeded(null, currentOwner, namespaceName); NamespaceDescriptorImpl namespaceDescriptor = createNamespaceDescriptorIfNeeded(null, currentOwner, namespaceName);
@@ -246,8 +245,8 @@ public class TypeHierarchyResolver {
outerScope = namespaceDescriptor.getMemberScope(); outerScope = namespaceDescriptor.getMemberScope();
} }
String name = JetPsiUtil.safeName(file.getNamespaceHeader().getName()); String name = JetPsiUtil.safeName(namespaceHeader.getName());
context.getTrace().record(RESOLUTION_SCOPE, file.getNamespaceHeader(), outerScope); context.getTrace().record(RESOLUTION_SCOPE, namespaceHeader, outerScope);
return createNamespaceDescriptorIfNeeded(file, currentOwner, name); return createNamespaceDescriptorIfNeeded(file, currentOwner, name);
} }