DuplicateCheckNull after lens is applied

Change-Id: I279a756570f8f7f03a03d1a0cd15626aeeb99212
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
index eb38f33..3125c3d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
@@ -63,7 +63,7 @@
 public class EnumUnboxingRewriter implements CustomLensCodeRewriter {
 
   private final AppView<AppInfoWithLiveness> appView;
-  private final Map<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping;
+  private Map<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping;
   private final DexItemFactory factory;
   private final InternalOptions options;
   private final EnumDataMap unboxedEnumsData;
@@ -71,17 +71,20 @@
 
   EnumUnboxingRewriter(
       AppView<AppInfoWithLiveness> appView,
-      Map<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping,
       EnumDataMap unboxedEnumsInstanceFieldData,
       EnumUnboxingUtilityClasses utilityClasses) {
     this.appView = appView;
-    this.checkNotNullToCheckNotZeroMapping = checkNotNullToCheckNotZeroMapping;
     this.factory = appView.dexItemFactory();
     this.options = appView.options();
     this.unboxedEnumsData = unboxedEnumsInstanceFieldData;
     this.utilityClasses = utilityClasses;
   }
 
+  public void setCheckNotNullToCheckNotZeroMapping(
+      Map<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping) {
+    this.checkNotNullToCheckNotZeroMapping = checkNotNullToCheckNotZeroMapping;
+  }
+
   private LocalEnumUnboxingUtilityClass getLocalUtilityClass(DexType enumType) {
     return utilityClasses.getLocalUtilityClass(unboxedEnumsData.representativeType(enumType));
   }
@@ -649,6 +652,7 @@
       return;
     }
 
+    assert checkNotNullToCheckNotZeroMapping != null;
     if (singleTarget.isProgramMethod()
         && checkNotNullToCheckNotZeroMapping.containsKey(singleTarget.getReference())) {
       DexMethod checkNotZeroMethodReference =
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingTreeFixer.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingTreeFixer.java
index 8910375..c4d4254 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingTreeFixer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingTreeFixer.java
@@ -154,16 +154,11 @@
     new ConcurrentMethodFixup(appView, this)
         .fixupClassesConcurrentlyByConnectedProgramComponents(Timing.empty(), executorService);
 
-    // Create mapping from checkNotNull() to checkNotZero() methods.
-    BiMap<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping =
-        duplicateCheckNotNullMethods(converter, executorService);
-
     // Install the new graph lens before processing any checkNotZero() methods.
     Set<DexMethod> dispatchMethodReferences = Sets.newIdentityHashSet();
     dispatchMethods.forEach((method, code) -> dispatchMethodReferences.add(method.getReference()));
     EnumUnboxingRewriter enumUnboxingRewriter =
-        new EnumUnboxingRewriter(
-            appView, checkNotNullToCheckNotZeroMapping, enumDataMap, utilityClasses);
+        new EnumUnboxingRewriter(appView, enumDataMap, utilityClasses);
     EnumUnboxingLens lens =
         lensBuilder.build(appView, dispatchMethodReferences, enumUnboxingRewriter);
     appView.rewriteWithLens(lens, executorService, timing);
@@ -171,6 +166,11 @@
     // Rewrite outliner with lens.
     converter.outliner.rewriteWithLens();
 
+    // Create mapping from checkNotNull() to checkNotZero() methods.
+    BiMap<DexMethod, DexMethod> checkNotNullToCheckNotZeroMapping =
+        duplicateCheckNotNullMethods(converter, executorService);
+    enumUnboxingRewriter.setCheckNotNullToCheckNotZeroMapping(checkNotNullToCheckNotZeroMapping);
+
     dispatchMethods.forEach((method, code) -> code.setCodeLens(lens));
     profileCollectionAdditions
         .setArtProfileCollection(appView.getArtProfileCollection())