commit | 00cb17cc2fe36a3ef23dc4736051da67c91d537d | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Mon Jun 27 08:32:51 2022 +0200 |
committer | Christoffer Quist Adamsen <christofferqa@google.com> | Mon Jun 27 08:32:51 2022 +0200 |
tree | 43122d4c89f3395cc4523426caba71267200d81e | |
parent | 20392efda4b4fb01fdff082beacf3948fc195398 [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(