[Retrace] Retrace no pos and 0 to the possible set of original frames
The above possible set is only used in the case where no exact range(s) exists for position 0.
Bug: b/231622686
Bug: b/270593835
Change-Id: If29d70b67aec0586da7cf04c27c9d06a087a9049
diff --git a/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java b/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
index 15efe36..2a1408a 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
@@ -139,6 +139,10 @@
/** List of MappedRanges that belong to the same renamed name. */
public static class MappedRangesOfName {
+
+ private static final MappedRangesOfName EMPTY_INSTANCE =
+ new MappedRangesOfName(Collections.emptyList());
+
private final List<MappedRange> mappedRanges;
public MappedRangesOfName(List<MappedRange> mappedRanges) {
@@ -211,6 +215,10 @@
return mappedRanges;
}
+ public static MappedRangesOfName empty() {
+ return EMPTY_INSTANCE;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -562,7 +570,7 @@
*/
private List<MappingInformation> additionalMappingInformation = EMPTY_MAPPING_INFORMATION;
- MappedRange(
+ public MappedRange(
Range minifiedRange, MethodSignature signature, Range originalRange, String renamedName) {
this.minifiedRange = minifiedRange;
this.signature = signature;
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/MemberNamingWithMappedRangesOfName.java b/src/main/java/com/android/tools/r8/retrace/internal/MemberNamingWithMappedRangesOfName.java
index 26d5a16..d60e6bf 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/MemberNamingWithMappedRangesOfName.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/MemberNamingWithMappedRangesOfName.java
@@ -34,7 +34,20 @@
return mappedRangesOfName.getMappedRanges();
}
+ List<MappedRange> getMappedRangesWithNoMinifiedRangeAndPositionZero() {
+ return mappedRangesOfName.allRangesForLine(0, true);
+ }
+
public MemberNaming getMemberNaming() {
return methodMemberNaming;
}
+
+ public boolean isSingleCatchAllRange() {
+ if (getMappedRanges().size() == 1) {
+ MappedRange singleMappedRange = ListUtils.first(getMappedRanges());
+ return singleMappedRange.minifiedRange != null
+ && singleMappedRange.minifiedRange.isCatchAll();
+ }
+ return false;
+ }
}
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
index b48e8c2..f82327a 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceFrameResultImpl.java
@@ -90,6 +90,7 @@
RetraceClassElementImpl classElement = mappedRangeData.getRetraceClassElement();
List<MemberNamingWithMappedRangesOfName> memberNamingWithMappedRangesOfNames =
mappedRangeData.getMemberNamingWithMappedRanges();
+ OptionalInt position = mappedRangeData.getPosition();
if (memberNamingWithMappedRangesOfNames == null
|| memberNamingWithMappedRangesOfNames.isEmpty()) {
return Stream.of(
@@ -101,7 +102,7 @@
classElement.getRetracedClass().getClassReference())),
ImmutableList.of(),
Optional.empty(),
- mappedRangeData.getPosition(),
+ position,
retracer));
}
// Iterate over mapped ranges that may have different positions than specified.
@@ -110,6 +111,23 @@
memberNamingWithMappedRangesOfNames) {
List<MappedRange> mappedRangesForMemberNaming =
memberNamingWithMappedRangesOfName.getMappedRanges();
+ MemberNaming memberNaming = memberNamingWithMappedRangesOfName.getMemberNaming();
+ if (mappedRangesForMemberNaming.isEmpty()) {
+ assert memberNaming != null;
+ MappedRange mappedRange =
+ new MappedRange(
+ null,
+ memberNaming.getOriginalSignature().asMethodSignature(),
+ null,
+ memberNaming.getRenamedName());
+ ambiguousFrames.add(
+ elementFromMappedRanges(
+ Collections.singletonList(MappedRangeForFrame.create(mappedRange)),
+ Optional.of(memberNaming),
+ classElement,
+ position));
+ continue;
+ }
MappedRange firstMappedRange = mappedRangesForMemberNaming.get(0);
Range minifiedRange = firstMappedRange.minifiedRange;
List<MappedRange> mappedRangesForElement = Lists.newArrayList(firstMappedRange);
@@ -119,10 +137,10 @@
// This is a new frame
separateAmbiguousOriginalPositions(
classElement,
- Optional.ofNullable(memberNamingWithMappedRangesOfName.getMemberNaming()),
+ Optional.ofNullable(memberNaming),
mappedRangesForElement,
ambiguousFrames,
- mappedRangeData.getPosition());
+ position);
mappedRangesForElement = new ArrayList<>();
minifiedRange = mappedRange.minifiedRange;
}
@@ -130,10 +148,10 @@
}
separateAmbiguousOriginalPositions(
classElement,
- Optional.ofNullable(memberNamingWithMappedRangesOfName.getMemberNaming()),
+ Optional.ofNullable(memberNaming),
mappedRangesForElement,
ambiguousFrames,
- mappedRangeData.getPosition());
+ position);
}
return ambiguousFrames.stream();
});
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 86af9c0..3a95c5f 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
@@ -94,7 +94,7 @@
if (context instanceof RetraceStackTraceContextImpl) {
stackTraceContext = (RetraceStackTraceContextImpl) context;
}
- boolean hasPosition = position.isPresent() && position.getAsInt() >= 0;
+ boolean hasPosition = position.isPresent() && position.getAsInt() > 0;
Function<MemberNamingWithMappedRangesOfName, List<MappedRange>> selector =
hasPosition ? filterOnExistingPosition(position.getAsInt()) : filterOnNoPosition();
for (Pair<RetraceClassElementImpl, List<MemberNamingWithMappedRangesOfName>> mappedRange :
@@ -114,9 +114,27 @@
}
}
if (narrowedRanges.isEmpty()) {
+ boolean preamblePosition = position.isEmpty() || position.getAsInt() <= 0;
for (Pair<RetraceClassElementImpl, List<MemberNamingWithMappedRangesOfName>> mappedRange :
mappedRanges) {
- narrowedRanges.add(new RetraceFrameResultData(mappedRange.getFirst(), null, position));
+ List<MemberNamingWithMappedRangesOfName> memberNamingWithMappedRanges = new ArrayList<>();
+ // If we could find a result, and we have observed a reported preamble position, we create a
+ // mapping containing only the member-naming.
+ if (mappedRange.getSecond() != null && preamblePosition) {
+ memberNamingWithMappedRanges =
+ ListUtils.map(
+ mappedRange.getSecond(),
+ m ->
+ // Check if we have a catch-all range since that could map 0 to a non-zero
+ // original line.
+ m.isSingleCatchAllRange()
+ ? m
+ : new MemberNamingWithMappedRangesOfName(
+ m.getMemberNaming(), MappedRangesOfName.empty()));
+ }
+ narrowedRanges.add(
+ new RetraceFrameResultData(
+ mappedRange.getFirst(), memberNamingWithMappedRanges, position));
}
}
return new RetraceFrameResultImpl(
@@ -186,7 +204,7 @@
}
private Function<MemberNamingWithMappedRangesOfName, List<MappedRange>> filterOnNoPosition() {
- return MemberNamingWithMappedRangesOfName::getMappedRanges;
+ return MemberNamingWithMappedRangesOfName::getMappedRangesWithNoMinifiedRangeAndPositionZero;
}
@Override
diff --git a/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java b/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
index 4372134..aac289a 100644
--- a/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
+++ b/src/test/java/com/android/tools/r8/naming/retraceproguard/CatchAllRangeWithNoLineNumberTest.java
@@ -26,7 +26,6 @@
@RunWith(Parameterized.class)
public class CatchAllRangeWithNoLineNumberTest extends TestBase {
- private final TestParameters parameters;
private final ProguardVersion proguardVersion;
@Parameters(name = "{0}, {1}")
@@ -36,8 +35,8 @@
public CatchAllRangeWithNoLineNumberTest(
TestParameters parameters, ProguardVersion proguardVersion) {
- this.parameters = parameters;
this.proguardVersion = proguardVersion;
+ parameters.assertNoneRuntime();
}
private final String[] stackTrace =
@@ -85,7 +84,7 @@
private final String retracedR8 =
StringUtils.lines(
"\tat foo.bar.Baz.foo(Baz.java:33)",
- "\tat foo.bar.Qux.foo(Qux.java:33)",
+ "\tat foo.bar.Qux.foo(Qux.java)",
"\tat foo.bar.Quux.foo(Quux.java:33)",
"\tat foo.bar.Baz.foo(Baz.java:33)",
"\tat foo.bar.Baz.foo(Baz.java:33)");
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 36a00f1..c8ce59b 100644
--- a/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/RetraceTests.java
@@ -43,7 +43,6 @@
import com.android.tools.r8.retrace.stacktraces.InlineNoLineNumberStackTrace;
import com.android.tools.r8.retrace.stacktraces.InlineNoLineWithBaseEntryNumberAssumeNoInlineStackTrace;
import com.android.tools.r8.retrace.stacktraces.InlinePreambleNoOriginalStackTrace;
-import com.android.tools.r8.retrace.stacktraces.InlinePreambleWithOriginalStackTrace;
import com.android.tools.r8.retrace.stacktraces.InlineSourceFileContextStackTrace;
import com.android.tools.r8.retrace.stacktraces.InlineSourceFileStackTrace;
import com.android.tools.r8.retrace.stacktraces.InlineWithLineNumbersStackTrace;
@@ -248,11 +247,6 @@
}
@Test
- public void testInlinePreambleWithOriginalStackTrace() throws Exception {
- runRetraceTest(new InlinePreambleWithOriginalStackTrace());
- }
-
- @Test
public void testInlinePreambleNoOriginalStackTrace() throws Exception {
runRetraceTest(new InlinePreambleNoOriginalStackTrace());
}
diff --git a/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java b/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
index 80d580b..480f8bf 100644
--- a/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
+++ b/src/test/java/com/android/tools/r8/retrace/StackTraceRegularExpressionParserTests.java
@@ -485,12 +485,12 @@
@Override
public List<String> retracedStackTrace() {
- return ImmutableList.of("com.android.tools.r8.R8.foo(7)");
+ return ImmutableList.of("com.android.tools.r8.R8.foo()");
}
@Override
public List<String> retraceVerboseStackTrace() {
- return ImmutableList.of("com.android.tools.r8.R8.boolean foo()(7)");
+ return ImmutableList.of("com.android.tools.r8.R8.boolean foo()()");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithMultipleLineMappingsStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithMultipleLineMappingsStackTrace.java
index 51a9249..1041ace 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithMultipleLineMappingsStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithMultipleLineMappingsStackTrace.java
@@ -40,9 +40,7 @@
return Arrays.asList(
"java.lang.IndexOutOfBoundsException",
"\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int)(Internal.java:10)",
- "\t<OR> at com.android.tools.r8.Internal.void foo(int)(Internal.java:11)",
- "\t<OR> at com.android.tools.r8.Internal.void foo(int)(Internal.java:12)");
+ "\tat com.android.tools.r8.Internal.void foo(int)(Internal.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithSignatureStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithSignatureStackTrace.java
index c9ed69c..1f0cd0c 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithSignatureStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousWithSignatureStackTrace.java
@@ -41,10 +41,10 @@
return Arrays.asList(
"java.lang.IndexOutOfBoundsException",
"\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.boolean foo(int,int)(Internal.java:13)",
- "\t<OR> at com.android.tools.r8.Internal.void foo(int)(Internal.java:10)",
- "\t<OR> at com.android.tools.r8.Internal.void foo(int,boolean)(Internal.java:12)",
- "\t<OR> at com.android.tools.r8.Internal.void foo(int,int)(Internal.java:11)");
+ "\tat com.android.tools.r8.Internal.boolean foo(int,int)(Internal.java)",
+ "\t<OR> at com.android.tools.r8.Internal.void foo(int)(Internal.java)",
+ "\t<OR> at com.android.tools.r8.Internal.void foo(int,boolean)(Internal.java)",
+ "\t<OR> at com.android.tools.r8.Internal.void foo(int,int)(Internal.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineAssumeNoInlineAmbiguousStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineAssumeNoInlineAmbiguousStackTrace.java
index 515d6b0..7c63a27 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineAssumeNoInlineAmbiguousStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineAssumeNoInlineAmbiguousStackTrace.java
@@ -21,20 +21,14 @@
public List<String> retracedStackTrace() {
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- // TODO(b/231622686): Should not emit inline frame.
- "\tat retrace.Main.method1(Main.java)",
- "\tat retrace.Main.main(Main.java)",
- "\t<OR> at retrace.Main.otherMain(Main.java)");
+ "\tat retrace.Main.otherMain(Main.java)");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- // TODO(b/231622686): Should not emit inline frame.
- "\tat retrace.Main.void method1(java.lang.String)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)",
- "\t<OR> at retrace.Main.void otherMain(java.lang.String[])(Main.java)");
+ "\tat retrace.Main.void otherMain(java.lang.String[])(Main.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineNumberAssumeNoInlineStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineNumberAssumeNoInlineStackTrace.java
index ffc5da2..9382f6e 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineNumberAssumeNoInlineStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineNumberAssumeNoInlineStackTrace.java
@@ -19,12 +19,8 @@
@Override
public List<String> retracedStackTrace() {
- // TODO(b/231622686): Should assume that no lines means no inline frames.
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.method1(Main.java)",
- "\tat retrace.Main.main(Main.java)",
- "\t<OR> at retrace.Main.method2(Main.java)",
"\tat retrace.Main.main(Main.java)");
}
@@ -33,10 +29,7 @@
// TODO(b/231622686): Should assume that no lines means no inline frames.
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.void method1(java.lang.String)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)",
- "\t<OR> at retrace.Main.void method2(int)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)");
+ "\tat retrace.Main.void main(java.lang.String[])(Main.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineWithBaseEntryNumberAssumeNoInlineStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineWithBaseEntryNumberAssumeNoInlineStackTrace.java
index 3e52ebd..3e6de74 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineWithBaseEntryNumberAssumeNoInlineStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlineNoLineWithBaseEntryNumberAssumeNoInlineStackTrace.java
@@ -19,22 +19,16 @@
@Override
public List<String> retracedStackTrace() {
- // TODO(b/231622686): Should assume that no lines means no inline frames.
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.main(Main.java)",
- "\t<OR> at retrace.Main.method1(Main.java)",
"\tat retrace.Main.main(Main.java)");
}
@Override
public List<String> retraceVerboseStackTrace() {
- // TODO(b/231622686): Should assume that no lines means no inline frames.
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java)",
- "\t<OR> at retrace.Main.void method1(java.lang.String)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)");
+ "\tat retrace.Main.void main(java.lang.String[])(Main.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleNoOriginalStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleNoOriginalStackTrace.java
index 47732b8..79a9172 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleNoOriginalStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleNoOriginalStackTrace.java
@@ -20,21 +20,15 @@
@Override
public List<String> retracedStackTrace() {
return Arrays.asList(
- // TODO(b/231622686): Should only include preamble
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.main(Main.java)",
- "\t<OR> at retrace.Main.method1(Main.java)",
"\tat retrace.Main.main(Main.java)");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- // TODO(b/231622686): Should only include preamble
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java)",
- "\t<OR> at retrace.Main.void method1(java.lang.String)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)");
+ "\tat retrace.Main.void main(java.lang.String[])(Main.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleWithOriginalStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleWithOriginalStackTrace.java
deleted file mode 100644
index 72c2076..0000000
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/InlinePreambleWithOriginalStackTrace.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (c) 2022, 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 InlinePreambleWithOriginalStackTrace implements StackTraceForTest {
-
- @Override
- public List<String> obfuscatedStackTrace() {
- return Arrays.asList(
- "Exception in thread \"main\" java.lang.NullPointerException",
- "\tat a.foo(Unknown Source)");
- }
-
- @Override
- public List<String> retracedStackTrace() {
- return Arrays.asList(
- // TODO(b/231622686): Should only include preamble
- "Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.main(Main.java)",
- "\t<OR> at retrace.Main.method1(Main.java)",
- "\tat retrace.Main.main(Main.java)");
- }
-
- @Override
- public List<String> retraceVerboseStackTrace() {
- return Arrays.asList(
- // TODO(b/231622686): Should only include preamble
- "Exception in thread \"main\" java.lang.NullPointerException",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)",
- "\t<OR> at retrace.Main.void method1(java.lang.String)(Main.java:0)",
- "\tat retrace.Main.void main(java.lang.String[])(Main.java:0)");
- }
-
- @Override
- public String mapping() {
- return StringUtils.lines(
- "retrace.Main -> a:",
- " 0:1:void main(java.lang.String[]):0:0 -> foo",
- " 2:2:void method1(java.lang.String):0:0 -> foo",
- " 2:2:void main(java.lang.String[]):0 -> foo");
- }
-
- @Override
- public int expectedWarnings() {
- return 0;
- }
-}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleLinesNoLineNumberStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleLinesNoLineNumberStackTrace.java
index b1a31db..3f5746d 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleLinesNoLineNumberStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleLinesNoLineNumberStackTrace.java
@@ -30,9 +30,8 @@
public List<String> retracedStackTrace() {
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.main(Main.java)",
- "\t<OR> at com.android.tools.r8.naming.retrace.Main.method1(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.main(Main.java)");
+ "\tat com.android.tools.r8.naming.retrace.Main.method1(Main.java:42)",
+ "\tat com.android.tools.r8.naming.retrace.Main.main(Main.java:28)");
}
@Override
@@ -40,8 +39,6 @@
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main(java.lang.String[])(Main.java:153)",
- "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:42)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main(java.lang.String[])(Main.java:28)");
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/OutsideLineRangeStackTraceTest.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/OutsideLineRangeStackTraceTest.java
index ea9ada4..2ebf79a 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/OutsideLineRangeStackTraceTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/OutsideLineRangeStackTraceTest.java
@@ -47,8 +47,7 @@
"\tat some.other.Class.void method1()(Class.java:42)",
"\tat some.other.Class.void method1()(Class.java:42)",
"\tat some.Class.a(Class.java:27)",
- "\tat some.Class.void method2()(Class.java)",
- "\t<OR> at some.Class.void method2()(Class.java:10)");
+ "\tat some.Class.void method2()(Class.java)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/PreambleLineNumberStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/PreambleLineNumberStackTrace.java
index 316fdfc..98a6ed6 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/PreambleLineNumberStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/PreambleLineNumberStackTrace.java
@@ -33,8 +33,7 @@
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
" at kotlin.ResultKt.createFailure(Result.kt)",
- // TODO(b/270593835): We should report kotlin.ResultKt.createFailure(Result.kt).
- " at kotlin.ResultKt.a(Result.kt:0)",
+ " at kotlin.ResultKt.createFailure(Result.kt:0)",
" at kotlin.ResultKt.createFailure(Result.kt:122)",
" at kotlin.ResultKt.createFailure(Result.kt:124)");
}
@@ -43,11 +42,8 @@
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
- // TODO(b/270593835): We should not have an ambiguous frame reporting here.
- " at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt:122)",
- " <OR> at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt:124)",
- // TODO(b/270593835): We should report kotlin.ResultKt.createFailure(Result.kt).
- " at kotlin.ResultKt.a(Result.kt:0)",
+ " at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt)",
+ " at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt:0)",
" at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt:122)",
" at kotlin.ResultKt.void createFailure(java.lang.Throwable)(Result.kt:124)");
}