xref: /aosp_15_r20/frameworks/base/packages/SystemUI/proguard_kotlin.flags (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1*d57664e9SAndroid Build Coastguard Worker# Removes runtime checks added through Kotlin to JVM code genereration to
2*d57664e9SAndroid Build Coastguard Worker# avoid linear growth as more Kotlin code is converted / added to the codebase.
3*d57664e9SAndroid Build Coastguard Worker# These checks are generally applied to Java platform types (values returned
4*d57664e9SAndroid Build Coastguard Worker# from Java code that don't have nullness annotations), but we remove them to
5*d57664e9SAndroid Build Coastguard Worker# avoid code size increases.
6*d57664e9SAndroid Build Coastguard Worker#
7*d57664e9SAndroid Build Coastguard Worker# See also https://kotlinlang.org/docs/reference/java-interop.html
8*d57664e9SAndroid Build Coastguard Worker#
9*d57664e9SAndroid Build Coastguard Worker# TODO(b/199941987): Consider standardizing these rules in a central place as
10*d57664e9SAndroid Build Coastguard Worker# Kotlin gains adoption with other platform targets.
11*d57664e9SAndroid Build Coastguard Worker-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
12*d57664e9SAndroid Build Coastguard Worker    # Remove check for method parameters being null
13*d57664e9SAndroid Build Coastguard Worker    static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
14*d57664e9SAndroid Build Coastguard Worker
15*d57664e9SAndroid Build Coastguard Worker    # When a Java platform type is returned and passed to Kotlin NonNull method,
16*d57664e9SAndroid Build Coastguard Worker    # remove the null check
17*d57664e9SAndroid Build Coastguard Worker    static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String);
18*d57664e9SAndroid Build Coastguard Worker    static void checkNotNullExpressionValue(java.lang.Object, java.lang.String);
19*d57664e9SAndroid Build Coastguard Worker
20*d57664e9SAndroid Build Coastguard Worker    # Remove check that final value returned from method is null, if passing
21*d57664e9SAndroid Build Coastguard Worker    # back Java platform type.
22*d57664e9SAndroid Build Coastguard Worker    static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
23*d57664e9SAndroid Build Coastguard Worker    static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String);
24*d57664e9SAndroid Build Coastguard Worker
25*d57664e9SAndroid Build Coastguard Worker    # Null check for accessing a field from a parent class written in Java.
26*d57664e9SAndroid Build Coastguard Worker    static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
27*d57664e9SAndroid Build Coastguard Worker    static void checkFieldIsNotNull(java.lang.Object, java.lang.String);
28*d57664e9SAndroid Build Coastguard Worker
29*d57664e9SAndroid Build Coastguard Worker    # Removes code generated from !! operator which converts Nullable type to
30*d57664e9SAndroid Build Coastguard Worker    # NonNull type. These would throw an NPE immediate after on access.
31*d57664e9SAndroid Build Coastguard Worker    static void checkNotNull(java.lang.Object, java.lang.String);
32*d57664e9SAndroid Build Coastguard Worker    static void checkNotNullParameter(java.lang.Object, java.lang.String);
33*d57664e9SAndroid Build Coastguard Worker
34*d57664e9SAndroid Build Coastguard Worker    # Removes lateinit var check being used before being set. Check is applied
35*d57664e9SAndroid Build Coastguard Worker    # on every field access without this.
36*d57664e9SAndroid Build Coastguard Worker    static void throwUninitializedPropertyAccessException(java.lang.String);
37*d57664e9SAndroid Build Coastguard Worker}
38