Use MemberComparator in DescriptorSerializer
This commit is contained in:
@@ -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)
|
||||
)
|
||||
}
|
||||
|
||||
+3
-14
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user