blob: 93ece01556609af26d40970572d47d98434d98d2 [file]
// RUN_PIPELINE_TILL: FRONTEND
// DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION
// FILE: Observer.java
public interface Observer<K> {
void onChanged(K k);
}
// FILE: LiveData.java
public class LiveData<T> {
public void observe(java.lang.Runnable r, Observer<? super T> o) {}
}
// FILE: extension.kt
fun <T> LiveData<T>.observe(a: Any, observer: (T) -> Unit): Observer<T> {
return Observer { observer(it) }
}
// FILE: test.kt
fun <T> test1(r: Runnable, l: LiveData<T>): Observer<T> = l.<!COMPATIBILITY_WARNING!>observe<!>(r) { } // partial conversion
fun <T> test2(r: Runnable, o: Observer<T>, l: LiveData<T>) {
val a = l.observe(r, o) // no conversion
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>a<!>
val b = l.observe({}, {}) // conversion for all arguments
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>b<!>
val c = l.observe({}) {} // conversion for all arguments
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>c<!>
}
/* GENERATED_FIR_TAGS: flexibleType, funWithExtensionReceiver, functionDeclaration, functionalType, inProjection,
javaType, lambdaLiteral, localProperty, nullableType, propertyDeclaration, samConversion, typeParameter */