Fix optimization info for check-not-zero methods

Change-Id: I97642aae8408c59c3cec717b566fc8af2ba06e1d
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 9997cc0..862840b 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
@@ -43,6 +43,7 @@
 import com.android.tools.r8.ir.optimize.enums.EnumDataMap.EnumData;
 import com.android.tools.r8.ir.optimize.enums.classification.CheckNotNullEnumUnboxerMethodClassification;
 import com.android.tools.r8.ir.optimize.enums.code.CheckNotZeroCode;
+import com.android.tools.r8.ir.optimize.info.DefaultMethodOptimizationInfo;
 import com.android.tools.r8.ir.optimize.info.OptimizationFeedback;
 import com.android.tools.r8.ir.optimize.info.OptimizationFeedbackIgnore;
 import com.android.tools.r8.ir.optimize.info.field.InstanceFieldInitializationInfo;
@@ -189,10 +190,10 @@
                               .setApiLevelForCode(appView.computedMinApiLevel())
                               .setCode(method -> new CheckNotZeroCode(checkNotNullMethod))
                               .setOptimizationInfo(
-                                  checkNotNullMethod
-                                      .getOptimizationInfo()
-                                      .asMutableMethodOptimizationInfo()
-                                      .mutableCopy())
+                                  DefaultMethodOptimizationInfo.getInstance()
+                                      .toMutableOptimizationInfo()
+                                      .setEnumUnboxerMethodClassification(
+                                          checkNotNullClassification))
                               .setProto(newProto));
           checkNotNullToCheckNotZeroMapping.put(
               checkNotNullMethod.getReference(), checkNotZeroMethod.getReference());
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/CallSiteOptimizationInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/CallSiteOptimizationInfo.java
index 6356bbf..b651b1f 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/CallSiteOptimizationInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/CallSiteOptimizationInfo.java
@@ -24,7 +24,7 @@
 
   // The index exactly matches with in values of invocation, i.e., even including receiver.
   public DynamicType getDynamicType(int argIndex) {
-    return null;
+    return DynamicType.unknown();
   }
 
   // The index exactly matches with in values of invocation, i.e., even including receiver.
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/MutableMethodOptimizationInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/info/MutableMethodOptimizationInfo.java
index 2cb900b..e07fee5 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/MutableMethodOptimizationInfo.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/MutableMethodOptimizationInfo.java
@@ -282,12 +282,13 @@
     return enumUnboxerMethodClassification;
   }
 
-  void setEnumUnboxerMethodClassification(
+  public MutableMethodOptimizationInfo setEnumUnboxerMethodClassification(
       EnumUnboxerMethodClassification enumUnboxerMethodClassification) {
     // Check monotonicity.
     assert !this.enumUnboxerMethodClassification.isCheckNotNullClassification()
         || enumUnboxerMethodClassification.isCheckNotNullClassification();
     this.enumUnboxerMethodClassification = enumUnboxerMethodClassification;
+    return this;
   }
 
   public void unsetEnumUnboxerMethodClassification() {