Add missing is-target guard in trace references
Bug: b/391079661
Test: existing partial compilation tests
Change-Id: I42eed799c2ae88896993fd5afe5eda6a70e93514
diff --git a/src/main/java/com/android/tools/r8/tracereferences/UseCollector.java b/src/main/java/com/android/tools/r8/tracereferences/UseCollector.java
index f516990..87982aa 100644
--- a/src/main/java/com/android/tools/r8/tracereferences/UseCollector.java
+++ b/src/main/java/com/android/tools/r8/tracereferences/UseCollector.java
@@ -328,10 +328,12 @@
// For annotations in target handle annotation "methods" used to set values.
annotation.forEachElement(
element -> {
- for (DexEncodedMethod method : resolvedClass.methods()) {
- if (method.getName().isIdenticalTo(element.name)) {
- TracedMethodImpl tracedMethod = new TracedMethodImpl(method, referencedFrom);
- consumer.acceptMethod(tracedMethod, diagnostics);
+ if (isTargetType(resolvedClass.getType())) {
+ for (DexEncodedMethod method : resolvedClass.methods()) {
+ if (method.getName().isIdenticalTo(element.name)) {
+ TracedMethodImpl tracedMethod = new TracedMethodImpl(method, referencedFrom);
+ consumer.acceptMethod(tracedMethod, diagnostics);
+ }
}
}
// Handle the argument values passed to the annotation "method".