// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION // FILE: Observer.java public interface Observer { void onChanged(K k); } // FILE: LiveData.java public class LiveData { public void observe(java.lang.Runnable r, Observer o) {} } // FILE: extension.kt fun LiveData.observe(a: Any, observer: (T) -> Unit): Observer { return Observer { observer(it) } } // FILE: test.kt fun test1(r: Runnable, l: LiveData): Observer = l.observe(r) { } // partial conversion fun test2(r: Runnable, o: Observer, l: LiveData) { val a = l.observe(r, o) // no conversion a val b = l.observe({}, {}) // conversion for all arguments b val c = l.observe({}) {} // conversion for all arguments c }