diff --git a/platform/util/base/src/com/intellij/openapi/util/Segment.java b/platform/util/base/src/com/intellij/openapi/util/Segment.java index f1c7e7d031a9..82a4bad18ef3 100644 --- a/platform/util/base/src/com/intellij/openapi/util/Segment.java +++ b/platform/util/base/src/com/intellij/openapi/util/Segment.java @@ -14,6 +14,10 @@ public interface Segment { @Contract(pure = true) int getEndOffset(); - Comparator BY_START_OFFSET_THEN_END_OFFSET = - Comparator.comparingInt(Segment::getStartOffset).thenComparingInt(Segment::getEndOffset); + @SuppressWarnings("ComparatorCombinators") + Comparator BY_START_OFFSET_THEN_END_OFFSET = (r1, r2) -> { + int result = r1.getStartOffset() - r2.getStartOffset(); + if (result == 0) result = r1.getEndOffset() - r2.getEndOffset(); + return result; + }; }