Account for if-simplification for non-null origin.

Bug: 141667708
Change-Id: I8467e57f48de5191c01ba3bf1cf237f16347acff
diff --git a/src/main/java/com/android/tools/r8/ir/code/Assume.java b/src/main/java/com/android/tools/r8/ir/code/Assume.java
index c4dfbc4..05ff7a1 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Assume.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Assume.java
@@ -153,6 +153,10 @@
     return self;
   }
 
+  public boolean mayAffectStaticType() {
+    return isAssumeNonNull();
+  }
+
   @Override
   public boolean couldIntroduceAnAlias(AppView<?> appView, Value root) {
     assert root != null && root.getTypeLattice().isReference();
@@ -284,16 +288,20 @@
 
   @Override
   public String toString() {
-    String originString = "(origin: `" + origin.toString() + "`)";
-    if (isAssumeNone()) {
-      return super.toString() + "; nothing " + originString;
+    // During branch simplification, the origin `if` could be simplified.
+    // It means the assumption became "truth."
+    assert origin.hasBlock() || isAssumeNonNull();
+    String originString =
+        origin.hasBlock() ? " (origin: `" + origin.toString() + "`)" : " (origin simplified)";
+    if (isAssumeNone() || isAssumeNonNull()) {
+      return super.toString() + originString;
     }
     if (isAssumeDynamicType()) {
+      DynamicTypeAssumption assumption = asAssumeDynamicType().getAssumption();
       return super.toString()
-          + "; type: " + asAssumeDynamicType().getAssumption().type + originString;
-    }
-    if (isAssumeNonNull()) {
-      return super.toString() + "; not null " + originString;
+          + "; upper bound: " + assumption.type
+          + (assumption.lowerBoundType != null ? "; lower bound: " + assumption.lowerBoundType : "")
+          + originString;
     }
     return super.toString();
   }