| commit | 41a1c69cb1d133b3484e3aabea9699110d13801a | [log] [tgz] |
|---|---|---|
| author | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Mar 24 07:07:06 2022 +0100 |
| committer | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Mar 24 07:07:06 2022 +0100 |
| tree | e02e4dca3c497446583b29fd6ac494a1f45648a2 | |
| parent | 3b170487eb546f27780659a5781f5a34c6175166 [diff] |
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;