Fix type inference for function expression parameters
This commit is contained in:
+7
@@ -0,0 +1,7 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER
|
||||
|
||||
fun <T> foo(f : (T) -> T) : T = throw Exception()
|
||||
|
||||
fun test() {
|
||||
val a : Int = foo(fun f(x) = x)
|
||||
}
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package
|
||||
|
||||
internal fun </*0*/ T> foo(/*0*/ f: (T) -> T): T
|
||||
internal fun test(): kotlin.Unit
|
||||
@@ -0,0 +1,18 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
fun listOf<T>(): List<T> = null!!
|
||||
|
||||
fun test(a: (Int) -> Int) {
|
||||
test(fun (x) = 4)
|
||||
|
||||
test(fun (x) = x)
|
||||
|
||||
test(fun (x): Int { x: Int; return 4 })
|
||||
}
|
||||
|
||||
fun test2(a: () -> List<Int>) {
|
||||
test2(fun () = <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>listOf<!>())
|
||||
}
|
||||
|
||||
val a: (Int) -> Unit = fun(x) { x: Int }
|
||||
|
||||
val b: (Int) -> Unit = <!TYPE_MISMATCH!>fun(<!EXPECTED_PARAMETER_TYPE_MISMATCH!>x: String<!>) {}<!>
|
||||
@@ -0,0 +1,7 @@
|
||||
package
|
||||
|
||||
internal val a: (kotlin.Int) -> kotlin.Unit
|
||||
internal val b: (kotlin.Int) -> kotlin.Unit
|
||||
internal fun </*0*/ T> listOf(): kotlin.List<T>
|
||||
internal fun test(/*0*/ a: (kotlin.Int) -> kotlin.Int): kotlin.Unit
|
||||
internal fun test2(/*0*/ a: () -> kotlin.List<kotlin.Int>): kotlin.Unit
|
||||
@@ -13,13 +13,13 @@ val e: (Int, String) -> Int = <!TYPE_MISMATCH!>fun <!EXPECTED_PARAMETERS_NUMBER_
|
||||
val f: (Int) -> Int = <!TYPE_MISMATCH!>fun (<!EXPECTED_PARAMETER_TYPE_MISMATCH!>x: String<!>) = 3<!>
|
||||
|
||||
fun test1(a: (Int) -> Unit) {
|
||||
test1(fun (<!CANNOT_INFER_PARAMETER_TYPE!>x<!>) { <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>x<!> : Int})
|
||||
test1(fun (x) { x : Int})
|
||||
}
|
||||
|
||||
fun test2(a: (Int) -> Unit) {
|
||||
test2(<!TYPE_MISMATCH!>fun (x: String) {}<!>)
|
||||
test2(<!TYPE_MISMATCH!>fun (<!EXPECTED_PARAMETER_TYPE_MISMATCH!>x: String<!>) {}<!>)
|
||||
}
|
||||
|
||||
fun test3(a: (Int, String) -> Unit) {
|
||||
test3(<!TYPE_MISMATCH!>fun (x: String) {}<!>)
|
||||
test3(<!TYPE_MISMATCH!>fun <!EXPECTED_PARAMETERS_NUMBER_MISMATCH!>(<!EXPECTED_PARAMETER_TYPE_MISMATCH!>x: String<!>)<!> {}<!>)
|
||||
}
|
||||
Reference in New Issue
Block a user