Also use monomorphic method states for interface methods
Change-Id: I983cb0222a8321766d456afb34f57474833b09f2
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java
index 6130e36..3343089 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/codescanner/VirtualRootMethodsAnalysisBase.java
@@ -226,15 +226,8 @@
VirtualRootMethod singleDispatchTarget = virtualRootMethod.getSingleDispatchTarget();
if (singleDispatchTarget != null) {
virtualRootMethod.forEach(
- method -> {
- // Interface methods can have siblings and can therefore not be mapped to their
- // unique non-abstract implementation, unless the interface method does not have
- // any siblings.
- setRootMethod(method, virtualRootMethod, singleDispatchTarget);
- });
- if (!singleDispatchTarget.getMethod().getHolder().isInterface()) {
- monomorphicVirtualNonRootMethods.add(singleDispatchTarget.getMethod());
- }
+ method -> setRootMethod(method, virtualRootMethod, singleDispatchTarget));
+ monomorphicVirtualNonRootMethods.add(singleDispatchTarget.getMethod());
} else {
virtualRootMethod.forEach(
method -> setRootMethod(method, virtualRootMethod, virtualRootMethod));