Move lens verification to VerticalClassMergerGraphLens

Change-Id: I624369c5dd91adc1d6542130d93d4c40c90c9e8c
diff --git a/src/main/java/com/android/tools/r8/graph/lens/GraphLens.java b/src/main/java/com/android/tools/r8/graph/lens/GraphLens.java
index d0f23ae..96948b9 100644
--- a/src/main/java/com/android/tools/r8/graph/lens/GraphLens.java
+++ b/src/main/java/com/android/tools/r8/graph/lens/GraphLens.java
@@ -26,10 +26,7 @@
 import com.android.tools.r8.ir.optimize.enums.EnumUnboxingLens;
 import com.android.tools.r8.optimize.MemberRebindingIdentityLens;
 import com.android.tools.r8.optimize.MemberRebindingLens;
-import com.android.tools.r8.shaking.AppInfoWithLiveness;
-import com.android.tools.r8.shaking.KeepInfoCollection;
 import com.android.tools.r8.utils.CollectionUtils;
-import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.ListUtils;
 import com.android.tools.r8.utils.SetUtils;
 import com.android.tools.r8.utils.Timing;
@@ -43,7 +40,6 @@
 import it.unimi.dsi.fastutil.objects.Object2BooleanArrayMap;
 import it.unimi.dsi.fastutil.objects.Object2BooleanMap;
 import java.util.ArrayDeque;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Deque;
 import java.util.IdentityHashMap;
@@ -472,35 +468,6 @@
     return true;
   }
 
-  public <T extends DexReference> boolean assertPinnedNotModified(
-      AppView<AppInfoWithLiveness> appView) {
-    List<DexReference> pinnedItems = new ArrayList<>();
-    KeepInfoCollection keepInfo = appView.getKeepInfo();
-    InternalOptions options = appView.options();
-    keepInfo.forEachPinnedType(pinnedItems::add, options);
-    keepInfo.forEachPinnedMethod(pinnedItems::add, options);
-    keepInfo.forEachPinnedField(pinnedItems::add, options);
-    return assertReferencesNotModified(pinnedItems);
-  }
-
-  @SuppressWarnings("ReferenceEquality")
-  public <T extends DexReference> boolean assertReferencesNotModified(Iterable<T> references) {
-    for (DexReference reference : references) {
-      if (reference.isDexField()) {
-        DexField field = reference.asDexField();
-        assert getRenamedFieldSignature(field) == field;
-      } else if (reference.isDexMethod()) {
-        DexMethod method = reference.asDexMethod();
-        assert getRenamedMethodSignature(method) == method;
-      } else {
-        assert reference.isDexType();
-        DexType type = reference.asDexType();
-        assert lookupType(type) == type;
-      }
-    }
-    return true;
-  }
-
   public Map<DexCallSite, ProgramMethodSet> rewriteCallSites(
       Map<DexCallSite, ProgramMethodSet> callSites,
       DexDefinitionSupplier definitions,
diff --git a/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerGraphLens.java b/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerGraphLens.java
index c9bc89b..994795d 100644
--- a/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerGraphLens.java
+++ b/src/main/java/com/android/tools/r8/verticalclassmerging/VerticalClassMergerGraphLens.java
@@ -14,6 +14,7 @@
 import com.android.tools.r8.graph.DexField;
 import com.android.tools.r8.graph.DexMethod;
 import com.android.tools.r8.graph.DexProgramClass;
+import com.android.tools.r8.graph.DexReference;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.graph.ProgramMethod;
 import com.android.tools.r8.graph.lens.GraphLens;
@@ -23,6 +24,9 @@
 import com.android.tools.r8.ir.code.InvokeType;
 import com.android.tools.r8.ir.conversion.ExtraParameter;
 import com.android.tools.r8.ir.conversion.ExtraUnusedNullParameter;
+import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.shaking.KeepInfoCollection;
+import com.android.tools.r8.utils.InternalOptions;
 import com.android.tools.r8.utils.IterableUtils;
 import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeHashMap;
 import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeMap;
@@ -313,6 +317,29 @@
     return true;
   }
 
+  public boolean assertPinnedNotModified(AppView<AppInfoWithLiveness> appView) {
+    KeepInfoCollection keepInfo = appView.getKeepInfo();
+    InternalOptions options = appView.options();
+    keepInfo.forEachPinnedType(this::assertReferenceNotModified, options);
+    keepInfo.forEachPinnedMethod(this::assertReferenceNotModified, options);
+    keepInfo.forEachPinnedField(this::assertReferenceNotModified, options);
+    return true;
+  }
+
+  private void assertReferenceNotModified(DexReference reference) {
+    if (reference.isDexField()) {
+      DexField field = reference.asDexField();
+      assert getNextFieldSignature(field).isIdenticalTo(field);
+    } else if (reference.isDexMethod()) {
+      DexMethod method = reference.asDexMethod();
+      assert getNextMethodSignature(method).isIdenticalTo(method);
+    } else {
+      assert reference.isDexType();
+      DexType type = reference.asDexType();
+      assert getNextClassType(type).isIdenticalTo(type);
+    }
+  }
+
   public static class Builder
       extends BuilderBase<VerticalClassMergerGraphLens, VerticallyMergedClasses> {
 
@@ -473,13 +500,6 @@
           staticizedMethods);
     }
 
-    // TODO: should be removed.
-    public boolean hasMappingForSignatureInContext(DexProgramClass context, DexMethod signature) {
-      return contextualSuperToImplementationInContexts
-          .getOrDefault(context.getType(), Collections.emptyMap())
-          .containsKey(signature);
-    }
-
     public void markMethodAsMerged(DexEncodedMethod method) {
       mergedMethods.add(method.getReference());
     }