diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java index 1f4098a18b07..7ef02206a714 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/CustomMethodHandlers.java @@ -245,7 +245,7 @@ class CustomMethodHandlers { if (arguments.length != 1) return null; LongRangeSet range = state.getValueFact(arguments[0], DfaFactType.RANGE); if (range == null || range.isEmpty()) return null; - return factory.getFactValue(DfaFactType.RANGE, LongRangeSet.range(0, range.max())); + return factory.getFactValue(DfaFactType.RANGE, LongRangeSet.range(0, Math.max(0, range.max()))); } private static Object getConstantValue(DfaMemoryState memoryState, DfaValue value) { diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java b/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java index 1d820460dd21..ac4f40bcf440 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/LongRangeKnownMethods.java @@ -319,5 +319,6 @@ public class LongRangeKnownMethods { long skipped = is.skip(amount); if (skipped > Integer.MAX_VALUE) {} if (skipped < 0) {} + if (is.skip(-1) == 0) {} } }