Fix inadequate type propagation in lens code rewriter

Change-Id: I110a789e2927fec7545f99c712dcf4e6b920cbda
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
index 688a21e..0356381 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
@@ -631,6 +631,7 @@
                 TypeElement substituted = type.rewrittenWithLens(appView, graphLens);
                 if (substituted != type) {
                   assert type.isArrayType() || type.isClassType();
+                  affectedPhis.addAll(assume.outValue().uniquePhiUsers());
                   if (substituted.isPrimitiveType()) {
                     assert type.isClassType();
                     assert appView.unboxedEnums().isUnboxedEnum(type.asClassType().getClassType());
@@ -643,7 +644,6 @@
                     // Non-null assumptions on a class array type being converted to a primitive
                     // array type remains, but dynamic type becomes irrelevant.
                     assume.unsetDynamicTypeAssumption();
-                    affectedPhis.addAll(assume.outValue().uniquePhiUsers());
                     if (assume.hasNonNullAssumption()) {
                       assume.outValue().setType(substituted);
                     } else {
@@ -654,7 +654,6 @@
                     assert !substituted.isPrimitiveType();
                     assert !substituted.isPrimitiveArrayType();
                     current.outValue().setType(substituted);
-                    affectedPhis.addAll(current.outValue().uniquePhiUsers());
                   }
                 }
               }