Revert "Verify mapping of field and method signatures to original program"
This reverts commit f70096dc1e82dfb858d302c32ab147320729ee58.
Reason for revert: Newly introduced assertion is causing `./tools/gradle.py r8LibMain` to fail.
Change-Id: I22fec36e7a49fcfdc05a06c2d3fd25ae3d2982d3
diff --git a/src/main/java/com/android/tools/r8/JarSizeCompare.java b/src/main/java/com/android/tools/r8/JarSizeCompare.java
index 2aa124a..aa16b1f 100644
--- a/src/main/java/com/android/tools/r8/JarSizeCompare.java
+++ b/src/main/java/com/android/tools/r8/JarSizeCompare.java
@@ -332,7 +332,7 @@
MethodSignature originalSignature =
proguardMap == null
? null
- : proguardMap.originalSignatureOf(dexEncodedMethod.method);
+ : ((MethodSignature) proguardMap.originalSignatureOf(dexEncodedMethod.method));
MethodSignature signature = MethodSignature.fromDexMethod(dexEncodedMethod.method);
consumer.accept(
originalSignature == null ? signature : originalSignature, dexEncodedMethod);
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 57eabe6..228c0e5 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -607,13 +607,6 @@
// Validity checks.
assert application.classes().stream().allMatch(DexClass::isValid);
assert rootSet.verifyKeptItemsAreKept(application, appView.appInfo(), options);
- assert appView
- .graphLense()
- .verifyMappingToOriginalProgram(
- application.classesWithDeterministicOrder(),
- new ApplicationReader(inputApp.withoutMainDexList(), options, timing)
- .read(executorService),
- appView.dexItemFactory());
// Generate the resulting application resources.
writeApplication(
diff --git a/src/main/java/com/android/tools/r8/cf/CfPrinter.java b/src/main/java/com/android/tools/r8/cf/CfPrinter.java
index 5be17c6..79ea482 100644
--- a/src/main/java/com/android/tools/r8/cf/CfPrinter.java
+++ b/src/main/java/com/android/tools/r8/cf/CfPrinter.java
@@ -716,7 +716,7 @@
private void appendMethod(DexMethod method) {
if (mapper != null) {
- MethodSignature signature = mapper.originalSignatureOf(method);
+ MethodSignature signature = (MethodSignature) mapper.originalSignatureOf(method);
builder.append(mapper.originalNameOf(method.holder)).append('.');
builder.append(signature.name).append(signature.toDescriptor());
return;
diff --git a/src/main/java/com/android/tools/r8/graph/DexType.java b/src/main/java/com/android/tools/r8/graph/DexType.java
index 31edee9..1d7555d 100644
--- a/src/main/java/com/android/tools/r8/graph/DexType.java
+++ b/src/main/java/com/android/tools/r8/graph/DexType.java
@@ -3,16 +3,10 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.graph;
-import static com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.COMPANION_CLASS_NAME_SUFFIX;
-import static com.android.tools.r8.ir.desugar.InterfaceMethodRewriter.DISPATCH_CLASS_NAME_SUFFIX;
-import static com.android.tools.r8.ir.desugar.LambdaRewriter.LAMBDA_CLASS_NAME_PREFIX;
-import static com.android.tools.r8.ir.desugar.LambdaRewriter.LAMBDA_GROUP_CLASS_NAME_PREFIX;
-
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.DescriptorUtils;
-import com.android.tools.r8.utils.InternalOptions.OutlineOptions;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
@@ -447,15 +441,6 @@
return isPrimitiveType((char) descriptor.content[1]);
}
- public boolean isD8R8SynthesizedClassType() {
- String name = toSourceString();
- return name.contains(COMPANION_CLASS_NAME_SUFFIX)
- || name.contains(DISPATCH_CLASS_NAME_SUFFIX)
- || name.contains(LAMBDA_CLASS_NAME_PREFIX)
- || name.contains(LAMBDA_GROUP_CLASS_NAME_PREFIX)
- || name.contains(OutlineOptions.CLASS_NAME);
- }
-
public int elementSizeForPrimitiveArrayType() {
assert isPrimitiveArrayType();
switch (descriptor.content[1]) {
diff --git a/src/main/java/com/android/tools/r8/graph/GraphLense.java b/src/main/java/com/android/tools/r8/graph/GraphLense.java
index b72c91e..247a5fe 100644
--- a/src/main/java/com/android/tools/r8/graph/GraphLense.java
+++ b/src/main/java/com/android/tools/r8/graph/GraphLense.java
@@ -12,7 +12,6 @@
import com.google.common.collect.HashBiMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.ImmutableSortedSet;
-import com.google.common.collect.Sets;
import it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap;
import it.unimi.dsi.fastutil.objects.Object2BooleanMap;
import java.util.Collections;
@@ -522,51 +521,6 @@
return builder.build();
}
- public boolean verifyMappingToOriginalProgram(
- Iterable<DexProgramClass> classes,
- DexApplication originalApplication,
- DexItemFactory dexItemFactory) {
- // Collect all original fields and methods for efficient querying.
- Set<DexField> originalFields = Sets.newIdentityHashSet();
- Set<DexMethod> originalMethods = Sets.newIdentityHashSet();
- for (DexProgramClass clazz : originalApplication.classes()) {
- for (DexEncodedField field : clazz.fields()) {
- originalFields.add(field.field);
- }
- for (DexEncodedMethod method : clazz.methods()) {
- originalMethods.add(method.method);
- }
- }
-
- // Check that all fields and methods in the generated program can be mapped back to one of the
- // original fields or methods.
- for (DexProgramClass clazz : classes) {
- if (clazz.type.isD8R8SynthesizedClassType()) {
- continue;
- }
- for (DexEncodedField field : clazz.fields()) {
- DexField originalField = getOriginalFieldSignature(field.field);
- assert originalFields.contains(originalField)
- : "Unable to map field `" + field.field.toSourceString() + "` back to original program";
- }
- for (DexEncodedMethod method : clazz.methods()) {
- if (method.accessFlags.isSynthetic()) {
- // This could be a bridge that has been inserted, for example, as a result of member
- // rebinding. Consider only skipping the check below for methods that have been
- // synthesized by R8.
- continue;
- }
- DexMethod originalMethod = getOriginalMethodSignature(method.method);
- assert originalMethods.contains(originalMethod)
- : "Unable to map method `"
- + originalMethod.toSourceString()
- + "` back to original program";
- }
- }
-
- return true;
- }
-
private static class IdentityGraphLense extends GraphLense {
private static IdentityGraphLense INSTANCE = new IdentityGraphLense();
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
index 2aa8641..b92d772 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
@@ -51,7 +51,6 @@
// Public for testing.
public static final String LAMBDA_CLASS_NAME_PREFIX = "-$$Lambda$";
- public static final String LAMBDA_GROUP_CLASS_NAME_PREFIX = "-$$LambdaGroup$";
static final String EXPECTED_LAMBDA_METHOD_PREFIX = "lambda$";
static final String LAMBDA_INSTANCE_FIELD_NAME = "INSTANCE";
diff --git a/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java b/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
index d192f99..c1afba9 100644
--- a/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
+++ b/src/main/java/com/android/tools/r8/naming/ClassNameMapper.java
@@ -242,7 +242,7 @@
return classNaming.originalName + " " + memberNaming.signature.toString();
}
- public MethodSignature originalSignatureOf(DexMethod method) {
+ public Signature originalSignatureOf(DexMethod method) {
String decoded = descriptorToJavaType(method.holder.descriptor.toString());
MethodSignature memberSignature = getRenamedMethodSignature(method);
ClassNaming classNaming = getClassNaming(decoded);
@@ -253,7 +253,7 @@
if (memberNaming == null) {
return memberSignature;
}
- return (MethodSignature) memberNaming.signature;
+ return memberNaming.signature;
}
public FieldSignature originalSignatureOf(DexField field) {
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapApplier.java b/src/main/java/com/android/tools/r8/naming/ProguardMapApplier.java
index d5add45..6232fb3 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapApplier.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapApplier.java
@@ -214,7 +214,7 @@
applyClassMappingOnTheFly(originalField.clazz),
applyClassMappingOnTheFly(originalField.type),
appInfo.dexItemFactory.createString(appliedSignature.name));
- lenseBuilder.move(originalField, appliedField);
+ lenseBuilder.map(originalField, appliedField);
}
private void applyMethodMapping(DexMethod originalMethod, MemberNaming memberNaming) {
@@ -224,7 +224,7 @@
applyClassMappingOnTheFly(originalMethod.holder),
applyClassMappingOnTheFly(originalMethod.proto),
appInfo.dexItemFactory.createString(appliedSignature.name));
- lenseBuilder.move(originalMethod, appliedMethod);
+ lenseBuilder.map(originalMethod, appliedMethod);
}
private DexType applyClassMappingOnTheFly(DexType from) {
@@ -336,7 +336,7 @@
if (newHolderType != appliedMethod.holder || newProto != appliedMethod.proto) {
newMethod = appInfo.dexItemFactory.createMethod(
substituteType(newHolderType, encodedMethod), newProto, appliedMethod.name);
- lenseBuilder.move(encodedMethod.method, newMethod);
+ lenseBuilder.map(encodedMethod.method, newMethod);
} else {
newMethod = appliedMethod;
}
@@ -359,7 +359,7 @@
if (newHolderType != appliedField.clazz || newFieldType != appliedField.type) {
newField = appInfo.dexItemFactory.createField(
substituteType(newHolderType, null), newFieldType, appliedField.name);
- lenseBuilder.move(encodedField.field, newField);
+ lenseBuilder.map(encodedField.field, newField);
} else {
newField = appliedField;
}
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApp.java b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
index 28d1628..49573db 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApp.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApp.java
@@ -279,19 +279,6 @@
return mainDexClasses;
}
- /** Returns a copy of this AndroidApp that does not have a main dex list. */
- public AndroidApp withoutMainDexList() {
- return new AndroidApp(
- programResourceProviders,
- programResourcesMainDescriptor,
- classpathResourceProviders,
- libraryResourceProviders,
- archiveProvidersToClose,
- proguardMapOutputData,
- ImmutableList.of(),
- ImmutableList.of());
- }
-
/**
* Write the dex program resources and proguard resource to @code{output}.
*/