Account for array to interface assignments in open interfaces analysis

Change-Id: Iafb6608920376dd492af4828873717df56874313
diff --git a/src/main/java/com/android/tools/r8/optimize/interfaces/collection/OpenClosedInterfacesCollection.java b/src/main/java/com/android/tools/r8/optimize/interfaces/collection/OpenClosedInterfacesCollection.java
index 5b009ba..755c319 100644
--- a/src/main/java/com/android/tools/r8/optimize/interfaces/collection/OpenClosedInterfacesCollection.java
+++ b/src/main/java/com/android/tools/r8/optimize/interfaces/collection/OpenClosedInterfacesCollection.java
@@ -76,6 +76,9 @@
       return false;
     }
     TypeElement dynamicUpperBoundType = dynamicType.getDynamicUpperBoundType(staticType);
+    if (dynamicUpperBoundType.isArrayType()) {
+      return dynamicUpperBoundType.lessThanOrEqualUpToNullability(staticType, appView);
+    }
     if (!dynamicUpperBoundType.isClassType()) {
       // Should not happen, since the dynamic type should be assignable to the static type.
       assert false;