Update naming of the main api entry point of R8 retrace
Change-Id: Ibfd7d837031d02684ddf6180eff63deef483ef45
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 0cb273e..0689227 100644
--- a/src/main/java/com/android/tools/r8/retrace/Retrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retrace.java
@@ -141,13 +141,13 @@
ClassNameMapper.mapperFromString(
command.proguardMapProducer.get(), command.diagnosticsHandler);
timing.end();
- RetraceBase retraceBase = RetraceBaseImpl.create(classNameMapper);
+ RetraceApi retracer = Retracer.create(classNameMapper);
RetraceCommandLineResult result;
timing.begin("Parse and Retrace");
if (command.regularExpression != null) {
result =
new RetraceRegularExpression(
- retraceBase,
+ retracer,
command.stackTrace,
command.diagnosticsHandler,
command.regularExpression)
@@ -155,7 +155,7 @@
} else {
result =
new RetraceStackTrace(
- retraceBase, command.stackTrace, command.diagnosticsHandler, command.isVerbose)
+ retracer, command.stackTrace, command.diagnosticsHandler, command.isVerbose)
.retrace();
}
timing.end();
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceBase.java b/src/main/java/com/android/tools/r8/retrace/RetraceApi.java
similarity index 82%
rename from src/main/java/com/android/tools/r8/retrace/RetraceBase.java
rename to src/main/java/com/android/tools/r8/retrace/RetraceApi.java
index ee7d7ab..551dac4 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceBase.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceApi.java
@@ -4,12 +4,15 @@
package com.android.tools.r8.retrace;
+import com.android.tools.r8.KeepForSubclassing;
import com.android.tools.r8.references.ClassReference;
import com.android.tools.r8.references.FieldReference;
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.references.TypeReference;
-public interface RetraceBase {
+/** This is the main api interface for retrace. */
+@KeepForSubclassing
+public interface RetraceApi {
RetraceMethodResult retrace(MethodReference methodReference);
@@ -18,6 +21,4 @@
RetraceClassResult retrace(ClassReference classReference);
RetraceTypeResult retrace(TypeReference typeReference);
-
- RetraceSourceFileResult retraceSourceFile(ClassReference classReference, String sourceFile);
}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java b/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
index e2e78b2..b35bb12 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceRegularExpression.java
@@ -27,7 +27,7 @@
public class RetraceRegularExpression {
- private final RetraceBase retraceBase;
+ private final RetraceApi retracer;
private final List<String> stackTrace;
private final DiagnosticsHandler diagnosticsHandler;
private final String regularExpression;
@@ -52,11 +52,11 @@
private static final String CAPTURE_GROUP_PREFIX = "captureGroup";
RetraceRegularExpression(
- RetraceBase retraceBase,
+ RetraceApi retracer,
List<String> stackTrace,
DiagnosticsHandler diagnosticsHandler,
String regularExpression) {
- this.retraceBase = retraceBase;
+ this.retracer = retracer;
this.stackTrace = stackTrace;
this.diagnosticsHandler = diagnosticsHandler;
this.regularExpression = regularExpression;
@@ -73,7 +73,7 @@
Lists.newArrayList(RetraceStringBuilder.create(string).build());
if (matcher.matches()) {
for (RegularExpressionGroupHandler handler : handlers) {
- retracedStrings = handler.handleMatch(retracedStrings, matcher, retraceBase);
+ retracedStrings = handler.handleMatch(retracedStrings, matcher, retracer);
}
}
if (retracedStrings.isEmpty()) {
@@ -422,7 +422,7 @@
private interface RegularExpressionGroupHandler {
List<RetraceString> handleMatch(
- List<RetraceString> strings, Matcher matcher, RetraceBase retraceBase);
+ List<RetraceString> strings, Matcher matcher, RetraceApi retracer);
}
private abstract static class RegularExpressionGroup {
@@ -450,12 +450,12 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
String typeName = matcher.group(captureGroup);
- RetraceClassResult retraceResult = retraceBase.retrace(classFromMatch(typeName));
+ RetraceClassResult retraceResult = retracer.retrace(classFromMatch(typeName));
List<RetraceString> retracedStrings = new ArrayList<>();
for (RetraceString retraceString : strings) {
retraceResult.forEach(
@@ -537,7 +537,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -606,7 +606,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -660,7 +660,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -707,7 +707,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -808,7 +808,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -819,7 +819,7 @@
}
TypeReference typeReference = Reference.returnTypeFromDescriptor(descriptor);
List<RetraceString> retracedStrings = new ArrayList<>();
- RetraceTypeResult retracedType = retraceBase.retrace(typeReference);
+ RetraceTypeResult retracedType = retracer.retrace(typeReference);
for (RetraceString retraceString : strings) {
retracedType.forEach(
element -> {
@@ -854,7 +854,7 @@
@Override
RegularExpressionGroupHandler createHandler(String captureGroup) {
- return (strings, matcher, retraceBase) -> {
+ return (strings, matcher, retracer) -> {
if (matcher.start(captureGroup) == NO_MATCH) {
return strings;
}
@@ -872,7 +872,7 @@
}
TypeReference typeReference = Reference.returnTypeFromDescriptor(descriptor);
Set<List<TypeReference>> retracedTypes = new LinkedHashSet<>();
- retraceBase
+ retracer
.retrace(typeReference)
.forEach(
element -> {
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java b/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
index 719dd44..88d048f 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceStackTrace.java
@@ -86,17 +86,17 @@
}
}
- private final RetraceBase retraceBase;
+ private final RetraceApi retracer;
private final List<String> stackTrace;
private final DiagnosticsHandler diagnosticsHandler;
private final boolean verbose;
RetraceStackTrace(
- RetraceBase retraceBase,
+ RetraceApi retracer,
List<String> stackTrace,
DiagnosticsHandler diagnosticsHandler,
boolean verbose) {
- this.retraceBase = retraceBase;
+ this.retracer = retracer;
this.stackTrace = stackTrace;
this.diagnosticsHandler = diagnosticsHandler;
this.verbose = verbose;
@@ -117,7 +117,7 @@
return;
}
StackTraceLine stackTraceLine = parseLine(index + 1, stackTrace.get(index));
- List<StackTraceLine> retraced = stackTraceLine.retrace(retraceBase, verbose);
+ List<StackTraceLine> retraced = stackTraceLine.retrace(retracer, verbose);
StackTraceNode node = new StackTraceNode(retraced);
result.add(node);
retraceLine(stackTrace, index + 1, result);
@@ -125,7 +125,7 @@
abstract static class StackTraceLine {
- abstract List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose);
+ abstract List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose);
static int firstNonWhiteSpaceCharacterFromIndex(String line, int index) {
return firstFromIndex(line, index, not(Character::isWhitespace));
@@ -225,9 +225,9 @@
}
@Override
- List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+ List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
List<StackTraceLine> exceptionLines = new ArrayList<>();
- retraceBase
+ retracer
.retrace(Reference.classFromTypeName(exceptionClass))
.forEach(
element ->
@@ -397,31 +397,28 @@
}
@Override
- List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+ List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
List<StackTraceLine> lines = new ArrayList<>();
String retraceClassLoaderName = classLoaderName;
if (retraceClassLoaderName != null) {
ClassReference classLoaderReference = Reference.classFromTypeName(retraceClassLoaderName);
- retraceBase
+ retracer
.retrace(classLoaderReference)
.forEach(
classElement -> {
retraceClassAndMethods(
- retraceBase, verbose, lines, classElement.getClassReference().getTypeName());
+ retracer, verbose, lines, classElement.getClassReference().getTypeName());
});
} else {
- retraceClassAndMethods(retraceBase, verbose, lines, retraceClassLoaderName);
+ retraceClassAndMethods(retracer, verbose, lines, retraceClassLoaderName);
}
return lines;
}
private void retraceClassAndMethods(
- RetraceBase retraceBase,
- boolean verbose,
- List<StackTraceLine> lines,
- String classLoaderName) {
+ RetraceApi retracer, boolean verbose, List<StackTraceLine> lines, String classLoaderName) {
ClassReference classReference = Reference.classFromTypeName(clazz);
- RetraceClassResult classResult = retraceBase.retrace(classReference);
+ RetraceClassResult classResult = retracer.retrace(classReference);
RetraceMethodResult retraceResult = classResult.lookupMethod(method);
if (linePosition != NO_POSITION && linePosition != INVALID_POSITION) {
retraceResult = retraceResult.narrowByLine(linePosition);
@@ -509,7 +506,7 @@
}
@Override
- List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+ List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
return ImmutableList.of(new MoreLine(line));
}
@@ -562,9 +559,9 @@
}
@Override
- List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+ List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
List<StackTraceLine> exceptionLines = new ArrayList<>();
- retraceBase
+ retracer
.retrace(Reference.classFromTypeName(exceptionClass))
.forEach(
element ->
@@ -590,7 +587,7 @@
}
@Override
- List<StackTraceLine> retrace(RetraceBase retraceBase, boolean verbose) {
+ List<StackTraceLine> retrace(RetraceApi retracer, boolean verbose) {
return ImmutableList.of(new UnknownLine(line));
}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java b/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
index 2ab72a7..8ea169f 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
+++ b/src/main/java/com/android/tools/r8/retrace/RetraceTypeResult.java
@@ -13,11 +13,11 @@
public class RetraceTypeResult extends Result<Element, RetraceTypeResult> {
private final TypeReference obfuscatedType;
- private final RetraceBase retraceBase;
+ private final RetraceApi retracer;
- RetraceTypeResult(TypeReference obfuscatedType, RetraceBase retraceBase) {
+ RetraceTypeResult(TypeReference obfuscatedType, RetraceApi retracer) {
this.obfuscatedType = obfuscatedType;
- this.retraceBase = retraceBase;
+ this.retracer = retracer;
}
@Override
@@ -28,10 +28,10 @@
}
if (obfuscatedType.isArray()) {
int dimensions = obfuscatedType.asArray().getDimensions();
- return retraceBase.retrace(obfuscatedType.asArray().getBaseType()).stream()
+ return retracer.retrace(obfuscatedType.asArray().getBaseType()).stream()
.map(base -> new Element(Reference.array(base.getTypeReference(), dimensions)));
}
- return retraceBase.retrace(obfuscatedType.asClass()).stream()
+ return retracer.retrace(obfuscatedType.asClass()).stream()
.map(clazz -> new Element(clazz.getClassReference()));
}
diff --git a/src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java b/src/main/java/com/android/tools/r8/retrace/Retracer.java
similarity index 68%
rename from src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java
rename to src/main/java/com/android/tools/r8/retrace/Retracer.java
index 1561457..b2dad89 100644
--- a/src/main/java/com/android/tools/r8/retrace/RetraceBaseImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/Retracer.java
@@ -4,23 +4,25 @@
package com.android.tools.r8.retrace;
+import com.android.tools.r8.Keep;
import com.android.tools.r8.naming.ClassNameMapper;
import com.android.tools.r8.references.ClassReference;
import com.android.tools.r8.references.FieldReference;
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.references.TypeReference;
-import com.android.tools.r8.utils.Box;
-public class RetraceBaseImpl implements RetraceBase {
+/** A default implementation for the retrace api using the ClassNameMapper defined in R8. */
+@Keep
+public class Retracer implements RetraceApi {
private final ClassNameMapper classNameMapper;
- private RetraceBaseImpl(ClassNameMapper classNameMapper) {
+ private Retracer(ClassNameMapper classNameMapper) {
this.classNameMapper = classNameMapper;
}
- public static RetraceBase create(ClassNameMapper classNameMapper) {
- return new RetraceBaseImpl(classNameMapper);
+ public static RetraceApi create(ClassNameMapper classNameMapper) {
+ return new Retracer(classNameMapper);
}
@Override
@@ -40,15 +42,6 @@
}
@Override
- public RetraceSourceFileResult retraceSourceFile(
- ClassReference classReference, String sourceFile) {
- Box<RetraceSourceFileResult> retracedSourceFile = new Box<>();
- retrace(classReference)
- .forEach(element -> retracedSourceFile.set(element.retraceSourceFile(sourceFile)));
- return retracedSourceFile.get();
- }
-
- @Override
public RetraceTypeResult retrace(TypeReference typeReference) {
return new RetraceTypeResult(typeReference, this);
}
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
index 43ba1fb..1428897 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CodeInspector.java
@@ -38,8 +38,8 @@
import com.android.tools.r8.references.FieldReference;
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.references.Reference;
-import com.android.tools.r8.retrace.RetraceBase;
-import com.android.tools.r8.retrace.RetraceBaseImpl;
+import com.android.tools.r8.retrace.RetraceApi;
+import com.android.tools.r8.retrace.Retracer;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.BiMapContainer;
import com.android.tools.r8.utils.DescriptorUtils;
@@ -481,7 +481,7 @@
}
}
- public RetraceBase retrace() {
- return RetraceBaseImpl.create(mapping);
+ public RetraceApi retrace() {
+ return Retracer.create(mapping);
}
}
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
index bfcda02..ad9b5c2 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/InstructionSubject.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.retrace.RetraceBase;
+import com.android.tools.r8.retrace.RetraceApi;
import com.android.tools.r8.retrace.RetraceMethodResult;
public interface InstructionSubject {
@@ -129,18 +129,17 @@
return lineNumberTable == null ? -1 : lineNumberTable.getLineForInstruction(this);
}
- default RetraceMethodResult retrace(RetraceBase retraceBase) {
+ default RetraceMethodResult retrace(RetraceApi retracer) {
MethodSubject methodSubject = getMethodSubject();
assert methodSubject.isPresent();
- return retraceBase.retrace(methodSubject.asFoundMethodSubject().asMethodReference());
+ return retracer.retrace(methodSubject.asFoundMethodSubject().asMethodReference());
}
- default RetraceMethodResult retraceLinePosition(RetraceBase retraceBase) {
- return retrace(retraceBase).narrowByLine(getLineNumber());
+ default RetraceMethodResult retraceLinePosition(RetraceApi retracer) {
+ return retrace(retracer).narrowByLine(getLineNumber());
}
- default RetraceMethodResult retracePcPosition(
- RetraceBase retraceBase, MethodSubject methodSubject) {
- return retrace(retraceBase).narrowByLine(getOffset(methodSubject).offset);
+ default RetraceMethodResult retracePcPosition(RetraceApi retracer, MethodSubject methodSubject) {
+ return retrace(retracer).narrowByLine(getOffset(methodSubject).offset);
}
}