Fix missing collision check in class merging fixup
Fixes: b/318341023
Change-Id: I015d5a1961a116858f3f4b0931fabe05a6bb592e
diff --git a/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java b/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java
index 8bf6828..0417118 100644
--- a/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java
+++ b/src/main/java/com/android/tools/r8/classmerging/ClassMergerTreeFixer.java
@@ -184,8 +184,9 @@
if (newMethodSignature == null) {
newMethodSignature = fixupMethodReference(originalMethodReference).getSignature();
- // If the signature is already reserved by another interface, find a fresh one.
- if (reservedInterfaceSignatures.containsValue(newMethodSignature)) {
+ // If the signature is kept or already reserved by another interface, find a fresh one.
+ if (keptSignatures.contains(newMethodSignature)
+ || reservedInterfaceSignatures.containsValue(newMethodSignature)) {
DexString name =
dexItemFactory.createGloballyFreshMemberString(
originalMethodReference.getName().toSourceString());