better root ns

* ModuleDescrpiptor now lives in context
* ns parent is module descriptor iff ns is root ns
* minor test enhancements
This commit is contained in:
Stepan Koltsov
2012-03-14 19:43:22 +04:00
parent 671b0ff7ee
commit 5af4661c18
24 changed files with 204 additions and 60 deletions
@@ -33,6 +33,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.JavaNamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
@@ -413,23 +414,12 @@ class NamespaceComparator {
sb.append(s);
}
public void serialize(ModuleDescriptor module) {
// nop
}
public void serialize(ClassDescriptor clazz) {
new NamespacePrefixSerializer(sb).serialize(clazz.getContainingDeclaration());
sb.append(clazz.getName());
sb.append(DescriptorUtils.getFQName(clazz));
}
public void serialize(NamespaceDescriptor ns) {
if (isRootNs(ns)) {
return;
}
if (ns.getContainingDeclaration() != null) {
new NamespacePrefixSerializer(sb).serialize(ns.getContainingDeclaration());
}
sb.append(ns.getName());
sb.append(DescriptorUtils.getFQName(ns));
}
public void serialize(TypeParameterDescriptor param) {
@@ -588,8 +588,8 @@ public class JetTypeCheckerTest extends JetLiteFixture {
WritableScopeImpl writableScope = new WritableScopeImpl(scope, scope.getContainingDeclaration(), RedeclarationHandler.DO_NOTHING);
writableScope.importScope(library.getLibraryScope());
JavaSemanticServices javaSemanticServices = new JavaSemanticServices(getProject(), JetTestUtils.DUMMY_TRACE);
writableScope.importScope(new JavaPackageScope(FqName.ROOT, JavaBridgeConfiguration.createNamespaceDescriptor(JavaDescriptorResolver.JAVA_ROOT, FqName.ROOT), javaSemanticServices));
writableScope.importScope(new JavaPackageScope(new FqName("java.lang"), JavaBridgeConfiguration.createNamespaceDescriptor("lang", new FqName("java.lang")), javaSemanticServices));
writableScope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace(FqName.ROOT).getMemberScope());
writableScope.importScope(javaSemanticServices.getDescriptorResolver().resolveNamespace(new FqName("java.lang")).getMemberScope());
writableScope.changeLockLevel(WritableScope.LockLevel.BOTH);
return writableScope;
}