pablisco
03/08/2022, 11:49 PMpablisco
03/08/2022, 11:49 PMlouiscad
03/09/2022, 12:01 AMstuff?.let { }
does the same thing as what you want, do you have another use case?pablisco
03/10/2022, 12:33 PMreceiver.run { stuff?.let { this.doSomethingAndReturnSameTypeAsReceiver(stuff) } ?: receiver }
pablisco
03/10/2022, 2:14 PMcalls(block) implies (subject is AppCompatActivity)
Then we could define something like:
fun Activity.ifAppCompat(block: () -> R): R {
contract {
calls(block) implies (this is AppCompatActivity)
}
if(this is AppCompatActivity) {
block()
}
}
That said, these could potentially be inferred by the compiler. But making it explicit will probably be more efficient
(say someone that knows close to nothing about the Kotlin compiler 😅 )louiscad
03/10/2022, 2:16 PMAppCompatActivity
receiver for the block
lambda?