Bail-out for isSubtypes on array types.

Bug: 147658738
Change-Id: Id157245704c4c34b841229535c8a4069ee7c95f3
diff --git a/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java b/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
index de380e8..4344794 100644
--- a/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
+++ b/src/main/java/com/android/tools/r8/graph/AppInfoWithClassHierarchy.java
@@ -36,16 +36,12 @@
   public boolean isSubtype(DexType subtype, DexType supertype) {
     assert subtype != null;
     assert supertype != null;
-    assert subtype.isClassType();
-    assert supertype.isClassType();
     return subtype == supertype || isStrictSubtypeOf(subtype, supertype);
   }
 
   public boolean isStrictSubtypeOf(DexType subtype, DexType supertype) {
     assert subtype != null;
     assert supertype != null;
-    assert subtype.isClassType();
-    assert supertype.isClassType();
     if (subtype == supertype) {
       return false;
     }
@@ -56,6 +52,10 @@
     if (supertype == dexItemFactory().objectType) {
       return true;
     }
+    // TODO(b/147658738): Clean up the code to not call on non-class types or fix this.
+    if (!subtype.isClassType() || !supertype.isClassType()) {
+      return false;
+    }
     Deque<DexType> workList = new ArrayDeque<>();
     workList.addFirst(subtype);
     while (!workList.isEmpty()) {