Chain scope for merging in lazy package descriptor

This commit is contained in:
Nikolay Krasko
2012-08-08 15:22:27 +04:00
parent 8d6b16eb23
commit 0faea1ed0b
7 changed files with 56 additions and 16 deletions
@@ -15,15 +15,12 @@
*/
package org.jetbrains.jet.lang.resolve.lazy;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestSuite;
import java.io.File;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.test.TestMetadata;
import org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest;
import java.io.File;
/** This class is generated by {@link org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest}. DO NOT MODIFY MANUALLY */
public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyResolveNamespaceComparingTest {
@@ -1272,7 +1269,9 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
@TestMetadata("compiler/testData/lazyResolve/namespaceComparator")
public static class NamespaceComparator extends AbstractLazyResolveNamespaceComparingTest {
public void testAllFilesPresentInNamespaceComparator() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest", new File("compiler/testData/lazyResolve/namespaceComparator"), "kt", false);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(),
"org.jetbrains.jet.lang.resolve.lazy.AbstractLazyResolveNamespaceComparingTest",
new File("compiler/testData/lazyResolve/namespaceComparator"), "kt", false);
}
@TestMetadata("enum.kt")
@@ -1295,6 +1294,11 @@ public class LazyResolveNamespaceComparingTestGenerated extends AbstractLazyReso
doTestSinglePackage("compiler/testData/lazyResolve/namespaceComparator/innerObject.kt");
}
@TestMetadata("objectMembers.kt")
public void testObjectMembers() throws Exception {
doTestSinglePackage("compiler/testData/lazyResolve/namespaceComparator/objectMembers.kt");
}
@TestMetadata("OverrideWithErrors.kt")
public void testOverrideWithErrors() throws Exception {
doTestSinglePackage("compiler/testData/lazyResolve/namespaceComparator/OverrideWithErrors.kt");
@@ -20,6 +20,7 @@ import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.codegen.PropertyCodegen;
@@ -125,9 +126,10 @@ public class NamespaceComparator {
//deferred.assertTrue("namespace " + nsa.getName() + " is empty", !nsa.getMemberScope().getAllDescriptors().isEmpty());
Set<Name> classifierNames = new HashSet<Name>();
Set<Name> propertyNames = new HashSet<Name>();
Set<Name> functionNames = new HashSet<Name>();
Set<Name> classifierNames = Sets.newHashSet();
Set<Name> propertyNames = Sets.newHashSet();
Set<Name> functionNames = Sets.newHashSet();
Set<Name> objectNames = Sets.newHashSet();
for (DeclarationDescriptor ad : nsa.getMemberScope().getAllDescriptors()) {
if (ad instanceof ClassifierDescriptor) {
@@ -162,6 +164,10 @@ public class NamespaceComparator {
}
}
for (ClassDescriptor objectDescriptor : nsa.getMemberScope().getObjectDescriptors()) {
objectNames.add(objectDescriptor.getName());
}
for (Name name : sorted(classifierNames)) {
ClassifierDescriptor ca = nsa.getMemberScope().getClassifier(name);
ClassifierDescriptor cb = nsb.getMemberScope().getClassifier(name);
@@ -170,6 +176,14 @@ public class NamespaceComparator {
compareClassifiers(ca, cb, sb);
}
for (Name name : sorted(objectNames)) {
ClassifierDescriptor ca = nsa.getMemberScope().getObjectDescriptor(name);
ClassifierDescriptor cb = nsb.getMemberScope().getObjectDescriptor(name);
deferred.assertTrue("Object not found in " + nsa + ": " + name, ca != null);
deferred.assertTrue("Object not found in " + nsb + ": " + name, cb != null);
compareClassifiers(ca, cb, sb);
}
for (Name name : sorted(propertyNames)) {
Collection<VariableDescriptor> pa = nsa.getMemberScope().getProperties(name);
Collection<VariableDescriptor> pb = nsb.getMemberScope().getProperties(name);
@@ -729,6 +743,12 @@ public class NamespaceComparator {
memberStrings.add(memberSb.toString());
}
//for (DeclarationDescriptor object : memberScope.getObjectDescriptors()) {
// StringBuilder objectSb = new StringBuilder();
// new FullContentSerialier(objectSb).serialize(object);
// memberStrings.add(objectSb.toString());
//}
Collections.sort(memberStrings, new MemberComparator());
for (String memberString : memberStrings) {