== t1 == fun t1(b: Boolean) { var u: String if (b) { u = "s" } doSmth(u) var r: String if (b) { r = "s" } else { r = "t" } doSmth(r) } --------------------- b NEW() "s" NEW() doSmth NEW() u NEW() doSmth(u) COPY b NEW() "s" NEW() "t" NEW() doSmth NEW() r NEW() doSmth(r) COPY { var u: String if (b) { u = "s" } doSmth(u) var r: String if (b) { r = "s" } else { r = "t" } doSmth(r) } COPY ===================== == t2 == fun t2(b: Boolean) { val i = 3 if (b) { return; } doSmth(i) if (i is Int) { return; } } --------------------- 3 NEW() b NEW() doSmth NEW() i NEW() doSmth(i) COPY i NEW() i is Int NEW() ===================== == doSmth == fun doSmth(s: String) {} --------------------- =====================