>>650
val x2: List<Any> = listOf(0.3)
val x3 = x2[0]
if (x3 is Double) println(x3 + 0.2)
これはスマートキャストいけた。

雑に考察すると、x2の右辺には別スレッドで
val x4: MutableList<Any> = mutableListOf(0.3)
と定義したx4を書くことも出来て、
ifの条件式が評価されてprintlnが実行されるまでに、
元のスレッドでx4[0] = "string"が実行されている可能性が微粒子レベルで存在するのかなと。