Move sortDiagnostics to DiagnosticUtils and convert to sortedDiagnostics.

This commit is contained in:
Pavel V. Talanov
2012-08-01 16:22:54 +04:00
parent d45145b3a7
commit 1bf2ded875
2 changed files with 31 additions and 31 deletions
@@ -16,8 +16,6 @@
package org.jetbrains.jet.cli.common.messages;
import com.google.common.collect.Lists;
import com.intellij.openapi.util.TextRange;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
@@ -36,9 +34,8 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import static org.jetbrains.jet.lang.diagnostics.DiagnosticUtils.sortedDiagnostics;
/**
* @author Pavel Talanov
@@ -116,35 +113,12 @@ public final class AnalyzerWithCompilerReport {
public static boolean reportDiagnostics(@NotNull BindingContext bindingContext, @NotNull MessageCollector messageCollector) {
boolean hasErrors = false;
List<Diagnostic> diagnostics = Lists.newArrayList(bindingContext.getDiagnostics());
sortDiagnostics(diagnostics);
for (Diagnostic diagnostic : diagnostics) {
for (Diagnostic diagnostic : sortedDiagnostics(bindingContext.getDiagnostics())) {
hasErrors |= reportDiagnostic(diagnostic, messageCollector);
}
return hasErrors;
}
private static void sortDiagnostics(@NotNull List<Diagnostic> diagnostics) {
Comparator<Diagnostic> diagnosticComparator = new Comparator<Diagnostic>() {
@Override
public int compare(Diagnostic d1, Diagnostic d2) {
String path1 = d1.getPsiFile().getViewProvider().getVirtualFile().getPath();
String path2 = d2.getPsiFile().getViewProvider().getVirtualFile().getPath();
if (!path1.equals(path2)) return path1.compareTo(path2);
TextRange range1 = DiagnosticUtils.firstRange(d1.getTextRanges());
TextRange range2 = DiagnosticUtils.firstRange(d2.getTextRanges());
if (!range1.equals(range2)) {
return DiagnosticUtils.TEXT_RANGE_COMPARATOR.compare(range1, range2);
}
return d1.getFactory().getName().compareTo(d2.getFactory().getName());
}
};
Collections.sort(diagnostics, diagnosticComparator);
}
private void reportSyntaxErrors(@NotNull Collection<JetFile> files) {
for (JetFile file : files) {
reportSyntaxErrors(file, messageCollectorWrapper);