[Retrace] Group inline frames by minified name and line only

Bug: 202426891
Change-Id: I34491d012aee1e05150ffecce0770ce052231dda
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
index 60a6967..8cc522d 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceMethodResultImpl.java
@@ -111,16 +111,7 @@
                         .rewritePosition(stackTraceContext.getRewritePosition())));
           }
         }
-        // Mapped ranges can have references to overloaded signatures. We distinguish those by
-        // looking at the cardinal mapping range.
-        for (MappedRange mappedRangeForPosition : mappedRangesForPosition) {
-          if (narrowedRanges.isEmpty()
-              || mappedRangeForPosition.originalRange == null
-              || !mappedRangeForPosition.originalRange.isCardinal) {
-            narrowedRanges.add(new Pair<>(mappedRange.getFirst(), new ArrayList<>()));
-          }
-          ListUtils.last(narrowedRanges).getSecond().add(mappedRangeForPosition);
-        }
+        narrowedRanges.add(new Pair<>(mappedRange.getFirst(), mappedRangesForPosition));
       }
     }
     return new RetraceFrameResultImpl(
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/IdentityMappingStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/IdentityMappingStackTrace.java
index 8c9ce7c..40992ae 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/IdentityMappingStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/IdentityMappingStackTrace.java
@@ -32,47 +32,24 @@
 
   @Override
   public List<String> retracedStackTrace() {
-    // TODO(b/202426891): Should not be ambiguous.
     return Arrays.asList(
         "java.lang.IndexOutOfBoundsException",
         "\tat com.android.tools.r8.One.foo(One.java:10)",
         "\tat com.android.tools.r8.Other.bar(Other.java:11)",
-        "\tat com.android.tools.r8.Third.quux(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.foo(One.java:10)",
-        "\tat com.android.tools.r8.Other.bar(Other.java:11)",
+        "\tat com.android.tools.r8.Other.baz(Other.java:11)",
         "\tat com.android.tools.r8.Third.qux(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.foo(One.java:10)",
-        "\tat com.android.tools.r8.Other.baz(Other.java:11)",
-        "\tat com.android.tools.r8.Third.quux(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.foo(One.java:10)",
-        "\tat com.android.tools.r8.Other.baz(Other.java:11)",
-        "\tat com.android.tools.r8.Third.qux(Third.java:12)");
+        "\tat com.android.tools.r8.Third.quux(Third.java:12)");
   }
 
   @Override
   public List<String> retraceVerboseStackTrace() {
-    // TODO(b/202426891): Should not be ambiguous.
     return Arrays.asList(
-        "There are 4 ambiguous stack traces.",
         "java.lang.IndexOutOfBoundsException",
         "\tat com.android.tools.r8.One.void foo(int)(One.java:10)",
         "\tat com.android.tools.r8.Other.void bar(int,int)(Other.java:11)",
-        "\tat com.android.tools.r8.Third.boolean quux(int,int)(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.void foo(int)(One.java:10)",
-        "\tat com.android.tools.r8.Other.void bar(int,int)(Other.java:11)",
+        "\tat com.android.tools.r8.Other.boolean baz(int,int)(Other.java:11)",
         "\tat com.android.tools.r8.Third.void qux(int)(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.void foo(int)(One.java:10)",
-        "\tat com.android.tools.r8.Other.boolean baz(int,int)(Other.java:11)",
-        "\tat com.android.tools.r8.Third.boolean quux(int,int)(Third.java:12)",
-        "<OR> java.lang.IndexOutOfBoundsException",
-        "\tat com.android.tools.r8.One.void foo(int)(One.java:10)",
-        "\tat com.android.tools.r8.Other.boolean baz(int,int)(Other.java:11)",
-        "\tat com.android.tools.r8.Third.void qux(int)(Third.java:12)");
+        "\tat com.android.tools.r8.Third.boolean quux(int,int)(Third.java:12)");
   }
 
   @Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/OverloadSameLineTest.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/OverloadSameLineTest.java
index 277e4b3..ec69283 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/OverloadSameLineTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/OverloadSameLineTest.java
@@ -31,23 +31,18 @@
     return Arrays.asList(
         "Exception in thread \"main\" java.lang.NullPointerException",
         "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:7)",
-        "<OR> Exception in thread \"main\" java.lang.NullPointerException",
-        "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:15)",
-        "<OR> Exception in thread \"main\" java.lang.NullPointerException",
-        "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:13)");
+        "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:13)",
+        "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:15)");
   }
 
   @Override
   public List<String> retraceVerboseStackTrace() {
     return Arrays.asList(
-        "There are 3 ambiguous stack traces.",
         "Exception in thread \"main\" java.lang.NullPointerException",
         "\tat com.android.tools.r8.naming.retrace.Main.void overload()(Main.java:7)",
-        "<OR> Exception in thread \"main\" java.lang.NullPointerException",
-        "\tat com.android.tools.r8.naming.retrace.Main.void overload(int)(Main.java:15)",
-        "<OR> Exception in thread \"main\" java.lang.NullPointerException",
         "\tat com.android.tools.r8.naming.retrace.Main.void"
-            + " overload(java.lang.String)(Main.java:13)");
+            + " overload(java.lang.String)(Main.java:13)",
+        "\tat com.android.tools.r8.naming.retrace.Main.void overload(int)(Main.java:15)");
   }
 
   @Override