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