// FILE: Container.java public class Container { Wrapper w = null; public Wrapper getWrapper() { return null; } public void setWrapper(Wrapper wrapper) {} public E getSimple() { return null; } public void setSimple(E e) {} } // FILE: Wrapper.java public class Wrapper { } // FILE: test.kt fun foo(container: Container<*>, wrapper: Wrapper) { container.w = wrapper container.wrapper = wrapper container.setWrapper(wrapper) container.simple = "123" container.setSimple("123") container.simple = null container.setSimple(null) container.simple = container.simple container.setSimple(container.getSimple()) container.simple = null!! } fun bar(container: Container, wrapper: Wrapper) { container.wrapper = wrapper container.setWrapper(wrapper) container.simple = "123" container.setSimple("123") } fun baz(container: Container, wrapper: Wrapper) { container.wrapper = wrapper container.simple = "123" container.setSimple("123") } fun gau(container: Container, wrapper: Wrapper, arg: Any) { container.wrapper = wrapper container.simple = 456 container.simple = arg container.simple = x container.simple = O if (arg is String) { container.simple = arg } } fun dif(container: Container, wrapper: Wrapper) { container.wrapper = wrapper } object O fun out(container: Container, wrapper: Wrapper) { container.wrapper = wrapper container.setWrapper(wrapper) container.simple = x container.setSimple(x) container.simple = O container.setSimple(O) container.simple = 456 container.setSimple(456) } val x = 456 fun inn(container: Container, wrapper: Wrapper, arg: Any) { container.wrapper = wrapper container.setWrapper(wrapper) container.simple = x container.setSimple(x) container.simple = O container.setSimple(O) container.simple = 456 container.setSimple(456) container.simple = arg container.setSimple(arg) if (arg is String) { container.simple = arg container.setSimple(arg) } } fun generic(container: Container, wrapper: Wrapper, arg: T) { container.wrapper = wrapper container.setWrapper(wrapper) container.simple = x container.setSimple(x) container.simple = O container.setSimple(O) container.simple = 456 container.setSimple(456) container.simple = arg container.setSimple(arg) }