Add assertions in minifier for debugging b/131098601
Bug: 131098601
Change-Id: Ic932c8d4871bed5f43d82579723ebadc19fc13cc
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethod.java b/src/main/java/com/android/tools/r8/graph/DexMethod.java
index 964735a..332d0ea 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethod.java
@@ -163,21 +163,26 @@
@Override
public String toSourceString() {
- StringBuilder builder = new StringBuilder();
- builder.append(proto.returnType.toSourceString());
- builder.append(" ");
- builder.append(holder.toSourceString());
- builder.append(".");
- builder.append(name);
- builder.append("(");
+ return toSourceString(true);
+ }
+
+ public String toSourceStringWithoutHolder() {
+ return toSourceString(false);
+ }
+
+ private String toSourceString(boolean includeHolder) {
+ StringBuilder builder = new StringBuilder(proto.returnType.toSourceString()).append(" ");
+ if (includeHolder) {
+ builder.append(holder.toSourceString()).append(".");
+ }
+ builder.append(name).append("(");
for (int i = 0; i < getArity(); i++) {
if (i != 0) {
builder.append(", ");
}
builder.append(proto.parameters.values[i].toSourceString());
}
- builder.append(")");
- return builder.toString();
+ return builder.append(")").toString();
}
public boolean isLambdaDeserializeMethod(DexItemFactory dexItemFactory) {
diff --git a/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java b/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
index ee769f0..a43dcb8 100644
--- a/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
@@ -280,6 +280,13 @@
for (Wrapper<DexMethod> wrapper : unifiedMethods) {
DexMethod unifiedMethod = wrapper.get();
assert unifiedMethod != null;
+ assert globalStateMap.containsKey(wrapper)
+ : "Expected globalStateMap to contain " + unifiedMethod.toSourceStringWithoutHolder();
+ assert globalStateMap.get(wrapper) != null
+ : "Expected globalStateMap to map "
+ + unifiedMethod.toSourceStringWithoutHolder()
+ + " to a non-null MethodNamingState.";
+
for (MethodNamingState<?> namingState : globalStateMap.get(wrapper)) {
if (!namingState.isReserved(unifiedMethod.name, unifiedMethod.proto)) {
namingState.reserveName(unifiedMethod.name, unifiedMethod.proto);
@@ -364,6 +371,12 @@
for (Wrapper<DexMethod> wrapper : unifiedMethods) {
DexMethod unifiedMethod = wrapper.get();
assert unifiedMethod != null;
+ assert globalStateMap.containsKey(wrapper)
+ : "Expected globalStateMap to contain " + unifiedMethod.toSourceStringWithoutHolder();
+ assert globalStateMap.get(wrapper) != null
+ : "Expected globalStateMap to map "
+ + unifiedMethod.toSourceStringWithoutHolder()
+ + " to a non-null MethodNamingState.";
for (MethodNamingState<?> namingState : globalStateMap.get(wrapper)) {
if (namingState.isReserved(unifiedMethod.name, unifiedMethod.proto)) {