Allow non-null of NULL in assume

Change-Id: I20659056b5bc3b1f504fbbd7296a050abcbcc8bc
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
index a47dfe0..07f6039 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
@@ -83,13 +83,13 @@
           // non_null_rcv <- non-null(rcv)
           // ...
           // another_rcv <- non-null(non_null_rcv)
-          if (knownToBeNonNullValue != null && isNonNullCandidate(knownToBeNonNullValue)) {
+          if (knownToBeNonNullValue != null && isNullableReferenceType(knownToBeNonNullValue)) {
             knownToBeNonNullValues.add(knownToBeNonNullValue);
           }
         }
         if (current.throwsOnNullInput()) {
           Value couldBeNonNull = current.getNonNullInput();
-          if (isNonNullCandidate(couldBeNonNull)) {
+          if (isNullableReferenceType(couldBeNonNull)) {
             knownToBeNonNullValues.add(couldBeNonNull);
           }
         }
@@ -120,7 +120,7 @@
             for (int i = 0; i < current.inValues().size(); i++) {
               if (facts.get(i)) {
                 Value knownToBeNonNullValue = current.inValues().get(i);
-                if (isNonNullCandidate(knownToBeNonNullValue)) {
+                if (isNullableReferenceType(knownToBeNonNullValue)) {
                   knownToBeNonNullValues.add(knownToBeNonNullValue);
                 }
               }
@@ -166,7 +166,7 @@
         If theIf = block.exit().asIf();
         Value knownToBeNonNullValue = theIf.inValues().get(0);
         // Avoid adding redundant non-null instruction.
-        if (isNonNullCandidate(knownToBeNonNullValue)) {
+        if (isNullableReferenceType(knownToBeNonNullValue)) {
           BasicBlock target = theIf.targetFromNonNullObject();
           // Ignore uncommon empty blocks.
           if (!target.isEmpty()) {
@@ -346,9 +346,9 @@
     return predecessorIndexes;
   }
 
-  private static boolean isNonNullCandidate(Value couldBeNonNullValue) {
+  private static boolean isNullableReferenceType(Value couldBeNonNullValue) {
     TypeLatticeElement typeLattice = couldBeNonNullValue.getTypeLattice();
-    return typeLattice.isReference() && !typeLattice.isNullType() && typeLattice.isNullable();
+    return typeLattice.isReference() && typeLattice.asReferenceTypeLatticeElement().isNullable();
   }
 
   public void computeNonNullParamOnNormalExits(OptimizationFeedback feedback, IRCode code) {