Update disassembler writing after updates to retrace
Bug: b/221855899
Change-Id: I531aa38a8be254084248a91eebd919006cbc5685
diff --git a/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java b/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
index 43ee151..c239b75 100644
--- a/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
+++ b/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
@@ -133,6 +133,9 @@
writeAnnotations(null, field.annotations(), ps);
ps.print(field.accessFlags + " ");
ps.print(retracer.toSourceString(field.getReference()));
+ if (!retracer.isEmpty()) {
+ ps.println("# Residual: '" + field.getReference().toSourceString() + "'");
+ }
if (field.isStatic() && field.hasExplicitStaticValue()) {
ps.print(" = " + field.getStaticValue());
}
@@ -153,7 +156,7 @@
writeAnnotations(null, definition.annotations(), ps);
ps.println("# " + definition.accessFlags);
if (!retracer.isEmpty()) {
- ps.println("# Residual: '" + definition.getReference().toSourceString());
+ ps.println("# Residual: '" + definition.getReference().toSourceString() + "'");
}
ps.println("#");
ps.println();
diff --git a/src/main/java/com/android/tools/r8/utils/RetracerForCodePrinting.java b/src/main/java/com/android/tools/r8/utils/RetracerForCodePrinting.java
index 1c5f9b3..fe301df 100644
--- a/src/main/java/com/android/tools/r8/utils/RetracerForCodePrinting.java
+++ b/src/main/java/com/android/tools/r8/utils/RetracerForCodePrinting.java
@@ -11,8 +11,6 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.IndexedDexItem;
import com.android.tools.r8.naming.ClassNameMapper;
-import com.android.tools.r8.references.FieldReference;
-import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.retrace.RetraceClassElement;
import com.android.tools.r8.retrace.RetraceElement;
import com.android.tools.r8.retrace.RetraceMethodResult;
@@ -81,12 +79,7 @@
if (retracer == null) {
return noRetraceString.apply(method);
}
- // TODO(b/169953605): Use retracer.retraceMethod() when we have enough information.
- MethodReference methodReference = method.asMethodReference();
- RetraceMethodResult retraceMethodResult =
- retracer
- .retraceClass(methodReference.getHolderClass())
- .lookupMethod(methodReference.getMethodName());
+ RetraceMethodResult retraceMethodResult = retracer.retraceMethod(method.asMethodReference());
return joinAmbiguousResults(
retraceMethodResult,
element -> {
@@ -124,12 +117,8 @@
if (retracer == null) {
return noRetraceString.apply(field);
}
- // TODO(b/169953605): Use retracer.retraceField() when we have enough information.
- FieldReference fieldReference = field.asFieldReference();
return joinAmbiguousResults(
- retracer
- .retraceClass(fieldReference.getHolderClass())
- .lookupField(fieldReference.getFieldName()),
+ retracer.retraceField(field.asFieldReference()),
element -> {
if (element.isUnknown()) {
return unknownToString.apply(element.getField());