Fix trivial infinite recursion in TypeLatticeElement hashCode.

R=jsjeon@google.com, sgjesse@google.com, zerny@google.com

Change-Id: Id57e67416ba0741896b1dd4c3b1b8f47d24f7978
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/BottomTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/BottomTypeLatticeElement.java
index fa16acf..6125031 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/BottomTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/BottomTypeLatticeElement.java
@@ -49,6 +49,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/DoubleTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/DoubleTypeLatticeElement.java
index daa3352..de4ee66 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/DoubleTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/DoubleTypeLatticeElement.java
@@ -22,6 +22,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/FloatTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/FloatTypeLatticeElement.java
index 3ed36da..1c3402d 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/FloatTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/FloatTypeLatticeElement.java
@@ -22,6 +22,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/IntTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/IntTypeLatticeElement.java
index 60c4491..4eb8487 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/IntTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/IntTypeLatticeElement.java
@@ -22,6 +22,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/LongTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/LongTypeLatticeElement.java
index 708d913..7a54253 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/LongTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/LongTypeLatticeElement.java
@@ -22,6 +22,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/SingleTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/SingleTypeLatticeElement.java
index 0170a65..423492c 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/SingleTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/SingleTypeLatticeElement.java
@@ -34,6 +34,6 @@
 
   @Override
   public int hashCode() {
-    return SINGLE_INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/TopTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/TopTypeLatticeElement.java
index 877de11..e4597be 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/TopTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/TopTypeLatticeElement.java
@@ -49,6 +49,6 @@
 
   @Override
   public int hashCode() {
-    return INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/WideTypeLatticeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/WideTypeLatticeElement.java
index b59847a..9c9072e 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/WideTypeLatticeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/WideTypeLatticeElement.java
@@ -34,6 +34,6 @@
 
   @Override
   public int hashCode() {
-    return WIDE_INSTANCE.hashCode();
+    return getClass().hashCode();
   }
 }