バージョン
Kotlin 1.3.0
以下のコードでblock()はダメだけどblock.invoke()はスマートキャストされる。
class Hoge(val block: (() -> Unit)?) { fun hoge() { if (block != null) { block() // NG block.invoke() // OK } } }
とりあえず探してみたらあった。
https://youtrack.jetbrains.com/issue/KT-4113
普通に困るので早く直って欲しいというお気持ち。
とりあえずinvoke使うか。