== foo == fun foo(flag: Boolean): Int { when (flag) { true -> return 1 false -> return 0 } } --------------------- : Boolean NEW: magic[FAKE_INITIALIZER](flag: Boolean) -> : * NEW: magic[EXHAUSTIVE_WHEN_ELSE](when (flag) { true -> return 1 false -> return 0 }) -> flag : * NEW: r(flag) -> true : * NEW: r(true) -> true : * NEW: magic[EQUALS_IN_WHEN_CONDITION](true|, ) -> 1 : Int NEW: r(1) -> return 1 !: * false : * NEW: r(false) -> false : * NEW: magic[EQUALS_IN_WHEN_CONDITION](false|, ) -> 0 : Int NEW: r(0) -> return 0 !: * when (flag) { true -> return 1 false -> return 0 } : * NEW: merge(when (flag) { true -> return 1 false -> return 0 }|!, !) -> { when (flag) { true -> return 1 false -> return 0 } } : * COPY =====================