Inline or not, I just wanted to demonstrate the possibility of using contracts.
In fact, simple null-checks are sufficient and probably faster:
@ExperimentalContracts
fun notNull(a: Any?, b: Any?): Boolean {
contract {
returns(true) implies (a != null && b != null)
}
return (a != null && b != null)
}