Remove signature keys from additional mappings.
Change-Id: I190c2815800b6182fa45088a23eb5678ca04fee1
diff --git a/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java b/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
index 7ace45a..fb084f1 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
@@ -3,8 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.naming;
-import static com.android.tools.r8.naming.MemberNaming.NoSignature.NO_SIGNATURE;
-
import com.android.tools.r8.DiagnosticsHandler;
import com.android.tools.r8.naming.MemberNaming.FieldSignature;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
@@ -14,6 +12,7 @@
import com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics;
import com.android.tools.r8.utils.ChainableStringConsumer;
import com.android.tools.r8.utils.ThrowingConsumer;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import java.util.ArrayList;
@@ -41,7 +40,7 @@
private final Map<FieldSignature, MemberNaming> fieldMembers = Maps.newHashMap();
private final Map<String, List<MappedRange>> mappedRangesByName = Maps.newHashMap();
private final Map<String, List<MemberNaming>> mappedFieldNamingsByName = Maps.newHashMap();
- private final Map<Signature, List<MappingInformation>> additionalMappings = Maps.newHashMap();
+ private final List<MappingInformation> additionalMappings = new ArrayList<>();
private Builder(String renamedName, String originalName) {
this.originalName = originalName;
@@ -85,15 +84,12 @@
private ClassNaming.Builder addMappingInformation(
MappingInformation mappingInformation, Consumer<MappingInformation> notAllowedCombination) {
- Signature signature = NO_SIGNATURE;
- List<MappingInformation> additionalMappingForSignature =
- additionalMappings.computeIfAbsent(signature, ignored -> new ArrayList<>());
- for (MappingInformation information : additionalMappingForSignature) {
+ for (MappingInformation information : additionalMappings) {
if (!information.allowOther(mappingInformation)) {
notAllowedCombination.accept(information);
}
}
- additionalMappingForSignature.add(mappingInformation);
+ additionalMappings.add(mappingInformation);
return this;
}
@@ -117,7 +113,7 @@
fieldMembers,
map,
mappedFieldNamingsByName,
- additionalMappings);
+ ImmutableList.copyOf(additionalMappings));
}
/** The parameters are forwarded to MappedRange constructor, see explanation there. */
@@ -248,7 +244,7 @@
public final Map<String, List<MemberNaming>> mappedFieldNamingsByName;
- private final Map<Signature, List<MappingInformation>> additionalMappings;
+ private final ImmutableList<MappingInformation> additionalMappings;
private ClassNamingForNameMapper(
String renamedName,
@@ -257,13 +253,14 @@
Map<FieldSignature, MemberNaming> fieldMembers,
Map<String, MappedRangesOfName> mappedRangesByRenamedName,
Map<String, List<MemberNaming>> mappedFieldNamingsByName,
- Map<Signature, List<MappingInformation>> additionalMappings) {
+ ImmutableList<MappingInformation> additionalMappings) {
this.renamedName = renamedName;
this.originalName = originalName;
this.methodMembers = ImmutableMap.copyOf(methodMembers);
this.fieldMembers = ImmutableMap.copyOf(fieldMembers);
this.mappedRangesByRenamedName = mappedRangesByRenamedName;
this.mappedFieldNamingsByName = mappedFieldNamingsByName;
+ assert additionalMappings != null;
this.additionalMappings = additionalMappings;
}
@@ -353,13 +350,7 @@
consumer.accept(originalName).accept(" -> ").accept(renamedName).accept(":\n");
// Print all additional mapping information.
- additionalMappings.forEach(
- (signature, mappingInformations) -> {
- assert !mappingInformations.isEmpty();
- for (MappingInformation mappingInformation : mappingInformations) {
- consumer.accept("# " + mappingInformation.serialize()).accept("\n");
- }
- });
+ additionalMappings.forEach(info -> consumer.accept("# " + info.serialize()).accept("\n"));
// Print field member namings.
forAllFieldNaming(m -> consumer.accept(" ").accept(m.toString()).accept("\n"));
@@ -376,7 +367,7 @@
}
}
- public Map<Signature, List<MappingInformation>> getAdditionalMappings() {
+ public List<MappingInformation> getAdditionalMappings() {
return additionalMappings;
}
diff --git a/src/main/java/com/android/tools/r8/naming/MemberNaming.java b/src/main/java/com/android/tools/r8/naming/MemberNaming.java
index 4a50244..bf0a8dd 100644
--- a/src/main/java/com/android/tools/r8/naming/MemberNaming.java
+++ b/src/main/java/com/android/tools/r8/naming/MemberNaming.java
@@ -168,40 +168,6 @@
}
}
- public static class NoSignature extends Signature {
-
- public static final NoSignature NO_SIGNATURE = new NoSignature();
-
- private NoSignature() {
- super("NO SIGNATURE");
- }
-
- @Override
- Signature asRenamed(String renamedName) {
- throw new Unreachable("Should not be called on NoSignature");
- }
-
- @Override
- public SignatureKind kind() {
- throw new Unreachable("Should not be called on NoSignature");
- }
-
- @Override
- public boolean equals(Object o) {
- return o == this;
- }
-
- @Override
- public int hashCode() {
- return 7;
- }
-
- @Override
- void write(Writer builder) throws IOException {
- throw new Unreachable("Should not be called on NoSignature");
- }
- }
-
public static class FieldSignature extends Signature {
public final String type;
diff --git a/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java b/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
index 15fdfdc..6bbc26a 100644
--- a/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
+++ b/src/main/java/com/android/tools/r8/retrace/internal/RetraceClassResultImpl.java
@@ -4,7 +4,6 @@
package com.android.tools.r8.retrace.internal;
-import static com.android.tools.r8.naming.MemberNaming.NoSignature.NO_SIGNATURE;
import static com.android.tools.r8.retrace.internal.RetraceUtils.synthesizeFileName;
import com.android.tools.r8.naming.ClassNamingForNameMapper;
@@ -234,15 +233,11 @@
@Override
public RetraceSourceFileResultImpl retraceSourceFile(String sourceFile) {
- if (mapper != null && mapper.getAdditionalMappings().size() > 0) {
- List<MappingInformation> mappingInformations =
- mapper.getAdditionalMappings().get(NO_SIGNATURE);
- if (mappingInformations != null) {
- for (MappingInformation mappingInformation : mappingInformations) {
- if (mappingInformation.isFileNameInformation()) {
- return new RetraceSourceFileResultImpl(
- mappingInformation.asFileNameInformation().getFileName(), false);
- }
+ if (mapper != null) {
+ for (MappingInformation mappingInformation : mapper.getAdditionalMappings()) {
+ if (mappingInformation.isFileNameInformation()) {
+ return new RetraceSourceFileResultImpl(
+ mappingInformation.asFileNameInformation().getFileName(), false);
}
}
}
diff --git a/src/test/java/com/android/tools/r8/naming/MapReaderVersionTest.java b/src/test/java/com/android/tools/r8/naming/MapReaderVersionTest.java
index 86a99b5..36916ad 100644
--- a/src/test/java/com/android/tools/r8/naming/MapReaderVersionTest.java
+++ b/src/test/java/com/android/tools/r8/naming/MapReaderVersionTest.java
@@ -8,11 +8,9 @@
import com.android.tools.r8.TestBase;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.naming.MemberNaming.NoSignature;
import com.android.tools.r8.naming.mappinginformation.MappingInformation;
import com.android.tools.r8.utils.StringUtils;
import java.io.IOException;
-import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -81,10 +79,7 @@
}
private boolean isCompilerSynthesized(ClassNamingForNameMapper naming) {
- List<MappingInformation> infos = naming.getAdditionalMappings().get(NoSignature.NO_SIGNATURE);
- if (infos == null || infos.isEmpty()) {
- return false;
- }
- return infos.stream().anyMatch(MappingInformation::isCompilerSynthesizedMappingInformation);
+ return naming.getAdditionalMappings().stream()
+ .anyMatch(MappingInformation::isCompilerSynthesizedMappingInformation);
}
}
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
index 1763108..769760b 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundClassSubject.java
@@ -26,7 +26,6 @@
import com.android.tools.r8.naming.MemberNaming;
import com.android.tools.r8.naming.MemberNaming.FieldSignature;
import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.naming.MemberNaming.NoSignature;
import com.android.tools.r8.naming.MemberNaming.Signature;
import com.android.tools.r8.naming.mappinginformation.MappingInformation;
import com.android.tools.r8.naming.signature.GenericSignatureParser;
@@ -46,7 +45,6 @@
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
@@ -419,15 +417,7 @@
if (naming == null) {
return false;
}
- Map<Signature, List<MappingInformation>> additionalMappings = naming.getAdditionalMappings();
- if (additionalMappings == null) {
- return false;
- }
- List<MappingInformation> infos = additionalMappings.get(NoSignature.NO_SIGNATURE);
- if (infos == null) {
- return false;
- }
- for (MappingInformation info : infos) {
+ for (MappingInformation info : naming.getAdditionalMappings()) {
if (info.isCompilerSynthesizedMappingInformation()) {
return true;
}