Move test for NI to diagnostic tests and add "todo"

This commit is contained in:
Mikhail Zarechenskiy
2017-07-27 22:09:49 +03:00
parent fb72726f08
commit 3fb865e07c
10 changed files with 37 additions and 58 deletions
@@ -0,0 +1,5 @@
fun <X, Y, Z> foo(f: (Y) -> Z, g: (X) -> Y, x: X): Z = f(g(x))
// TODO: Actually, this is a bug and will work when new inference is enabled
// see ([NI] Select variable with proper non-trivial constraint first) for more details
fun test() = <!TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>({ it + 1 }, { it.length }, "")
@@ -0,0 +1,4 @@
package
public fun </*0*/ X, /*1*/ Y, /*2*/ Z> foo(/*0*/ f: (Y) -> Z, /*1*/ g: (X) -> Y, /*2*/ x: X): Z
public fun test(): [ERROR : Error function type]
@@ -0,0 +1,9 @@
typealias SuspendFn = suspend () -> Unit
val test1f: suspend () -> Unit = fun () {}
val test2f: suspend Any.() -> Unit = fun Any.() {}
// This is a bug in the old inference and should be fixed in new inference
// see "Fix anonymous function literals handling in type checker" for more deatils
val test3f: suspend Any.(Int) -> Int = <!TYPE_MISMATCH!>fun (k: Int) = k + 1<!>
val test4f: SuspendFn = <!TYPE_MISMATCH!>fun Any.() {}<!>
@@ -0,0 +1,7 @@
package
public val test1f: suspend () -> kotlin.Unit
public val test2f: suspend kotlin.Any.() -> kotlin.Unit
public val test3f: suspend kotlin.Any.(kotlin.Int) -> kotlin.Int
public val test4f: SuspendFn /* = suspend () -> kotlin.Unit */
public typealias SuspendFn = suspend () -> kotlin.Unit