commit | eb0ee8c2fc5a4fb328bc509a174bdc1fa0b3b8fb | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Fri Jun 24 19:30:20 2022 +0200 |
committer | Christoffer Adamsen <christofferqa@google.com> | Mon Jun 27 06:31:57 2022 +0000 |
tree | 6cf3a61f74aca13280c3bc4d9abeea13a9c580f8 | |
parent | a89dbbd97c51b46d21f7cccaca7e45dcb1ecc792 [diff] |
Consult api database for parameter type strengthening Bug: b/236294139 Change-Id: I86f622807ae0bc7e77bf63566606ef5b4708b8bf
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java index df0f324..f968d56 100644 --- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java +++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorProgramOptimizer.java
@@ -1034,9 +1034,14 @@ if (!appView.appInfo().isSubtype(newParameterType, staticType)) { return null; } - return AccessUtils.isAccessibleInSameContextsAs(newParameterType, staticType, appView) - ? newParameterType - : null; + if (!AccessUtils.isAccessibleInSameContextsAs(newParameterType, staticType, appView)) { + return null; + } + if (!AndroidApiLevelUtils.isApiSafeForTypeStrengthening( + newParameterType, staticType, appView)) { + return null; + } + return newParameterType; } private RewrittenPrototypeDescription computePrototypeChangesForMethod(