Lookup in library first for trace references
Bug: 213453229
Change-Id: I0e8b9b1b3067090b8f4badd1095a46d1de99e8f7
diff --git a/src/main/java/com/android/tools/r8/graph/DexApplication.java b/src/main/java/com/android/tools/r8/graph/DexApplication.java
index d0a336a..67f8be4 100644
--- a/src/main/java/com/android/tools/r8/graph/DexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DexApplication.java
@@ -131,6 +131,7 @@
return flags;
}
+ @Override
public abstract DexClass definitionFor(DexType type);
public abstract DexProgramClass programDefinitionFor(DexType type);
diff --git a/src/main/java/com/android/tools/r8/tracereferences/TraceReferences.java b/src/main/java/com/android/tools/r8/tracereferences/TraceReferences.java
index b9cbec8..e911b47 100644
--- a/src/main/java/com/android/tools/r8/tracereferences/TraceReferences.java
+++ b/src/main/java/com/android/tools/r8/tracereferences/TraceReferences.java
@@ -67,7 +67,9 @@
for (ProgramResourceProvider provider : command.getSource()) {
forEachDescriptor(provider, targetDescriptors::remove);
}
- Tracer tracer = new Tracer(targetDescriptors, builder.build(), command.getReporter());
+ InternalOptions options = new InternalOptions();
+ options.lookupLibraryBeforeProgram = true;
+ Tracer tracer = new Tracer(targetDescriptors, builder.build(), command.getReporter(), options);
tracer.run(command.getConsumer());
}
diff --git a/src/main/java/com/android/tools/r8/tracereferences/Tracer.java b/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
index 43bdb0f..4650eb7 100644
--- a/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
+++ b/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
@@ -56,14 +56,16 @@
private final DiagnosticsHandler diagnostics;
private final Predicate<DexType> targetPredicate;
- Tracer(Set<String> targetDescriptors, AndroidApp inputApp, DiagnosticsHandler diagnostics)
+ Tracer(
+ Set<String> targetDescriptors,
+ AndroidApp inputApp,
+ DiagnosticsHandler diagnostics,
+ InternalOptions options)
throws IOException {
this(
AppView.createForTracer(
AppInfoWithClassHierarchy.createInitialAppInfoWithClassHierarchy(
- new ApplicationReader(inputApp, new InternalOptions(), Timing.empty())
- .read()
- .toDirect(),
+ new ApplicationReader(inputApp, options, Timing.empty()).read().toDirect(),
ClassToFeatureSplitMap.createEmptyClassToFeatureSplitMap(),
MainDexInfo.none())),
diagnostics,