Use MemberComparator in DescriptorSerializer

This commit is contained in:
Pavel V. Talanov
2014-11-10 19:00:13 +03:00
parent dc134b3394
commit 77dd027d69
2 changed files with 5 additions and 15 deletions
@@ -28,6 +28,7 @@ import org.jetbrains.jet.test.util.DescriptorValidator
import org.jetbrains.jet.test.util.DescriptorValidator.ValidationVisitor
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import org.jetbrains.jet.lang.resolve.MemberComparator
class DeserializedScopeValidationVisitor : DescriptorValidator.ValidationVisitor() {
override fun validateScope(scope: JetScope, collector: DescriptorValidator.DiagnosticCollector) {
@@ -60,6 +61,6 @@ private fun checkSorted(descriptors: Collection<DeclarationDescriptor>, declarat
UsefulTestCase.assertOrderedEquals(
"Members of $declaration should be sorted by serialization.",
descriptors,
descriptors.sortBy(DescriptorSerializer.DESCRIPTOR_COMPARATOR)
descriptors.sortBy(MemberComparator.INSTANCE)
)
}
@@ -20,9 +20,9 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
import org.jetbrains.jet.lang.resolve.DescriptorFactory;
import org.jetbrains.jet.lang.resolve.MemberComparator;
import org.jetbrains.jet.lang.types.*;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.renderer.DescriptorRenderer;
import java.util.*;
@@ -30,18 +30,6 @@ import static org.jetbrains.jet.lang.resolve.DescriptorUtils.*;
public class DescriptorSerializer {
private static final DescriptorRenderer RENDERER = DescriptorRenderer.STARTS_FROM_NAME;
public static final Comparator<DeclarationDescriptor> DESCRIPTOR_COMPARATOR = new Comparator<DeclarationDescriptor>() {
@Override
public int compare(@NotNull DeclarationDescriptor o1, @NotNull DeclarationDescriptor o2) {
int names = o1.getName().compareTo(o2.getName());
if (names != 0) return names;
String o1String = RENDERER.render(o1);
String o2String = RENDERER.render(o2);
return o1String.compareTo(o2String);
}
};
private final NameTable nameTable;
private final Interner<TypeParameterDescriptor> typeParameters;
private final SerializerExtension extension;
@@ -451,7 +439,8 @@ public class DescriptorSerializer {
@NotNull
public static <T extends DeclarationDescriptor> List<T> sort(@NotNull Collection<T> descriptors) {
List<T> result = new ArrayList<T>(descriptors);
Collections.sort(result, DESCRIPTOR_COMPARATOR);
//NOTE: the exact comparator does matter here
Collections.sort(result, MemberComparator.INSTANCE);
return result;
}