From f58ba37d4fc5b2a028191b26c6e8863f7c2bde9e Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Wed, 1 Aug 2012 16:04:38 +0400 Subject: [PATCH] Refactor AnalyzerWithCompilerReport: introduce TEXT_RANGE_COMPARATOR. --- .../messages/AnalyzerWithCompilerReport.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java b/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java index 063f66092a8..dc315a99b47 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/common/messages/AnalyzerWithCompilerReport.java @@ -45,6 +45,17 @@ import java.util.List; */ public final class AnalyzerWithCompilerReport { + @NotNull + private static final Comparator TEXT_RANGE_COMPARATOR = new Comparator() { + @Override + public int compare(TextRange o1, TextRange o2) { + if (o1.getStartOffset() != o2.getStartOffset()) { + return o1.getStartOffset() - o2.getStartOffset(); + } + return o1.getEndOffset() - o2.getEndOffset(); + } + }; + @NotNull private static CompilerMessageSeverity convertSeverity(@NotNull Severity severity) { switch (severity) { @@ -134,11 +145,10 @@ public final class AnalyzerWithCompilerReport { TextRange range1 = d1.getTextRanges().iterator().next(); TextRange range2 = d2.getTextRanges().iterator().next(); - int startOffsetDiff = range1.getStartOffset() - range2.getStartOffset(); - if (startOffsetDiff != 0) return startOffsetDiff; - int endOffsetDiff = range1.getEndOffset() - range2.getEndOffset(); - if (endOffsetDiff != 0) return endOffsetDiff; + if (!range1.equals(range2)) { + return TEXT_RANGE_COMPARATOR.compare(range1, range2); + } return d1.getFactory().getName().compareTo(d2.getFactory().getName()); }