Fix inadequate rewriting of invoke-super after vertical class merging
Change-Id: I4e9a697bacc48e68454c61cdd472d4e1378f2a5a
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/ClassMerger.java b/src/main/java/com/android/tools/r8/verticalclassmerging/ClassMerger.java
index 166b1b1..bf8a075 100644
--- a/src/main/java/com/android/tools/r8/verticalclassmerging/ClassMerger.java
+++ b/src/main/java/com/android/tools/r8/verticalclassmerging/ClassMerger.java
@@ -546,8 +546,7 @@
DexMethod signatureInHolder = oldTargetReference.withHolder(holder, dexItemFactory);
// Only rewrite the invoke-super call if it does not lead to a NoSuchMethodError.
boolean resolutionSucceeds =
- holder.lookupVirtualMethod(signatureInHolder) != null
- || appView.appInfo().lookupSuperTarget(signatureInHolder, holder, appView) != null;
+ appView.appInfo().resolveMethodOnClass(holder, signatureInHolder).isSingleResolution();
if (resolutionSucceeds) {
deferredRenamings.mapVirtualMethodToDirectInType(
signatureInHolder, oldTarget, target.type);