// ISSUE: KT-49045 data class Foo(val foo: String) class Bar(val bar: String) fun Bar.toFoo() = Foo(bar) class Wrapper(val wrapped: T) { fun map(f: (T) -> A): Wrapper = Wrapper(f(wrapped)) fun swapWrappedValue(f: (T) -> Wrapper): Wrapper = f(wrapped) } fun test_1(): Wrapper { return Wrapper(Bar("bar")) .map { it.toFoo() as Foo? } .swapWrappedValue { Wrapper(null) } } fun test_2(): Wrapper { return Wrapper(Bar("bar")) .map { it.toFoo() } .swapWrappedValue { Wrapper(null) } }