Deprecate TypeLatticeElement#isNull

Also, rename TypeLatticeElement#isConstantNull to isNullType

Bug: 72693244
Change-Id: Ie2a1159bd9b345f46fd5d37364f67fc1bc8c1fa3
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/ReferenceTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/ReferenceTypeLatticeElement.java
index e7282e1..0db0ca4 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/ReferenceTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/ReferenceTypeLatticeElement.java
@@ -43,13 +43,13 @@
   }
 
   @Override
-  public boolean isNull() {
+  public boolean isNullType() {
     return type == DexItemFactory.nullValueType;
   }
 
   @Override
   public TypeLatticeElement asNullable() {
-    assert isNull();
+    assert isNullType();
     return this;
   }
 
@@ -88,7 +88,7 @@
 
   @Override
   public int hashCode() {
-    assert isNull();
+    assert isNullType();
     return System.identityHashCode(this);
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
index b29cd31..ad8edd3 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/TypeLatticeElement.java
@@ -29,7 +29,6 @@
   public static final ReferenceTypeLatticeElement NULL =
       ReferenceTypeLatticeElement.getNullTypeLatticeElement();
 
-
   // TODO(b/72693244): Switch to NullLatticeElement.
   private final boolean isNullable;
 
@@ -42,7 +41,7 @@
   }
 
   public NullLatticeElement nullElement() {
-    if (isNull()) {
+    if (isNullType()) {
       return NullLatticeElement.definitelyNull();
     }
     if (!isNullable()) {
@@ -91,10 +90,10 @@
     if (isTop() || other.isTop()) {
       return TOP;
     }
-    if (isNull()) {
+    if (isNullType()) {
       return other.asNullable();
     }
-    if (other.isNull()) {
+    if (other.isNullType()) {
       return asNullable();
     }
     if (isPrimitive()) {
@@ -270,7 +269,7 @@
   public boolean isPreciseType() {
     return isArrayType()
         || isClassType()
-        || isNull()
+        || isNullType()
         || isInt()
         || isFloat()
         || isLong()
@@ -286,21 +285,13 @@
   }
 
   /**
-   * Should use {@link #isConstantNull()} or {@link #isDefinitelyNull()} instead.
-   */
-  @Deprecated
-  public boolean isNull() {
-    return false;
-  }
-
-  /**
    * Determines if this type only includes null values that are defined by a const-number
    * instruction in the same enclosing method.
    *
    * These null values can be assigned to any type.
    */
-  public boolean isConstantNull() {
-    return isNull();
+  public boolean isNullType() {
+    return false;
   }
 
   /**
diff --git a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
index c68baf9..596fdb8 100644
--- a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
+++ b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
@@ -148,7 +148,7 @@
       assert inType.nullElement().lessThanOrEqual(outType.nullElement());
 
       // Since we cannot remove the cast the in-value must be different from null.
-      assert !inType.isNull();
+      assert !inType.isNullType();
 
       // TODO(b/72693244): Consider checking equivalence. This requires that the types are always
       // as precise as possible, though, meaning that almost all changes to the IR must be followed
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
index 7a6a9a4..3976889 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
@@ -302,7 +302,7 @@
     assert super.verifyTypes(appInfo, graphLense);
     assert !isZero()
         || outValue().getTypeLattice().isPrimitive()
-        || outValue().getTypeLattice().isConstantNull();
+        || outValue().getTypeLattice().isNullType();
     return true;
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/code/Throw.java b/src/main/java/com/android/tools/r8/ir/code/Throw.java
index c9b12f2..23bb76c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Throw.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Throw.java
@@ -82,7 +82,7 @@
       return true;
     }
     TypeLatticeElement exceptionType = exception().getTypeLattice();
-    if (exceptionType.isConstantNull()) {
+    if (exceptionType.isNullType()) {
       // throw null
       return true;
     }
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 2094584..b417c48 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
@@ -343,7 +343,7 @@
         // redundant
         !knownToBeNonNullValue.isNeverNull()
         // v <- non-null NULL ?!
-        && !typeLattice.isConstantNull()
+        && !typeLattice.isNullType()
         // v <- non-null known-to-be-non-null // redundant
         && typeLattice.isNullable()
         // e.g., v <- non-null INT ?!
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
index bd4f2b1..cdd85e4 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
@@ -305,7 +305,7 @@
           continue;
         }
         TypeLatticeElement inType = in.getTypeLattice();
-        if (inType.isConstantNull()) {
+        if (inType.isNullType()) {
           Value nullStringValue =
               code.createValue(TypeLatticeElement.stringClassType(appInfo), invoke.getLocalInfo());
           ConstString nullString = new ConstString(