Require code lens in getRenamedMemberSignature

Change-Id: Id17ad44db045e6b7fa3f620fba3abe207dc22ce8
diff --git a/src/main/java/com/android/tools/r8/graph/AppView.java b/src/main/java/com/android/tools/r8/graph/AppView.java
index 919de23..5ebfb20 100644
--- a/src/main/java/com/android/tools/r8/graph/AppView.java
+++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -85,6 +85,7 @@
   private GraphLens codeLens = GraphLens.getIdentityLens();
   private GraphLens graphLens = GraphLens.getIdentityLens();
   private InitClassLens initClassLens;
+  private GraphLens kotlinMetadataLens = GraphLens.getIdentityLens();
   private NamingLens namingLens = NamingLens.getIdentityLens();
   private ProguardCompatibilityActions proguardCompatibilityActions;
   private RootSet rootSet;
@@ -594,6 +595,14 @@
     this.initClassLens = initClassLens;
   }
 
+  public GraphLens getKotlinMetadataLens() {
+    return kotlinMetadataLens;
+  }
+
+  public void setKotlinMetadataLens(GraphLens kotlinMetadataLens) {
+    this.kotlinMetadataLens = kotlinMetadataLens;
+  }
+
   public void setInitializedClassesInInstanceMethods(
       InitializedClassesInInstanceMethods initializedClassesInInstanceMethods) {
     this.initializedClassesInInstanceMethods = initializedClassesInInstanceMethods;
@@ -939,6 +948,7 @@
     firstUnappliedLens.withAlternativeParentLens(
         newMemberRebindingLens,
         () -> {
+          GraphLens appliedLensInModifiedLens = GraphLens.getIdentityLens();
           if (appView.hasLiveness()) {
             appView
                 .withLiveness()
@@ -957,7 +967,9 @@
           appView.setArtProfileCollection(
               appView.getArtProfileCollection().rewrittenWithLens(appView, lens));
           appView.setAssumeInfoCollection(
-              appView.getAssumeInfoCollection().rewrittenWithLens(appView, lens));
+              appView
+                  .getAssumeInfoCollection()
+                  .rewrittenWithLens(appView, lens, appliedLensInModifiedLens));
           if (appView.hasInitClassLens()) {
             appView.setInitClassLens(appView.initClassLens().rewrittenWithLens(lens));
           }
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 bd71700..6f292cb 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
@@ -152,10 +152,11 @@
 
   public abstract DexField getRenamedFieldSignature(DexField originalField, GraphLens codeLens);
 
-  public final DexMember<?, ?> getRenamedMemberSignature(DexMember<?, ?> originalMember) {
+  public final DexMember<?, ?> getRenamedMemberSignature(
+      DexMember<?, ?> originalMember, GraphLens codeLens) {
     return originalMember.isDexField()
-        ? getRenamedFieldSignature(originalMember.asDexField())
-        : getRenamedMethodSignature(originalMember.asDexMethod());
+        ? getRenamedFieldSignature(originalMember.asDexField(), codeLens)
+        : getRenamedMethodSignature(originalMember.asDexMethod(), codeLens);
   }
 
   public final DexMethod getRenamedMethodSignature(DexMethod originalMethod) {
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataMembersTracker.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataMembersTracker.java
index 88691a9..98dc167 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataMembersTracker.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataMembersTracker.java
@@ -6,7 +6,6 @@
 
 import com.android.tools.r8.graph.AppView;
 import com.android.tools.r8.graph.DexMember;
-import com.android.tools.r8.graph.DexReference;
 import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.utils.IterableUtils;
 import com.google.common.collect.Sets;
@@ -48,7 +47,10 @@
         // underlying types are changed.
         diffComparedToRewritten.forEach(
             diff -> {
-              DexReference rewrittenReference = appView.graphLens().lookupReference(diff);
+              DexMember<?, ?> rewrittenReference =
+                  appView
+                      .graphLens()
+                      .getRenamedMemberSignature(diff, appView.getKotlinMetadataLens());
               assert diffComparedToOriginal.contains(rewrittenReference);
               assert IterableUtils.findOrDefault(
                       diff.getReferencedTypes(), type -> isKotlinJvmType(appView, type), null)
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
index 858a57c..04392f3 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataRewriter.java
@@ -20,6 +20,7 @@
 import com.android.tools.r8.graph.DexValue.DexValueArray;
 import com.android.tools.r8.graph.DexValue.DexValueInt;
 import com.android.tools.r8.graph.DexValue.DexValueString;
+import com.android.tools.r8.graph.lens.GraphLens;
 import com.android.tools.r8.utils.BooleanBox;
 import com.android.tools.r8.utils.ConsumerUtils;
 import com.android.tools.r8.utils.Pair;
@@ -84,7 +85,10 @@
   }
 
   public void runForR8(ExecutorService executorService) throws ExecutionException {
-    DexType rewrittenMetadataType = appView.graphLens().lookupClassType(factory.kotlinMetadataType);
+    GraphLens graphLens = appView.graphLens();
+    GraphLens kotlinMetadataLens = appView.getKotlinMetadataLens();
+    DexType rewrittenMetadataType =
+        graphLens.lookupClassType(factory.kotlinMetadataType, kotlinMetadataLens);
     DexClass kotlinMetadata = appView.definitionFor(rewrittenMetadataType);
     WriteMetadataFieldInfo writeMetadataFieldInfo =
         new WriteMetadataFieldInfo(
@@ -124,6 +128,7 @@
           writeKotlinInfoToAnnotation(clazz, kotlinInfo, oldMeta, writeMetadataFieldInfo);
         },
         executorService);
+    appView.setKotlinMetadataLens(appView.graphLens());
   }
 
   public void runForD8(ExecutorService executorService) throws ExecutionException {
diff --git a/src/main/java/com/android/tools/r8/shaking/AssumeInfoCollection.java b/src/main/java/com/android/tools/r8/shaking/AssumeInfoCollection.java
index bc3f728..75d7671 100644
--- a/src/main/java/com/android/tools/r8/shaking/AssumeInfoCollection.java
+++ b/src/main/java/com/android/tools/r8/shaking/AssumeInfoCollection.java
@@ -60,11 +60,13 @@
     return isSideEffectFree(member.getReference());
   }
 
-  public AssumeInfoCollection rewrittenWithLens(AppView<?> appView, GraphLens graphLens) {
+  public AssumeInfoCollection rewrittenWithLens(
+      AppView<?> appView, GraphLens graphLens, GraphLens appliedLens) {
     Map<DexMember<?, ?>, AssumeInfo> rewrittenCollection = new IdentityHashMap<>();
     backing.forEach(
         (reference, info) -> {
-          DexMember<?, ?> rewrittenReference = graphLens.getRenamedMemberSignature(reference);
+          DexMember<?, ?> rewrittenReference =
+              graphLens.getRenamedMemberSignature(reference, appliedLens);
           AssumeInfo rewrittenInfo = info.rewrittenWithLens(appView, graphLens);
           assert !rewrittenInfo.isEmpty();
           rewrittenCollection.put(rewrittenReference, rewrittenInfo);