[Retrace] Add test showing problem with inline frame interpretation

Bug: 199058242
Change-Id: Icdd55f5d49e9cf775f43fe0bb676e4991358161a
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 b2380c3..3f98496 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
@@ -41,6 +41,7 @@
 import com.android.tools.r8.retrace.stacktraces.NullStackTrace;
 import com.android.tools.r8.retrace.stacktraces.ObfucatedExceptionClassStackTrace;
 import com.android.tools.r8.retrace.stacktraces.ObfuscatedRangeToSingleLineStackTrace;
+import com.android.tools.r8.retrace.stacktraces.OverloadSameLineTest;
 import com.android.tools.r8.retrace.stacktraces.RetraceAssertionErrorStackTrace;
 import com.android.tools.r8.retrace.stacktraces.SourceFileNameSynthesizeStackTrace;
 import com.android.tools.r8.retrace.stacktraces.SourceFileWithNumberAndEmptyStackTrace;
@@ -264,6 +265,11 @@
     runRetraceTest(new NoObfuscatedLineNumberWithOverrideTest());
   }
 
+  @Test
+  public void testOverloadSameLineTest() throws Exception {
+    runRetraceTest(new OverloadSameLineTest());
+  }
+
   private void inspectRetraceTest(
       StackTraceForTest stackTraceForTest, Consumer<Retracer> inspection) {
     inspection.accept(
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
new file mode 100644
index 0000000..cacbe03
--- /dev/null
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/OverloadSameLineTest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2021, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+package com.android.tools.r8.retrace.stacktraces;
+
+import com.android.tools.r8.utils.StringUtils;
+import java.util.Arrays;
+import java.util.List;
+
+public class OverloadSameLineTest implements StackTraceForTest {
+
+  @Override
+  public List<String> obfuscatedStackTrace() {
+    return Arrays.asList(
+        "Exception in thread \"main\" java.lang.NullPointerException",
+        "\tat foo.a.overload(Main.java:1)");
+  }
+
+  @Override
+  public String mapping() {
+    return StringUtils.lines(
+        "com.android.tools.r8.naming.retrace.Main -> foo.a:",
+        "    1:1:void overload():7:7 -> overload",
+        "    1:1:void overload(java.lang.String):13:13 -> overload",
+        "    1:1:void overload(int):15:15 -> overload");
+  }
+
+  @Override
+  public List<String> retracedStackTrace() {
+    return Arrays.asList(
+        "Exception in thread \"main\" java.lang.NullPointerException",
+        // TODO(b/199058242): Should be ambiguous and not inline frames
+        "\tat com.android.tools.r8.naming.retrace.Main.overload(Main.java:7)",
+        "\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 int expectedWarnings() {
+    return 0;
+  }
+}