FILE: smartcastToNothing.kt public final fun getNothing(): R|kotlin/Nothing| { ^getNothing throw R|java/lang/Exception.Exception|() } public final fun getNullableNothing(): R|kotlin/Nothing?| { ^getNullableNothing Null(null) } public final val R|kotlin/String?|.q: R|kotlin/Int| public get(): R|kotlin/Int| { ^ Int(1) } public final val R|kotlin/String|.qq: R|kotlin/Int| public get(): R|kotlin/Int| { ^ Int(2) } public final fun myListOf(x: R|T|): R|kotlin/collections/List| { ^myListOf Null(null)!! } public final class A : R|kotlin/Any| { public constructor(): R|A| { super() } public final val a: R|kotlin/Int| = Int(1) public get(): R|kotlin/Int| public final val b: R|kotlin/Boolean| = Boolean(true) public get(): R|kotlin/Boolean| } public final fun test_0(results: R|kotlin/collections/List|): R|kotlin/Unit| { lvar s: R|A?| = Null(null) lval : R|kotlin/collections/Iterator| = R|/results|.R|FakeOverride|>|() while(R|/|.R|kotlin/collections/Iterator.hasNext|()) { lval result: R|kotlin/Nothing| = R|/|.R|FakeOverride|() R|/s| = R|/result| when () { R|/result|.# -> { break@@@[R|/|.R|kotlin/collections/Iterator.hasNext|()] } } } R|/s|?.{ $subj$.R|kotlin/let|( = let@fun (it: R|A|): R|kotlin/Int| { ^ R|/it|.R|/A.a| } ) } }