In Kotlin, if we decompile some Kotlin bytecode to Java, we can often see this statement which does null checks:
Intrinsics.checkParameterIsNotNull(foo, "foo")
If we explore furthur, we can see the decompiled implementation of this method, it’s implementation is exactly the same as it’s name:
public static void checkParameterIsNotNull(Object value, String paramName) {
if (value == null) {
throwParameterIsNullException(paramName);
}
}
Due to the existense of this class (Intrinsics
), I can’t use Kotlin without the stdlib, even if I tried my best to avoid using functions from stdlib, it automatically generates calls to Intrinsics.checkParameterIsNotNull
.
Since the implementation of this method is very short (and appears very very often), why isn’t this function inlined?
Is there some annotations that allow us to prevent Kotlin compiler from generating this null check? (maybe something like @TrustedNotNull
)