== f == fun f() { var foo = 1 try { foo = 2 throw RuntimeException() } catch (e: Throwable) { println(foo) } } --------------------- : {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> 1 : Int NEW: r(1) -> 2 : Int NEW: r(2) -> RuntimeException() : {<: Throwable} NEW: call(RuntimeException(), ) -> throw RuntimeException() !: * { foo = 2 throw RuntimeException() } !: * COPY println !: * foo : * NEW: r(foo) -> println(foo) : * NEW: magic[UNRESOLVED_CALL](println(foo)|, !) -> { println(foo) } : * COPY try { foo = 2 throw RuntimeException() } catch (e: Throwable) { println(foo) } : * NEW: merge(try { foo = 2 throw RuntimeException() } catch (e: Throwable) { println(foo) }|!, ) -> { var foo = 1 try { foo = 2 throw RuntimeException() } catch (e: Throwable) { println(foo) } } : * COPY =====================