== foo == fun foo() { "before" try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } "after" } --------------------- : {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> "before" : * NEW: r("before") -> foo() : * NEW: call(foo(), foo) -> { foo() } : * COPY e : {<: Exception} NEW: r(e) -> { val a = e } !: * 1 : Int NEW: r(1) -> try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } : * NEW: merge(try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 }|, !) -> "after" : * NEW: r("after") -> { "before" try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } "after" } : * COPY =====================