[Retrace] Throw InvalidMinifiedRangeStackTrace for invalid ranges

Bug: b/272032896
Change-Id: Iabf025efbf4243707d62658f5c8cd48e3a4cc7f2
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
index 47bcc73..7af0129 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
@@ -807,6 +807,9 @@
     expect(':');
     skipWhitespace();
     int to = parseNumber();
+    if (from > to) {
+      throw new ParseException("From is larger than to in range: " + from + ":" + to);
+    }
     return nonCardinalRangeCache.get(from, to);
   }
 
diff --git a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
index 2a11144..d06cbe6 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
@@ -463,15 +463,17 @@
   @Test
   public void testInvalidMinifiedRangeStackTrace() {
     assumeFalse(external);
-    // TODO(b/272032896): Should be InvalidMappingFileException
-    assertThrows(AssertionError.class, () -> runRetraceTest(new InvalidMinifiedRangeStackTrace()));
+    assertThrows(
+        InvalidMappingFileException.class,
+        () -> runRetraceTest(new InvalidMinifiedRangeStackTrace()));
   }
 
   @Test
   public void testInvalidOriginalRangeStackTrace() {
     assumeFalse(external);
-    // TODO(b/272032896): Should be InvalidMappingFileException
-    assertThrows(AssertionError.class, () -> runRetraceTest(new InvalidOriginalRangeStackTrace()));
+    assertThrows(
+        InvalidMappingFileException.class,
+        () -> runRetraceTest(new InvalidOriginalRangeStackTrace()));
   }
 
   private void inspectRetraceTest(