Correctly remove Assume instructions from IR in LensCodeRewriter
Change-Id: Iaae303722ebc1b485992f9ae36c387a765ab6291
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 73f0fe5..688a21e 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
@@ -643,10 +643,11 @@
// 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()) {
- current.outValue().setType(substituted);
- affectedPhis.addAll(current.outValue().uniquePhiUsers());
+ assume.outValue().setType(substituted);
} else {
+ assume.outValue().replaceUsers(assume.src());
iterator.removeOrReplaceByDebugLocalRead();
}
} else {