Relax assertions regarding mapping file until we have additional support
The support being a way to represent changes to protos and classes
Bug: 122924648
Change-Id: Icf929159d20862dc67a527a64741a4c461b7e2b5
diff --git a/src/main/java/com/android/tools/r8/naming/MethodNamingState.java b/src/main/java/com/android/tools/r8/naming/MethodNamingState.java
index 2b78da9..e758dfc 100644
--- a/src/main/java/com/android/tools/r8/naming/MethodNamingState.java
+++ b/src/main/java/com/android/tools/r8/naming/MethodNamingState.java
@@ -6,8 +6,9 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.naming.MethodNamingState.InternalNewNameState;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
import java.util.Set;
import java.util.function.BiPredicate;
import java.util.function.Function;
@@ -69,8 +70,8 @@
}
boolean isAvailable(DexString candidate, DexMethod method) {
- DexString usedBy = getUsedBy(candidate, method);
- if (usedBy != null && usedBy.equals(method.name)) {
+ Set<DexString> usedBy = getUsedBy(candidate, method);
+ if (usedBy != null && usedBy.contains(method.name)) {
return true;
}
boolean isReserved = reservationState.isReserved(candidate, method);
@@ -86,9 +87,9 @@
return false;
}
- private DexString getUsedBy(DexString name, DexMethod method) {
+ private Set<DexString> getUsedBy(DexString name, DexMethod method) {
InternalNewNameState internalState = getInternalState(method);
- DexString nameUsedBy = null;
+ Set<DexString> nameUsedBy = null;
if (internalState != null) {
nameUsedBy = internalState.getUsedBy(name);
}
@@ -122,7 +123,8 @@
static class InternalNewNameState implements InternalNamingState {
private final InternalNewNameState parentInternalState;
- private BiMap<DexString, DexString> originalToRenamedNames = HashBiMap.create();
+ private Map<DexString, DexString> originalToRenamedNames = new HashMap<>();
+ private Map<DexString, Set<DexString>> usedBy = new HashMap<>();
private static final int INITIAL_NAME_COUNT = 1;
private static final int INITIAL_DICTIONARY_INDEX = 0;
@@ -151,8 +153,8 @@
return dictionaryIndex++;
}
- DexString getUsedBy(DexString name) {
- return originalToRenamedNames.inverse().get(name);
+ Set<DexString> getUsedBy(DexString name) {
+ return usedBy.get(name);
}
DexString getAssignedName(DexString originalName) {
@@ -161,6 +163,7 @@
void addRenaming(DexString newName, DexMethod method) {
originalToRenamedNames.put(method.name, newName);
+ usedBy.computeIfAbsent(newName, ignore -> new HashSet<>()).add(method.name);
}
private boolean checkParentPublicNameCountIsLessThanOrEqual() {
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
index e25d81e..37e5f39 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
@@ -478,7 +478,8 @@
source.toSourceString(),
name.toString(),
memberNaming == null ? Position.UNKNOWN : memberNaming.position);
- reporter.error(applyMappingError);
+ // TODO(b/136694827) Enable when we have proper support
+ // reporter.error(applyMappingError);
}
}
}
diff --git a/src/main/java/com/android/tools/r8/naming/SeedMapper.java b/src/main/java/com/android/tools/r8/naming/SeedMapper.java
index 8d0ece57..d7f36da 100644
--- a/src/main/java/com/android/tools/r8/naming/SeedMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/SeedMapper.java
@@ -107,20 +107,21 @@
descriptorToInternalName(classNaming.renamedName),
classNaming.position));
}
- Map<Signature, MemberNaming> seenMembers = new HashMap<>();
- classNaming.forAllMemberNaming(
- memberNaming -> {
- MemberNaming existingMember =
- seenMembers.put(memberNaming.renamedSignature, memberNaming);
- if (existingMember != null) {
- reporter.error(
- ProguardMapError.duplicateTargetSignature(
- existingMember.signature,
- memberNaming.signature,
- memberNaming.getRenamedName(),
- memberNaming.position));
- }
- });
+ // TODO(b/136694827) Enable when we have proper support
+ // Map<Signature, MemberNaming> seenMembers = new HashMap<>();
+ // classNaming.forAllMemberNaming(
+ // memberNaming -> {
+ // MemberNaming existingMember =
+ // seenMembers.put(memberNaming.renamedSignature, memberNaming);
+ // if (existingMember != null) {
+ // reporter.error(
+ // ProguardMapError.duplicateTargetSignature(
+ // existingMember.signature,
+ // memberNaming.signature,
+ // memberNaming.getRenamedName(),
+ // memberNaming.position));
+ // }
+ // });
}
reporter.failIfPendingErrors();
}