Remove check subsumed by accurate instance instantiation tracking.
The check for interfaces is likely a conservative check introduced when
R8 did not precisely track interface allocations and incomplete
hierarchies.
Change-Id: Ib5926e247217736442af8c885a92ea0b3e9993a3
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 28c2602..b4fef63 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -4098,10 +4098,9 @@
// When generating interface bridges the method may be inserted into a live hierarchy.
// If so we need to also mark it as live as the reachable check above will not reprocess the
// hierarchy.
- // TODO(b/183998768): The check for isInterface here should be possible to remove now.
if (definition.isNonAbstractVirtualMethod()
- && (objectAllocationInfoCollection.isInstantiatedDirectlyOrHasInstantiatedSubtype(holder)
- || holder.isInterface())) {
+ && objectAllocationInfoCollection.isInstantiatedDirectlyOrHasInstantiatedSubtype(
+ holder)) {
// TODO(b/120959039): Codify the kept-graph expectations for these cases in tests.
markVirtualMethodAsLive(target, reason);
}