Delete MethodSignatureChangedInformation.
Change-Id: I4db015bc3f166e1a6e678db5a061baf80bf7c509
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 12ea2a6..7ace45a 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNamingForNameMapper.java
@@ -85,10 +85,7 @@
private ClassNaming.Builder addMappingInformation(
MappingInformation mappingInformation, Consumer<MappingInformation> notAllowedCombination) {
- Signature signature =
- mappingInformation.isSignatureMappingInformation()
- ? mappingInformation.asSignatureMappingInformation().getSignature()
- : NO_SIGNATURE;
+ Signature signature = NO_SIGNATURE;
List<MappingInformation> additionalMappingForSignature =
additionalMappings.computeIfAbsent(signature, ignored -> new ArrayList<>());
for (MappingInformation information : additionalMappingForSignature) {
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
index 1331fe5..d7ab9c8 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapReader.java
@@ -12,12 +12,10 @@
import com.android.tools.r8.naming.mappinginformation.MetaInfMappingInformation;
import com.android.tools.r8.naming.mappinginformation.ScopedMappingInformation.ClassScopeReference;
import com.android.tools.r8.naming.mappinginformation.ScopedMappingInformation.ScopeReference;
-import com.android.tools.r8.naming.mappinginformation.SignatureMappingInformation;
import com.android.tools.r8.position.TextPosition;
import com.android.tools.r8.references.Reference;
import com.android.tools.r8.utils.IdentifierUtils;
import com.android.tools.r8.utils.StringUtils;
-import com.google.common.collect.Maps;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.io.BufferedReader;
@@ -25,7 +23,6 @@
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
-import java.util.Map;
import java.util.Objects;
/**
@@ -282,7 +279,6 @@
MemberNaming lastAddedNaming = null;
MemberNaming activeMemberNaming = null;
Range previousMappedRange = null;
- Map<Signature, SignatureMappingInformation> mappingInformation = Maps.newHashMap();
do {
Object originalRange = null;
Range mappedRange = null;
@@ -290,10 +286,7 @@
if (isCommentLineWithJsonBrace()) {
MappingInformation mappingInfo = parseMappingInformation();
if (mappingInfo != null) {
- if (mappingInfo.isSignatureMappingInformation()) {
- SignatureMappingInformation sigMapInfo = mappingInfo.asSignatureMappingInformation();
- mappingInformation.put(sigMapInfo.getSignature(), sigMapInfo);
- } else if (mappingInfo.isScopedMappingInformation()) {
+ if (mappingInfo.isScopedMappingInformation()) {
mapBuilder.addScopedMappingInformation(mappingInfo.asScopedMappingInformation());
} else {
classNamingBuilder.addMappingInformation(mappingInfo, diagnosticsHandler, lineNo);
@@ -360,16 +353,8 @@
}
}
}
- if (mappingInformation.containsKey(signature)) {
- activeMemberNaming =
- new MemberNaming(
- signature,
- mappingInformation.get(signature).apply(signature, renamedName, diagnosticsHandler),
- getPosition());
- } else {
- activeMemberNaming =
- new MemberNaming(signature, signature.asRenamed(renamedName), getPosition());
- }
+ activeMemberNaming =
+ new MemberNaming(signature, signature.asRenamed(renamedName), getPosition());
previousMappedRange = mappedRange;
} while (nextLine());
diff --git a/src/main/java/com/android/tools/r8/naming/mappinginformation/MappingInformation.java b/src/main/java/com/android/tools/r8/naming/mappinginformation/MappingInformation.java
index 7a1d7b4..0ef03d0 100644
--- a/src/main/java/com/android/tools/r8/naming/mappinginformation/MappingInformation.java
+++ b/src/main/java/com/android/tools/r8/naming/mappinginformation/MappingInformation.java
@@ -44,14 +44,6 @@
return null;
}
- public boolean isSignatureMappingInformation() {
- return false;
- }
-
- public SignatureMappingInformation asSignatureMappingInformation() {
- return null;
- }
-
public boolean isFileNameInformation() {
return false;
}
@@ -60,14 +52,6 @@
return null;
}
- public boolean isMethodSignatureChangedInformation() {
- return false;
- }
-
- public MethodSignatureChangedInformation asMethodSignatureChangedInformation() {
- return null;
- }
-
public boolean isCompilerSynthesizedMappingInformation() {
return false;
}
@@ -115,9 +99,6 @@
case MetaInfMappingInformation.ID:
return MetaInfMappingInformation.deserialize(
version, object, diagnosticsHandler, lineNumber);
- case MethodSignatureChangedInformation.ID:
- return MethodSignatureChangedInformation.build(
- version, object, diagnosticsHandler, lineNumber);
case FileNameInformation.ID:
return FileNameInformation.build(version, object, diagnosticsHandler, lineNumber);
case CompilerSynthesizedMappingInformation.ID:
diff --git a/src/main/java/com/android/tools/r8/naming/mappinginformation/MethodSignatureChangedInformation.java b/src/main/java/com/android/tools/r8/naming/mappinginformation/MethodSignatureChangedInformation.java
deleted file mode 100644
index 2619b78..0000000
--- a/src/main/java/com/android/tools/r8/naming/mappinginformation/MethodSignatureChangedInformation.java
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.naming.mappinginformation;
-
-import static com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics.invalidParameterInformationObject;
-import static com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics.invalidValueForObjectWithId;
-import static com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics.tooManyEntriesForParameterInformation;
-import static com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics.tooManyInformationalParameters;
-
-import com.android.tools.r8.DiagnosticsHandler;
-import com.android.tools.r8.naming.MapVersion;
-import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.naming.MemberNaming.Signature;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-
-/**
- * The MethodSignatureChangedInformation structure adds extra information regarding the mapped
- * method signature that is otherwise not available in the existing proguard mapping format. The
- * JSON-structure is as follows:
- *
- * <pre>
- * {
- * "id": "argumentsChanged",
- * "signature": { methodSignature },
- * "returnType": "java.lang.String",
- * "receiver": false,
- * "params": [
- * [1], // <-- parameter with original index 1 (starting index based on receiver) is removed.
- * [2, Foo] // <-- parameter with index 2 has type Foo
- * ]
- * }
- * </pre>
- */
-public class MethodSignatureChangedInformation extends SignatureMappingInformation {
-
- private ParameterInformation[] argumentInfos;
- private final boolean receiver;
- private final String returnType;
- private final MethodSignature signature;
-
- public static final String ID = "methodSignatureChanged";
- private static final String RETURN_TYPE_KEY = "returnType";
- private static final String PARAMS_KEY = "params";
- private static final String RECEIVER_KEY = "receiver";
-
- @Override
- public String serialize() {
- JsonObject result = new JsonObject();
- serializeMethodSignature(result, signature);
- result.add(MAPPING_ID_KEY, new JsonPrimitive(ID));
- result.add(RECEIVER_KEY, new JsonPrimitive(receiver));
- result.add(RETURN_TYPE_KEY, new JsonPrimitive(returnType));
- JsonArray arguments = new JsonArray();
- for (ParameterInformation argInfo : argumentInfos) {
- arguments.add(argInfo.serialize());
- }
- result.add(PARAMS_KEY, arguments);
- return result.toString();
- }
-
- @Override
- public boolean allowOther(MappingInformation information) {
- return !information.isMethodSignatureChangedInformation();
- }
-
- @Override
- public Signature getSignature() {
- return signature;
- }
-
- @Override
- public Signature apply(
- Signature originalSignature, String renamedName, DiagnosticsHandler diagnosticsHandler) {
- if (originalSignature == null || !originalSignature.isMethodSignature()) {
- assert false : "Should only call apply for method signature";
- return originalSignature;
- }
- MethodSignature signature = originalSignature.asMethodSignature();
- String type = signature.type;
- String[] parameters = signature.parameters;
- int numberOfArgumentsRemoved = getNumberOfArgumentsRemoved();
- if (numberOfArgumentsRemoved > parameters.length) {
- // The mapping information is not up to date with the current signature.
- diagnosticsHandler.warning(tooManyInformationalParameters(getLineNumber()));
- return new MethodSignature(renamedName, type, parameters);
- }
- String[] newParameters = new String[parameters.length - numberOfArgumentsRemoved];
- int insertIndex = 0;
- for (int i = 0; i < parameters.length; i++) {
- ParameterInformation argInfo = getParameterInformation(i);
- if (argInfo != null && argInfo.getType() == null) {
- // Argument has been removed.
- } else {
- if (insertIndex >= newParameters.length) {
- // The mapping information is not up to date with the current signature.
- diagnosticsHandler.warning(tooManyInformationalParameters(getLineNumber()));
- return new MethodSignature(renamedName, type, parameters);
- } else if (argInfo == null) {
- // Unchanged, take current parameter.
- newParameters[insertIndex++] = parameters[i];
- } else {
- newParameters[insertIndex++] = argInfo.getType();
- }
- }
- }
- assert insertIndex == newParameters.length;
- return new MethodSignature(renamedName, getReturnType(), newParameters);
- }
-
- @Override
- public boolean isMethodSignatureChangedInformation() {
- return true;
- }
-
- public int getNumberOfArgumentsRemoved() {
- int removedCount = 0;
- for (ParameterInformation argInfo : argumentInfos) {
- if (argInfo.type == null) {
- removedCount++;
- }
- }
- return removedCount;
- }
-
- public boolean hasReceiver() {
- return receiver;
- }
-
- public String getReturnType() {
- return returnType;
- }
-
- public ParameterInformation getParameterInformation(int index) {
- int subtractIndex = receiver ? 1 : 0;
- for (int i = 0; i < argumentInfos.length; i++) {
- if (argumentInfos[i].index - subtractIndex == index) {
- return argumentInfos[i];
- }
- }
- return null;
- }
-
- @Override
- public MethodSignatureChangedInformation asMethodSignatureChangedInformation() {
- return this;
- }
-
- private MethodSignatureChangedInformation(
- MethodSignature signature,
- String returnType,
- boolean hasReceiver,
- ParameterInformation[] argumentInfos,
- int lineNumber) {
- super(lineNumber);
- this.signature = signature;
- this.argumentInfos = argumentInfos;
- this.returnType = returnType;
- this.receiver = hasReceiver;
- }
-
- public static MappingInformation build(
- MapVersion version,
- JsonObject object,
- DiagnosticsHandler diagnosticsHandler,
- int lineNumber) {
- if (version.isLessThan(MapVersion.MapVersionExperimental)) {
- return null;
- }
- try {
- JsonElement returnTypeElement =
- getJsonElementFromObject(object, diagnosticsHandler, lineNumber, RETURN_TYPE_KEY, ID);
- JsonElement receiverElement =
- getJsonElementFromObject(object, diagnosticsHandler, lineNumber, RECEIVER_KEY, ID);
- JsonElement argsElement =
- getJsonElementFromObject(object, diagnosticsHandler, lineNumber, PARAMS_KEY, ID);
- MethodSignature signature = getMethodSignature(object, ID, diagnosticsHandler, lineNumber);
- if (signature == null
- || returnTypeElement == null
- || receiverElement == null
- || argsElement == null) {
- return null;
- }
- JsonArray argumentsArray = argsElement.getAsJsonArray();
- if (argumentsArray == null) {
- return null;
- }
- ParameterInformation[] args = new ParameterInformation[argumentsArray.size()];
- for (int i = 0; i < argumentsArray.size(); i++) {
- args[i] =
- ParameterInformation.fromJsonArray(
- argumentsArray.get(i).getAsJsonArray(), diagnosticsHandler, lineNumber);
- }
- return new MethodSignatureChangedInformation(
- signature,
- returnTypeElement.getAsString(),
- receiverElement.getAsBoolean(),
- args,
- lineNumber);
- } catch (UnsupportedOperationException | IllegalStateException ignored) {
- diagnosticsHandler.info(invalidValueForObjectWithId(lineNumber, MAPPING_ID_KEY, ID));
- return null;
- }
- }
-
- public static class ParameterInformation {
- private final int index;
- private final String type;
-
- public int getIndex() {
- return index;
- }
-
- public String getType() {
- return type;
- }
-
- private ParameterInformation(int index, String type) {
- this.index = index;
- this.type = type;
- }
-
- static ParameterInformation fromJsonArray(
- JsonArray argumentInfo, DiagnosticsHandler diagnosticsHandler, int lineNumber) {
- assert argumentInfo != null;
- try {
- if (argumentInfo.size() > 2) {
- diagnosticsHandler.info(tooManyEntriesForParameterInformation(lineNumber));
- return null;
- }
- int index = argumentInfo.get(0).getAsInt();
- if (argumentInfo.size() == 1) {
- // This is a removed argument - no type information
- return new ParameterInformation(index, null);
- } else {
- return new ParameterInformation(index, argumentInfo.get(1).getAsString());
- }
- } catch (UnsupportedOperationException | IllegalStateException ignored) {
- diagnosticsHandler.info(invalidParameterInformationObject(lineNumber));
- return null;
- }
- }
-
- public static ParameterInformation buildRemovedParameterInformation(int index) {
- return new ParameterInformation(index, null);
- }
-
- public static ParameterInformation buildChangedParameterInformation(int index, String type) {
- return new ParameterInformation(index, type);
- }
-
- JsonArray serialize() {
- JsonArray serializedArray = new JsonArray();
- serializedArray.add(index);
- if (type != null) {
- serializedArray.add(type);
- }
- return serializedArray;
- }
- }
-}
diff --git a/src/main/java/com/android/tools/r8/naming/mappinginformation/SignatureMappingInformation.java b/src/main/java/com/android/tools/r8/naming/mappinginformation/SignatureMappingInformation.java
deleted file mode 100644
index aba33bb..0000000
--- a/src/main/java/com/android/tools/r8/naming/mappinginformation/SignatureMappingInformation.java
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (c) 2020, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-package com.android.tools.r8.naming.mappinginformation;
-
-import com.android.tools.r8.DiagnosticsHandler;
-import com.android.tools.r8.naming.MemberNaming.MethodSignature;
-import com.android.tools.r8.naming.MemberNaming.Signature;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-public abstract class SignatureMappingInformation extends MappingInformation {
-
- private static final String SIGNATURE_KEY = "signature";
-
- SignatureMappingInformation(int lineNumber) {
- super(lineNumber);
- }
-
- @Override
- public boolean isSignatureMappingInformation() {
- return true;
- }
-
- @Override
- public SignatureMappingInformation asSignatureMappingInformation() {
- return this;
- }
-
- public abstract Signature getSignature();
-
- public abstract Signature apply(
- Signature originalSignature, String renamedName, DiagnosticsHandler diagnosticsHandler);
-
- JsonObject serializeMethodSignature(JsonObject object, MethodSignature signature) {
- JsonArray signatureArr = new JsonArray();
- signatureArr.add(signature.type);
- signatureArr.add(signature.name);
- for (String parameter : signature.parameters) {
- signatureArr.add(parameter);
- }
- object.add(SIGNATURE_KEY, signatureArr);
- return object;
- }
-
- static MethodSignature getMethodSignature(
- JsonObject object, String id, DiagnosticsHandler diagnosticsHandler, int lineNumber) {
- JsonElement signatureElement =
- getJsonElementFromObject(object, diagnosticsHandler, lineNumber, SIGNATURE_KEY, id);
- if (signatureElement == null || !signatureElement.isJsonArray()) {
- return null;
- }
- // Signature will be [returnType, name, param1, param2, ...].
- JsonArray signature = signatureElement.getAsJsonArray();
- String[] parameters = new String[signature.size() - 2];
- for (int i = 2; i < signature.size(); i++) {
- parameters[i - 2] = signature.get(i).getAsString();
- }
- return new MethodSignature(
- signature.get(1).getAsString(), signature.get(0).getAsString(), parameters);
- }
-}
diff --git a/src/test/java/com/android/tools/r8/naming/ProguardMapReaderArgumentsTest.java b/src/test/java/com/android/tools/r8/naming/ProguardMapReaderArgumentsTest.java
index 6661215..6c7156d 100644
--- a/src/test/java/com/android/tools/r8/naming/ProguardMapReaderArgumentsTest.java
+++ b/src/test/java/com/android/tools/r8/naming/ProguardMapReaderArgumentsTest.java
@@ -7,10 +7,7 @@
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticPosition;
import static com.android.tools.r8.DiagnosticsMatcher.diagnosticType;
import static com.android.tools.r8.PositionMatcher.positionLine;
-import static junit.framework.TestCase.assertEquals;
-import static junit.framework.TestCase.assertFalse;
import static junit.framework.TestCase.assertNotNull;
-import static junit.framework.TestCase.assertTrue;
import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.core.StringContains.containsString;
@@ -18,14 +15,11 @@
import com.android.tools.r8.TestDiagnosticMessagesImpl;
import com.android.tools.r8.TestParameters;
import com.android.tools.r8.TestParametersCollection;
-import com.android.tools.r8.naming.MemberNaming.MethodSignature;
import com.android.tools.r8.naming.mappinginformation.MappingInformationDiagnostics;
import com.android.tools.r8.utils.Reporter;
import com.android.tools.r8.utils.StringUtils;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
-import java.util.List;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -39,21 +33,14 @@
return getTestParameters().withNoneRuntime().build();
}
- private Reporter reporter;
- private TestDiagnosticMessagesImpl testDiagnosticMessages;
-
public ProguardMapReaderArgumentsTest(TestParameters parameters) {
parameters.assertNoneRuntime();
}
- @Before
- public void setUp() {
- testDiagnosticMessages = new TestDiagnosticMessagesImpl();
- reporter = new Reporter(testDiagnosticMessages);
- }
-
@Test
public void testMethodCanParseMemberComments() throws IOException {
+ TestDiagnosticMessagesImpl testDiagnosticMessages = new TestDiagnosticMessagesImpl();
+ Reporter reporter = new Reporter(testDiagnosticMessages);
String mapWithArgumentRemovalInformation =
StringUtils.join(
"\n",
@@ -85,159 +72,4 @@
diagnosticPosition(positionLine(8)))))
.assertAllInfosMatch(diagnosticType(MappingInformationDiagnostics.class));
}
-
- @Test
- public void testMethodWillReportWhenParsingArgumentsChangedMemberComments() throws IOException {
- String mapWithArgumentRemovalInformation =
- StringUtils.joinLines(
- "# {'id':'com.android.tools.r8.metainf', 'map-version': 'experimental' }",
- "android.constraint.Placeholder -> a.b.b.f:",
- "# Just a comment", // Regular comment
- " int mContentId -> b",
- // Valid JSON but missing signature
- "# { 'id': 'methodSignatureChanged', "
- + "'signature': ['void', 'updatePreLayout', 'android.constraint.Layout'],"
- + "'returnType': [], 'receiver': true, 'params': []}",
- " 147:161:void updatePreLayout(android.constraint.Layout) -> a",
- // Valid JSON but not an argumentsChanged object
- "# { 'id': 'methodSignatureChanged', "
- + "'signature': ['void', 'updatePreLayout', 'android.constraint.Layout'],"
- + "'returnType': [], 'receiver': true, 'params': []}",
- " 147:161:void updatePreLayout(android.constraint.Layout) -> a",
- // Valid JSON but not an arguments_changed object.
- "# { 'id': 'methodSignatureChanged', "
- + "'signature': ['void','updatePreLayout','android.constraint.Layout'],"
- + "'returnType': 'foo', 'receiver': 1, 'params': 'foo' }",
- " 194:204:void updatePostMeasure(android.constraint.Layout) -> a")
- .replace("'", "\"");
- ClassNameMapper cnm =
- ClassNameMapper.mapperFromString(mapWithArgumentRemovalInformation, reporter);
- ClassNamingForNameMapper classNaming = cnm.getClassNaming("a.b.b.f");
- assertNotNull(classNaming);
- testDiagnosticMessages.assertOnlyInfos();
- testDiagnosticMessages
- .assertInfosMatch(
- ImmutableList.of(
- allOf(
- diagnosticMessage(containsString("Could not decode")),
- diagnosticPosition(positionLine(5))),
- allOf(
- diagnosticMessage(containsString("Could not decode")),
- diagnosticPosition(positionLine(7))),
- allOf(
- diagnosticMessage(containsString("Could not decode")),
- diagnosticPosition(positionLine(9)))))
- .assertAllInfosMatch(diagnosticType(MappingInformationDiagnostics.class));
- }
-
- @Test
- public void testMethodCanParseArgumentRemoval() throws IOException {
- String mapWithArgumentRemovalInformation =
- StringUtils.lines(
- "# { 'id': 'com.android.tools.r8.metainf', 'map-version': 'experimental' }",
- "android.constraint.Placeholder -> a.b.b.f:",
- " int mContentId -> b",
- "# { 'id': 'methodSignatureChanged',"
- + "'signature': ["
- + "'void','updatePreLayout','android.constraint.Layout','String','int'],"
- + " 'returnType': 'void', 'receiver': true, 'params':[[1],[2]]}",
- " 147:161:void updatePreLayout(android.constraint.Layout,String,int) -> a",
- "# {'id':'methodSignatureChanged',"
- + "'signature': ["
- + "'void','updatePreMeasure','android.constraint.Layout','String','int'],"
- + "'returnType': 'void', 'receiver': true, 'params':[[3]]}",
- " 162:173:void updatePreMeasure(android.constraint.Layout,String,int) -> a",
- " 194:204:void updatePostMeasure(android.constraint.Layout,String,int) -> a");
- ClassNameMapper cnm = ClassNameMapper.mapperFromString(mapWithArgumentRemovalInformation);
- ClassNamingForNameMapper classNaming = cnm.getClassNaming("a.b.b.f");
- assertNotNull(classNaming);
-
- List<MemberNaming> members = classNaming.lookupByOriginalName("mContentId");
- assertFalse(members.isEmpty());
- MemberNaming fieldContentId = members.get(0);
- assertNotNull(fieldContentId);
- assertTrue(!fieldContentId.isMethodNaming());
-
- members = classNaming.lookupByOriginalName("updatePreLayout");
- assertFalse(members.isEmpty());
- MemberNaming updatePreLayout = members.get(0);
- assertNotNull(updatePreLayout);
- assertTrue(updatePreLayout.isMethodNaming());
- MethodSignature renamedPreLayout = (MethodSignature) updatePreLayout.getRenamedSignature();
- assertEquals(1, renamedPreLayout.parameters.length);
- assertEquals("int", renamedPreLayout.parameters[0]);
-
- members = classNaming.lookupByOriginalName("updatePreMeasure");
- assertFalse(members.isEmpty());
- MemberNaming updatePreMeasure = members.get(0);
- assertNotNull(updatePreMeasure);
- assertTrue(updatePreMeasure.isMethodNaming());
- MethodSignature renamedPreMeasure = (MethodSignature) updatePreMeasure.getRenamedSignature();
- assertEquals(2, renamedPreMeasure.parameters.length);
- assertEquals("android.constraint.Layout", renamedPreMeasure.parameters[0]);
- assertEquals("String", renamedPreMeasure.parameters[1]);
-
- members = classNaming.lookupByOriginalName("updatePostMeasure");
- assertFalse(members.isEmpty());
- MemberNaming updatePostMeasure = members.get(0);
- assertNotNull(updatePostMeasure);
- assertTrue(updatePostMeasure.isMethodNaming());
- MethodSignature renamedPostMeasure = (MethodSignature) updatePostMeasure.getRenamedSignature();
- assertEquals(3, renamedPostMeasure.parameters.length);
- }
-
- @Test
- public void testMethodCanParseArgumentChanged() throws IOException {
- String mapWithArgumentRemovalInformation =
- StringUtils.joinLines(
- "# {'id':'com.android.tools.r8.metainf', 'map-version': 'experimental' }",
- "android.constraint.Placeholder -> a.b.b.f:",
- "# {'id':'methodSignatureChanged',"
- + "'signature':["
- + "'void','updatePreLayout','android.constraint.Layout','String','float'],"
- + "'returnType': 'void',"
- + "'receiver': true,"
- + "'params':[[1,int],[2,Foo]]}",
- "# {'id':'methodSignatureChanged',"
- + "'signature':["
- + "'void','updatePreMeasure','android.constraint.Layout','String','int'],"
- + "'returnType': 'void', "
- + "'receiver': true, "
- + "'params':[[2,com.baz.Bar],[3]]}",
- " 147:161:void updatePreLayout(android.constraint.Layout,String,float) -> a",
- " 162:173:void updatePreMeasure(android.constraint.Layout,String,int) -> a",
- " 194:204:void updatePostMeasure(android.constraint.Layout,String,int) -> a");
- ClassNameMapper cnm = ClassNameMapper.mapperFromString(mapWithArgumentRemovalInformation);
- ClassNamingForNameMapper classNaming = cnm.getClassNaming("a.b.b.f");
- assertNotNull(classNaming);
-
- List<MemberNaming> members = classNaming.lookupByOriginalName("updatePreLayout");
- assertFalse(members.isEmpty());
- MemberNaming updatePreLayout = members.get(0);
- assertNotNull(updatePreLayout);
- assertTrue(updatePreLayout.isMethodNaming());
- MethodSignature renamedPreLayout = (MethodSignature) updatePreLayout.getRenamedSignature();
- assertEquals(3, renamedPreLayout.parameters.length);
- assertEquals("int", renamedPreLayout.parameters[0]);
- assertEquals("Foo", renamedPreLayout.parameters[1]);
- assertEquals("float", renamedPreLayout.parameters[2]);
-
- members = classNaming.lookupByOriginalName("updatePreMeasure");
- assertFalse(members.isEmpty());
- MemberNaming updatePreMeasure = members.get(0);
- assertNotNull(updatePreMeasure);
- assertTrue(updatePreMeasure.isMethodNaming());
- MethodSignature renamedPreMeasure = (MethodSignature) updatePreMeasure.getRenamedSignature();
- assertEquals(2, renamedPreMeasure.parameters.length);
- assertEquals("android.constraint.Layout", renamedPreMeasure.parameters[0]);
- assertEquals("com.baz.Bar", renamedPreMeasure.parameters[1]);
-
- members = classNaming.lookupByOriginalName("updatePostMeasure");
- assertFalse(members.isEmpty());
- MemberNaming updatePostMeasure = members.get(0);
- assertNotNull(updatePostMeasure);
- assertTrue(updatePostMeasure.isMethodNaming());
- MethodSignature renamedPostMeasure = (MethodSignature) updatePostMeasure.getRenamedSignature();
- assertEquals(3, renamedPostMeasure.parameters.length);
- }
}