Run default value analysis when abstract value is not unknown

Fixes: b/358629308
Change-Id: I8d88ab00f33256a9db883287adc4581b126f42bc
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
index 294eb8e..5502be2 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/propagation/DefaultFieldValueJoiner.java
@@ -20,6 +20,7 @@
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteArrayTypeValueState;
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteClassTypeValueState;
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcretePrimitiveTypeValueState;
+import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteReferenceTypeValueState;
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.ConcreteValueState;
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.FieldStateCollection;
 import com.android.tools.r8.optimize.argumentpropagation.codescanner.NonEmptyValueState;
@@ -95,9 +96,12 @@
             if (state.isUnknown()) {
               return;
             }
-            if (state.isReferenceState()
-                && state.asReferenceState().getNullability().isNullable()) {
-              return;
+            if (state.isReferenceState()) {
+              ConcreteReferenceTypeValueState referenceState = state.asReferenceState();
+              if (referenceState.getDynamicType().getNullability().isNullable()
+                  && referenceState.getAbstractValue(appView).isUnknown()) {
+                return;
+              }
             }
             fieldsOfInterest
                 .computeIfAbsent(field.getHolder(), ignoreKey(ArrayList::new))