[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