[Retrace] Revert back to using inline <OR> for cmd tool
Change-Id: Ia2813e20721d7df1708dcb0ee672190e0b3e70a7
diff --git a/src/main/java/com/android/tools/r8/retrace/Retrace.java b/src/main/java/com/android/tools/r8/retrace/Retrace.java
index 5bb9ca1..2b01885 100644
--- a/src/main/java/com/android/tools/r8/retrace/Retrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retrace.java
@@ -16,18 +16,18 @@
import com.android.tools.r8.retrace.internal.RetraceAbortException;
import com.android.tools.r8.retrace.internal.RetracerImpl;
import com.android.tools.r8.retrace.internal.StackTraceRegularExpressionParser;
+import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.ExceptionDiagnostic;
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.OptionsParsing;
import com.android.tools.r8.utils.OptionsParsing.ParseContext;
+import com.android.tools.r8.utils.Pair;
import com.android.tools.r8.utils.StringDiagnostic;
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.Timing;
import com.google.common.base.Charsets;
import com.google.common.base.Equivalence;
import com.google.common.base.Equivalence.Wrapper;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterators;
import com.google.common.io.CharStreams;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -39,17 +39,14 @@
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
-import java.util.TreeMap;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -178,7 +175,7 @@
* @param stackTrace the stack trace to be retrace
* @return list of potentially ambiguous stack traces.
*/
- public List<Iterator<T>> retraceStackTrace(List<T> stackTrace) {
+ public List<List<List<T>>> retraceStackTrace(List<T> stackTrace) {
ListUtils.forEachWithIndex(
stackTrace,
(line, lineNumber) -> {
@@ -190,37 +187,43 @@
});
RetraceStackTraceElementProxyEquivalence<T, ST> equivalence =
new RetraceStackTraceElementProxyEquivalence<>(isVerbose);
- RetracedNodeState<T, ST> root = RetracedNodeState.initial(equivalence);
- List<RetracedNodeState<T, ST>> allLeaves =
- ListUtils.fold(
- stackTrace,
- (List<RetracedNodeState<T, ST>>) ImmutableList.of(root),
- (acc, stackTraceLine) -> {
- ST parsedLine = stackTraceLineParser.parse(stackTraceLine);
- List<RetracedNodeState<T, ST>> newLeaves = new ArrayList<>();
- for (RetracedNodeState<T, ST> previousNode : acc) {
- RetraceStackTraceElementProxyResult<T, ST> result =
- proxyRetracer.retrace(parsedLine, previousNode.context);
- result.stream()
- .forEach(
- retracedElement -> {
- if (retracedElement.isTopFrame() || !retracedElement.hasRetracedClass()) {
- previousNode.addChild(retracedElement, retracedElement.getContext());
- }
- previousNode.addFrameToCurrentChild(
- parsedLine.toRetracedItem(retracedElement, isVerbose));
- });
- if (!previousNode.hasChildren()) {
- // This happens when there is nothing to retrace. Add the node to newLeaves to
- // ensure we keep retracing this path.
- previousNode.addChild(null, result.getResultContext());
- }
- newLeaves.addAll(previousNode.getChildren());
- }
- return newLeaves;
- });
- assert !allLeaves.isEmpty();
- return ListUtils.map(allLeaves, RetracedNodeState::iterator);
+ List<List<List<T>>> finalResult = new ArrayList<>();
+ ListUtils.fold(
+ stackTrace,
+ RetraceStackTraceContext.empty(),
+ (context, stackTraceLine) -> {
+ ST parsedLine = stackTraceLineParser.parse(stackTraceLine);
+ List<Pair<RetraceStackTraceElementProxy<T, ST>, List<T>>> resultsForLine =
+ new ArrayList<>();
+ Box<List<T>> currentList = new Box<>();
+ Set<Wrapper<RetraceStackTraceElementProxy<T, ST>>> seen = new HashSet<>();
+ List<RetraceStackTraceContext> contexts = new ArrayList<>();
+ RetraceStackTraceElementProxyResult<T, ST> retraceResult =
+ proxyRetracer.retrace(parsedLine, context);
+ retraceResult.stream()
+ .forEach(
+ retracedElement -> {
+ if (retracedElement.isTopFrame() || !retracedElement.hasRetracedClass()) {
+ if (seen.add(equivalence.wrap(retracedElement))) {
+ currentList.set(new ArrayList<>());
+ resultsForLine.add(Pair.create(retracedElement, currentList.get()));
+ contexts.add(retracedElement.getContext());
+ } else {
+ currentList.empty();
+ }
+ }
+ if (currentList.isSet()) {
+ currentList.get().add(parsedLine.toRetracedItem(retracedElement, isVerbose));
+ }
+ });
+ resultsForLine.sort(Comparator.comparing(Pair::getFirst));
+ finalResult.add(ListUtils.map(resultsForLine, Pair::getSecond));
+ if (contexts.isEmpty()) {
+ return retraceResult.getResultContext();
+ }
+ return contexts.size() == 1 ? contexts.get(0) : RetraceStackTraceContext.empty();
+ });
+ return finalResult;
}
/**
@@ -598,63 +601,4 @@
return new RetraceStackTraceElementProxyEquivalence<>(isVerbose);
}
}
-
- private static class RetracedNodeState<T, ST extends StackTraceElementProxy<T, ST>>
- implements Iterable<T> {
-
- private final RetracedNodeState<T, ST> parent;
- private final Set<Wrapper<RetraceStackTraceElementProxy<T, ST>>> seenSet = new HashSet<>();
- private final Map<RetraceStackTraceElementProxy<T, ST>, RetracedNodeState<T, ST>> children =
- new TreeMap<>(Comparator.nullsFirst(Comparator.naturalOrder()));
- private RetracedNodeState<T, ST> currentChild;
- private final RetraceStackTraceContext context;
- private final List<T> frames = new ArrayList<>();
- private final RetraceStackTraceElementProxyEquivalence<T, ST> equivalence;
-
- private RetracedNodeState(
- RetracedNodeState<T, ST> parent,
- RetraceStackTraceContext context,
- RetraceStackTraceElementProxyEquivalence<T, ST> equivalence) {
- this.parent = parent;
- this.context = context;
- this.equivalence = equivalence;
- }
-
- private void addFrameToCurrentChild(T frame) {
- if (currentChild != null) {
- currentChild.frames.add(frame);
- }
- }
-
- private void addChild(
- RetraceStackTraceElementProxy<T, ST> element, RetraceStackTraceContext context) {
- if (seenSet.add(equivalence.wrap(element))) {
- RetracedNodeState<T, ST> newChild = new RetracedNodeState<>(this, context, equivalence);
- this.currentChild = newChild;
- children.put(element, newChild);
- } else {
- this.currentChild = null;
- }
- }
-
- private static <T, ST extends StackTraceElementProxy<T, ST>> RetracedNodeState<T, ST> initial(
- RetraceStackTraceElementProxyEquivalence<T, ST> equivalence) {
- return new RetracedNodeState<>(null, RetraceStackTraceContext.empty(), equivalence);
- }
-
- @Override
- public Iterator<T> iterator() {
- return parent != null
- ? Iterators.concat(parent.iterator(), frames.iterator())
- : frames.iterator();
- }
-
- public boolean hasChildren() {
- return !children.isEmpty();
- }
-
- public Collection<? extends RetracedNodeState<T, ST>> getChildren() {
- return children.values();
- }
- }
}
diff --git a/src/main/java/com/android/tools/r8/retrace/StringRetrace.java b/src/main/java/com/android/tools/r8/retrace/StringRetrace.java
index e68c6f6..29ee4d2 100644
--- a/src/main/java/com/android/tools/r8/retrace/StringRetrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/StringRetrace.java
@@ -9,12 +9,10 @@
import com.android.tools.r8.DiagnosticsHandler;
import com.android.tools.r8.Keep;
import com.android.tools.r8.retrace.internal.StackTraceElementStringProxy;
-import com.android.tools.r8.utils.BooleanBox;
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.StringUtils;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.function.Consumer;
@@ -79,31 +77,28 @@
*/
public List<String> retrace(List<String> stackTrace) {
List<String> retracedStrings = new ArrayList<>();
- List<Iterator<String>> retracedStackTraces = retraceStackTrace(stackTrace);
- if (retracedStackTraces.size() > 1 && isVerbose) {
- retracedStrings.add("There are " + retracedStackTraces.size() + " ambiguous stack traces.");
- }
- for (int i = 0; i < retracedStackTraces.size(); i++) {
- Iterator<String> result = retracedStackTraces.get(i);
- BooleanBox insertOr = new BooleanBox(i > 0);
- result.forEachRemaining(
- stackTraceLine -> {
- if (insertOr.get()) {
- // We are reporting an ambiguous frame. To support retracing tools that retrace line
- // by line we have to emit <OR> at the point of the first ' at ' if we can find it.
- int indexToInsertOr = stackTraceLine.indexOf(" at ");
- boolean hasSpace = indexToInsertOr >= 0;
- if (indexToInsertOr < 0) {
- indexToInsertOr =
- Math.max(StringUtils.firstNonWhitespaceCharacter(stackTraceLine), 0);
+ List<List<List<String>>> lists = retraceStackTrace(stackTrace);
+ for (List<List<String>> newLines : lists) {
+ ListUtils.forEachWithIndex(
+ newLines,
+ (inlineFrames, ambiguousIndex) -> {
+ for (int i = 0; i < inlineFrames.size(); i++) {
+ String stackTraceLine = inlineFrames.get(i);
+ if (i == 0 && ambiguousIndex > 0) {
+ // We are reporting an ambiguous frame. To support retracing tools that retrace line
+ // by line we have to emit <OR> at the point of the first 'at ' if we can find it.
+ int indexToInsertOr = stackTraceLine.indexOf("at ");
+ if (indexToInsertOr < 0) {
+ indexToInsertOr =
+ Math.max(StringUtils.firstNonWhitespaceCharacter(stackTraceLine), 0);
+ }
+ retracedStrings.add(
+ stackTraceLine.substring(0, indexToInsertOr)
+ + "<OR> "
+ + stackTraceLine.substring(indexToInsertOr));
+ } else {
+ retracedStrings.add(stackTraceLine);
}
- retracedStrings.add(
- stackTraceLine.substring(0, indexToInsertOr)
- + (hasSpace ? "<OR>" : "<OR> ")
- + stackTraceLine.substring(indexToInsertOr));
- insertOr.set(false);
- } else {
- retracedStrings.add(stackTraceLine);
}
});
}
diff --git a/src/main/java/com/android/tools/r8/utils/Box.java b/src/main/java/com/android/tools/r8/utils/Box.java
index de67cf6..2e6f17c 100644
--- a/src/main/java/com/android/tools/r8/utils/Box.java
+++ b/src/main/java/com/android/tools/r8/utils/Box.java
@@ -62,4 +62,8 @@
public int hashCode() {
return Objects.hashCode(value);
}
+
+ public void empty() {
+ value = null;
+ }
}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMethodVerboseStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMethodVerboseStackTrace.java
index 3facf5f..51acd54 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMethodVerboseStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMethodVerboseStackTrace.java
@@ -40,16 +40,11 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 2 ambiguous stack traces.",
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.c(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.com.android.Foo"
+ " main(java.lang.String[])(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.com.android.Foo"
- + " main(java.lang.String[],com.android.Bar)(Main.java)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.c(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.void main(com.android.Bar)(Main.java)",
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void main(com.android.Bar)(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.com.android.Foo"
+ " main(java.lang.String[],com.android.Bar)(Main.java)");
}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMissingLineStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMissingLineStackTrace.java
index 484fb5f..2e2a527 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMissingLineStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousMissingLineStackTrace.java
@@ -27,121 +27,28 @@
return Arrays.asList(
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java:7)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java:7)",
" at com.android.tools.r8.R8.bar(R8.java:8)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java:8)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:7)",
- " at com.android.tools.r8.R8.bar(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:7)",
- " at com.android.tools.r8.R8.foo(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:7)",
- " at com.android.tools.r8.R8.foo(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:7)",
- " at com.android.tools.r8.R8.bar(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:7)",
- " at com.android.tools.r8.R8.bar(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:7)",
- " at com.android.tools.r8.R8.foo(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:7)",
- " at com.android.tools.r8.R8.foo(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java:9)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java:9)",
" ... 42 more");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 8 ambiguous stack traces.",
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java:7)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java:7)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java:8)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java:8)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:7)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:7)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:7)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:7)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:7)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:7)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java:9)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:7)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:8)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java:9)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java:9)",
" ... 42 more");
}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousStackTrace.java
index f6704a4..a5241a8 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/AmbiguousStackTrace.java
@@ -27,121 +27,28 @@
return Arrays.asList(
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" at com.android.tools.r8.R8.bar(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" ... 42 more");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 8 ambiguous stack traces.",
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" ... 42 more");
}
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 4015e0e..51a9249 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
@@ -38,16 +38,11 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 3 ambiguous stack traces.",
"java.lang.IndexOutOfBoundsException",
"\tat java.util.ArrayList.get(ArrayList.java:411)",
"\tat com.android.tools.r8.Internal.void foo(int)(Internal.java:10)",
- "<OR> java.lang.IndexOutOfBoundsException",
- "\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int)(Internal.java:11)",
- "<OR> java.lang.IndexOutOfBoundsException",
- "\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int)(Internal.java:12)");
+ "\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)");
}
@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 212976f..c9ed69c 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
@@ -39,19 +39,12 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 4 ambiguous stack traces.",
"java.lang.IndexOutOfBoundsException",
"\tat java.util.ArrayList.get(ArrayList.java:411)",
"\tat com.android.tools.r8.Internal.boolean foo(int,int)(Internal.java:13)",
- "<OR> java.lang.IndexOutOfBoundsException",
- "\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int)(Internal.java:10)",
- "<OR> java.lang.IndexOutOfBoundsException",
- "\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int,boolean)(Internal.java:12)",
- "<OR> java.lang.IndexOutOfBoundsException",
- "\tat java.util.ArrayList.get(ArrayList.java:411)",
- "\tat com.android.tools.r8.Internal.void foo(int,int)(Internal.java:11)");
+ "\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)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/DifferentLineNumberSpanStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/DifferentLineNumberSpanStackTrace.java
index b4efedd..ef9853e 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/DifferentLineNumberSpanStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/DifferentLineNumberSpanStackTrace.java
@@ -29,24 +29,19 @@
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.method1(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.method1(Main.java:43)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.method1(Main.java:44)");
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.method1(Main.java:43)",
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.method1(Main.java:44)");
}
@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"
+ " method1(java.lang.String)(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:43)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:44)");
}
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 a961d7b..b1a31db 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
@@ -31,20 +31,17 @@
return Arrays.asList(
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.main(Main.java)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.method1(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)");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 2 ambiguous stack traces.",
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\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/MultipleOriginalLinesNoLineNumberStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleOriginalLinesNoLineNumberStackTrace.java
index a4b4fa3..93a3567 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleOriginalLinesNoLineNumberStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/MultipleOriginalLinesNoLineNumberStackTrace.java
@@ -33,12 +33,10 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 2 ambiguous stack traces.",
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:43)");
}
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/NoObfuscatedLineNumberWithOverrideTest.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/NoObfuscatedLineNumberWithOverrideTest.java
index 273b002..d444bcf 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/NoObfuscatedLineNumberWithOverrideTest.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/NoObfuscatedLineNumberWithOverrideTest.java
@@ -38,11 +38,7 @@
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.main(Main.java:3)",
"\tat com.android.tools.r8.naming.retrace.Main.overload1(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.definedOverload(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.mainPC(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.main(Main.java:3)",
- "\tat com.android.tools.r8.naming.retrace.Main.overload2(Main.java)",
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.overload2(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.definedOverload(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.mainPC(Main.java:42)");
}
@@ -50,32 +46,13 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 4 ambiguous stack traces.",
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.void main(java.lang.String)(Main.java:3)",
"\tat com.android.tools.r8.naming.retrace.Main.void overload1()(Main.java:7)",
- "\tat com.android.tools.r8.naming.retrace.Main.void definedOverload()(Main.java:7)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " mainPC(java.lang.String[])(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void main(java.lang.String)(Main.java:3)",
- "\tat com.android.tools.r8.naming.retrace.Main.void overload1()(Main.java:7)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " definedOverload(java.lang.String)(Main.java:11)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " mainPC(java.lang.String[])(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void main(java.lang.String)(Main.java:3)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " overload2(java.lang.String)(Main.java:11)",
"\tat com.android.tools.r8.naming.retrace.Main.void definedOverload()(Main.java:7)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " mainPC(java.lang.String[])(Main.java:42)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.void main(java.lang.String)(Main.java:3)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " overload2(java.lang.String)(Main.java:11)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " definedOverload(java.lang.String)(Main.java:11)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " mainPC(java.lang.String[])(Main.java:42)");
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 81587cf..ea9ada4 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
@@ -43,18 +43,12 @@
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 2 ambiguous stack traces.",
"java.io.IOException: INVALID_SENDER",
"\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)",
- // TODO(b/202055473): Could emit range 11-13.
"\tat some.Class.void method2()(Class.java)",
- "<OR> java.io.IOException: INVALID_SENDER",
- "\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:10)");
+ "\t<OR> at some.Class.void method2()(Class.java:10)");
}
@Override
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/SingleLineNoLineNumberStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/SingleLineNoLineNumberStackTrace.java
index c30fdbf..914cc4b 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/SingleLineNoLineNumberStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/SingleLineNoLineNumberStackTrace.java
@@ -42,20 +42,13 @@
"\tat com.android.tools.r8.naming.retrace.Main.method2(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.main2(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.main3(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.main4(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat com.android.tools.r8.naming.retrace.Main.method1(Main.java:42)",
- "\tat com.android.tools.r8.naming.retrace.Main.main(Main.java:28)",
- "\tat com.android.tools.r8.naming.retrace.Main.method2(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.main2(Main.java)",
- "\tat com.android.tools.r8.naming.retrace.Main.method3(Main.java)",
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.method3(Main.java)",
"\tat com.android.tools.r8.naming.retrace.Main.main4(Main.java:153)");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 6 ambiguous stack traces.",
"Exception in thread \"main\" java.lang.NullPointerException",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " method1(java.lang.String)(Main.java:42)",
@@ -64,67 +57,17 @@
+ " method2(java.lang.String)(Main.java:42)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main2(java.lang.String[])(Main.java:29)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main3(java.lang.String[])(Main.java:30)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main4(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat 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)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " method2(java.lang.String)(Main.java:42)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main2(java.lang.String[])(Main.java:29)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " method3(java.lang.String)(Main.java:72)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main4(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat 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)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method2(java.lang.String)(Main.java:43)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main2(java.lang.String[])(Main.java:29)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main3(java.lang.String[])(Main.java:30)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main4(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat 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)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " method2(java.lang.String)(Main.java:43)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main2(java.lang.String[])(Main.java:29)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " method3(java.lang.String)(Main.java:72)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main4(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat 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)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method2(java.lang.String)(Main.java:44)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main2(java.lang.String[])(Main.java:29)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main3(java.lang.String[])(Main.java:30)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main4(java.lang.String[])(Main.java:153)",
- "<OR> Exception in thread \"main\" java.lang.NullPointerException",
- "\tat 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)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " method2(java.lang.String)(Main.java:44)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
- + " main2(java.lang.String[])(Main.java:29)",
- "\tat com.android.tools.r8.naming.retrace.Main.void"
+ "\t<OR> at com.android.tools.r8.naming.retrace.Main.void"
+ " method3(java.lang.String)(Main.java:72)",
"\tat com.android.tools.r8.naming.retrace.Main.void"
+ " main4(java.lang.String[])(Main.java:153)");
diff --git a/src/test/java/com/android/tools/r8/retrace/stacktraces/UnknownSourceStackTrace.java b/src/test/java/com/android/tools/r8/retrace/stacktraces/UnknownSourceStackTrace.java
index 3697b0c..a55423e 100644
--- a/src/test/java/com/android/tools/r8/retrace/stacktraces/UnknownSourceStackTrace.java
+++ b/src/test/java/com/android/tools/r8/retrace/stacktraces/UnknownSourceStackTrace.java
@@ -27,121 +27,28 @@
return Arrays.asList(
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" at com.android.tools.r8.R8.bar(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.bar(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.foo(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.foo(R8.java)",
+ " <OR> at com.android.tools.r8.R8.foo(R8.java)",
" ... 42 more");
}
@Override
public List<String> retraceVerboseStackTrace() {
return Arrays.asList(
- "There are 8 ambiguous stack traces.",
"com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" at com.android.tools.r8.R8.main(Unknown Source)",
"Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
" at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void bar(int,int)(R8.java)",
- " ... 42 more",
- "<OR> com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
- " at com.android.tools.r8.R8.main(Unknown Source)",
- "Caused by: com.android.tools.r8.CompilationException: foo[parens](Source:3)",
- " at com.android.tools.r8.R8.void foo(int)(R8.java)",
+ " <OR> at com.android.tools.r8.R8.void foo(int)(R8.java)",
" ... 42 more");
}