Use List.sort instead of Collections.sort

This commit is contained in:
Alexander Udalov
2017-04-01 02:02:11 +03:00
parent a9f35ae898
commit 37f435da93
11 changed files with 23 additions and 35 deletions
@@ -24,7 +24,6 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor;
import org.jetbrains.org.objectweb.asm.Type; import org.jetbrains.org.objectweb.asm.Type;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
@@ -115,7 +114,7 @@ public class FrameMap {
descriptors.add(Trinity.create(descriptor, varIndex, varSize)); descriptors.add(Trinity.create(descriptor, varIndex, varSize));
} }
Collections.sort(descriptors, Comparator.comparingInt(left -> left.second)); descriptors.sort(Comparator.comparingInt(left -> left.second));
sb.append("size=").append(myMaxIndex); sb.append("size=").append(myMaxIndex);
@@ -210,19 +210,12 @@ public class CodegenBinding {
} }
List<KtFile> sortedAnswer = new ArrayList<KtFile>(answer); List<KtFile> sortedAnswer = new ArrayList<KtFile>(answer);
Collections.sort(sortedAnswer, new Comparator<KtFile>() {
@NotNull
private String path(KtFile file) {
VirtualFile virtualFile = file.getVirtualFile();
assert virtualFile != null : "VirtualFile is null for JetFile: " + file.getName();
return virtualFile.getPath();
}
@Override sortedAnswer.sort(Comparator.comparing((KtFile file) -> {
public int compare(@NotNull KtFile first, @NotNull KtFile second) { VirtualFile virtualFile = file.getVirtualFile();
return path(first).compareTo(path(second)); assert virtualFile != null : "VirtualFile is null for JetFile: " + file.getName();
} return virtualFile.getPath();
}); }));
return sortedAnswer; return sortedAnswer;
} }
@@ -20,7 +20,10 @@ import com.google.common.collect.LinkedHashMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.util.*; import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class GroupingMessageCollector implements MessageCollector { public class GroupingMessageCollector implements MessageCollector {
@@ -81,7 +84,7 @@ public class GroupingMessageCollector implements MessageCollector {
private Collection<String> sortedKeys() { private Collection<String> sortedKeys() {
List<String> sortedKeys = new ArrayList<String>(groupedMessages.keySet()); List<String> sortedKeys = new ArrayList<String>(groupedMessages.keySet());
// ensure that messages with no location i.e. perf, incomplete hierarchy are always reported first // ensure that messages with no location i.e. perf, incomplete hierarchy are always reported first
Collections.sort(sortedKeys, (o1, o2) -> { sortedKeys.sort((o1, o2) -> {
if (o1 == o2) return 0; if (o1 == o2) return 0;
if (o1 == null) return -1; if (o1 == null) return -1;
if (o2 == null) return 1; if (o2 == null) return 1;
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.diagnostics.rendering.*;
import org.jetbrains.kotlin.resolve.MemberComparator; import org.jetbrains.kotlin.resolve.MemberComparator;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension { public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension {
@@ -36,7 +35,7 @@ public class DefaultErrorMessagesJvm implements DefaultErrorMessages.Extension {
renderedDescriptors.add(descriptor); renderedDescriptors.add(descriptor);
} }
} }
Collections.sort(renderedDescriptors, MemberComparator.INSTANCE); renderedDescriptors.sort(MemberComparator.INSTANCE);
RenderingContext.Impl renderingContext = new RenderingContext.Impl(renderedDescriptors); RenderingContext.Impl renderingContext = new RenderingContext.Impl(renderedDescriptors);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.descriptors.impl.ValueParameterDescriptorImpl;
import org.jetbrains.kotlin.incremental.components.NoLookupLocation; import org.jetbrains.kotlin.incremental.components.NoLookupLocation;
import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor; import org.jetbrains.kotlin.load.java.descriptors.JavaMethodDescriptor;
import org.jetbrains.kotlin.load.java.structure.JavaMethod; import org.jetbrains.kotlin.load.java.structure.JavaMethod;
import org.jetbrains.kotlin.name.FqNameUnsafe;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.resolve.DescriptorUtils; import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt; import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
@@ -215,11 +214,8 @@ public class SignaturesPropagationData {
} }
// sorting for diagnostic stability // sorting for diagnostic stability
Collections.sort(superFunctions, (fun1, fun2) -> { superFunctions.sort(Comparator.comparing(fun -> getFqName(fun.getContainingDeclaration()).asString()));
FqNameUnsafe fqName1 = getFqName(fun1.getContainingDeclaration());
FqNameUnsafe fqName2 = getFqName(fun2.getContainingDeclaration());
return fqName1.asString().compareTo(fqName2.asString());
});
return superFunctions; return superFunctions;
} }
@@ -604,7 +604,7 @@ public class CheckerTestUtil {
diagnosticDescriptors.add( diagnosticDescriptors.add(
new DiagnosticDescriptor(range.getStartOffset(), range.getEndOffset(), diagnosticsGroupedByRanges.get(range))); new DiagnosticDescriptor(range.getStartOffset(), range.getEndOffset(), diagnosticsGroupedByRanges.get(range)));
} }
Collections.sort(diagnosticDescriptors, (d1, d2) -> { diagnosticDescriptors.sort((d1, d2) -> {
// Start early -- go first; start at the same offset, the one who end later is the outer, i.e. goes first // Start early -- go first; start at the same offset, the one who end later is the outer, i.e. goes first
return (d1.start != d2.start) ? d1.start - d2.start : d2.end - d1.end; return (d1.start != d2.start) ? d1.start - d2.start : d2.end - d1.end;
}); });
@@ -160,7 +160,8 @@ public class DiagnosticUtils {
@NotNull @NotNull
public static List<Diagnostic> sortedDiagnostics(@NotNull Collection<Diagnostic> diagnostics) { public static List<Diagnostic> sortedDiagnostics(@NotNull Collection<Diagnostic> diagnostics) {
Comparator<Diagnostic> diagnosticComparator = (d1, d2) -> { List<Diagnostic> result = Lists.newArrayList(diagnostics);
result.sort((d1, d2) -> {
String path1 = d1.getPsiFile().getViewProvider().getVirtualFile().getPath(); String path1 = d1.getPsiFile().getViewProvider().getVirtualFile().getPath();
String path2 = d2.getPsiFile().getViewProvider().getVirtualFile().getPath(); String path2 = d2.getPsiFile().getViewProvider().getVirtualFile().getPath();
if (!path1.equals(path2)) return path1.compareTo(path2); if (!path1.equals(path2)) return path1.compareTo(path2);
@@ -173,9 +174,7 @@ public class DiagnosticUtils {
} }
return d1.getFactory().getName().compareTo(d2.getFactory().getName()); return d1.getFactory().getName().compareTo(d2.getFactory().getName());
}; });
List<Diagnostic> result = Lists.newArrayList(diagnostics);
Collections.sort(result, diagnosticComparator);
return result; return result;
} }
@@ -123,7 +123,7 @@ public class ConstraintsUtil {
interestingMethods.add(method); interestingMethods.add(method);
} }
} }
Collections.sort(interestingMethods, Comparator.comparing(Method::getName)); interestingMethods.sort(Comparator.comparing(Method::getName));
for (Iterator<Method> iterator = interestingMethods.iterator(); iterator.hasNext(); ) { for (Iterator<Method> iterator = interestingMethods.iterator(); iterator.hasNext(); ) {
Method method = iterator.next(); Method method = iterator.next();
try { try {
@@ -222,7 +222,7 @@ public class RecursiveDescriptorComparator {
subDescriptors.addAll(DescriptorUtils.getAllDescriptors(memberScope)); subDescriptors.addAll(DescriptorUtils.getAllDescriptors(memberScope));
subDescriptors.addAll(extraSubDescriptors); subDescriptors.addAll(extraSubDescriptors);
Collections.sort(subDescriptors, MemberComparator.INSTANCE); subDescriptors.sort(MemberComparator.INSTANCE);
for (DeclarationDescriptor subDescriptor : subDescriptors) { for (DeclarationDescriptor subDescriptor : subDescriptors) {
if (!shouldSkip(subDescriptor)) { if (!shouldSkip(subDescriptor)) {
@@ -31,7 +31,6 @@ import org.jetbrains.kotlin.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.KotlinTestWithEnvironment; import org.jetbrains.kotlin.test.KotlinTestWithEnvironment;
import java.io.File; import java.io.File;
import java.util.Collections;
import java.util.List; import java.util.List;
public class CheckerTestUtilTest extends KotlinTestWithEnvironment { public class CheckerTestUtilTest extends KotlinTestWithEnvironment {
@@ -155,7 +154,7 @@ public class CheckerTestUtilTest extends KotlinTestWithEnvironment {
List<ActualDiagnostic> actualDiagnostics = List<ActualDiagnostic> actualDiagnostics =
CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile, false, null, null); CheckerTestUtil.getDiagnosticsIncludingSyntaxErrors(bindingContext, psiFile, false, null, null);
Collections.sort(actualDiagnostics, CheckerTestUtil.DIAGNOSTIC_COMPARATOR); actualDiagnostics.sort(CheckerTestUtil.DIAGNOSTIC_COMPARATOR);
makeTestData(actualDiagnostics, diagnosedRanges); makeTestData(actualDiagnostics, diagnosedRanges);
@@ -96,7 +96,7 @@ public class SimpleTestClassModel implements TestClassModel {
} }
} }
} }
Collections.sort(children, BY_NAME); children.sort(BY_NAME);
innerTestClasses = children; innerTestClasses = children;
} }
return innerTestClasses; return innerTestClasses;
@@ -161,7 +161,7 @@ public class SimpleTestClassModel implements TestClassModel {
} }
} }
} }
Collections.sort(result, BY_NAME); result.sort(BY_NAME);
testMethods = result; testMethods = result;
} }