Mark synthesized bridges as library method overrides
Change-Id: I518a1e24304934e8adf243307f0703f11ac3c171
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index 6a6e4bb..9df6b42 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -2478,11 +2478,15 @@
return;
}
DexEncodedMethod methodToKeep = action.getMethodToKeep();
+ DexEncodedMethod singleTarget = action.getSingleTarget();
DexClass clazz = getProgramClassOrNull(methodToKeep.method.holder);
- if (methodToKeep != action.getSingleTarget()) {
+ if (methodToKeep != singleTarget) {
// Insert a bridge method.
if (appView.definitionFor(methodToKeep.method) == null) {
clazz.appendVirtualMethod(methodToKeep);
+ if (singleTarget.isLibraryMethodOverride().isTrue()) {
+ methodToKeep.setLibraryMethodOverride(OptionalBool.TRUE);
+ }
appView.appInfo().invalidateTypeCacheFor(methodToKeep.method.holder);
// The addition of a bridge method can lead to a change of resolution, thus the cached
// resolution targets are invalid.