== s == val s = mutableListOf() --------------------- mutableListOf !: * mutableListOf() : {<: [ERROR : Type for mutableListOf()]} NEW: magic[UNRESOLVED_CALL](mutableListOf()|!) -> ===================== == test == fun test(name: String?, flag: Boolean): Boolean { try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } return false } finally { name?.hashCode() } } --------------------- : {<: String?} NEW: magic[FAKE_INITIALIZER](name: String?) -> : Boolean NEW: magic[FAKE_INITIALIZER](flag: Boolean) -> name : String NEW: r(name) -> { if (flag) { s.add(it) } else { s.remove(it) } return true } : {<: (String) -> Nothing} NEW: r({ if (flag) { s.add(it) } else { s.remove(it) } return true }) -> let { if (flag) { s.add(it) } else { s.remove(it) } return true } !: * name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } !: * COPY false : Boolean NEW: r(false) -> return false !: * { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } return false } !: * COPY try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } return false } finally { name?.hashCode() } : * NEW: merge(try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } return false } finally { name?.hashCode() }|!) -> { try { name?.let { if (flag) { s.add(it) } else { s.remove(it) } return true } return false } finally { name?.hashCode() } } : * COPY ===================== == anonymous_0 == { if (flag) { s.add(it) } else { s.remove(it) } return true } --------------------- : * NEW: magic[VALUE_CONSUMER](it|) -> : * NEW: magic[VALUE_CONSUMER](it|) -> flag : Boolean NEW: r(flag) -> s : * NEW: r(s) -> it : * NEW: r(it) -> add(it) : * NEW: call(add(it), |) -> s.add(it) : * COPY { s.add(it) } : * COPY s : * NEW: r(s) -> it : * NEW: r(it) -> remove(it) : * NEW: call(remove(it), |) -> s.remove(it) : * COPY { s.remove(it) } : * COPY if (flag) { s.add(it) } else { s.remove(it) } : * NEW: merge(if (flag) { s.add(it) } else { s.remove(it) }|, ) -> true : Boolean NEW: r(true) -> return true !: * if (flag) { s.add(it) } else { s.remove(it) } return true !: * COPY =====================