fix incorrect overload error in different namespaces with same suffix

===
namespace a {
    fun f() = 1
}

namespace b {
    namespace a {
        fun f() = 1
    }
}
===
This commit is contained in:
Stepan Koltsov
2011-11-12 16:04:56 +04:00
parent f18510652e
commit 594ab01b1f
2 changed files with 8 additions and 1 deletions
@@ -8,6 +8,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.diagnostics.Errors;
import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.resolve.DescriptorRenderer;
import java.util.Collection;
import java.util.Collections;
@@ -61,7 +62,7 @@ public class OverloadResolver {
DeclarationDescriptor containingDeclaration = function.getContainingDeclaration();
if (containingDeclaration instanceof NamespaceDescriptor) {
NamespaceDescriptor namespaceDescriptor = (NamespaceDescriptor) containingDeclaration;
functionsByName.putValue(new Key(namespaceDescriptor.getName(), function.getName()), function);
functionsByName.putValue(new Key(DescriptorRenderer.getFQName(namespaceDescriptor), function.getName()), function);
}
}
@@ -40,3 +40,9 @@ namespace ns2 {
fun e() = 1
}
namespace ns3 {
namespace ns1 {
fun e() = 1
}
}