[NI] Remove failing codegen tests and add similar diagnostic one

These tests were added for suspend-conversions, it worked only
 with new inference, but implementation was incorrect and had other
 bugs, which were fixed in 1ac25259.
 Support of suspend-conversions will be addressed later with a different
 implementation (#KT-30703)
This commit is contained in:
Mikhail Zarechenskiy
2019-04-01 00:19:15 +03:00
parent 4a3e4f099d
commit a4cbec64b7
11 changed files with 34 additions and 124 deletions
@@ -1,38 +0,0 @@
// !LANGUAGE: +NewInference
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS
// NO_CHECK_LAMBDA_INLINING
// FILE: test.kt
// We cannot use COMMON_COROUTINES_TEST here due to !LANGUAGE directive
// TODO: Fix this
inline fun go(f: () -> String) = f()
// FILE: box.kt
// WITH_RUNTIME
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
override val context: CoroutineContext
get() = EmptyCoroutineContext
override fun resumeWith(result: Result<Unit>) {
result.getOrThrow()
}
})
}
suspend fun String.id(): String = this
fun box(): String {
val x = "OK"
var res = "FAIL"
builder {
res = go(x::id)
}
return res
}
@@ -1,36 +0,0 @@
// !LANGUAGE: +NewInference
// IGNORE_BACKEND: NATIVE
// IGNORE_BACKEND: JVM_IR
// IGNORE_BACKEND: JS
// NO_CHECK_LAMBDA_INLINING
// FILE: test.kt
inline suspend fun go(f: () -> String) = f()
// FILE: box.kt
// WITH_RUNTIME
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
fun builder(c: suspend () -> Unit) {
c.startCoroutine(object: Continuation<Unit> {
override val context: CoroutineContext
get() = EmptyCoroutineContext
override fun resumeWith(result: Result<Unit>) {
result.getOrThrow()
}
})
}
suspend fun String.id(): String = this
fun box(): String {
val x = "OK"
var res = "FAIL"
builder {
res = go(x::id)
}
return res
}
@@ -0,0 +1,17 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline fun go1(f: () -> String) = f()
inline suspend fun go2(f: () -> String) = f()
fun builder(c: suspend () -> Unit) {}
suspend fun String.id(): String = this
fun box() {
val x = "f"
builder {
go1(<!TYPE_MISMATCH!>x::id<!>)
go2(<!TYPE_MISMATCH!>x::id<!>)
}
}
@@ -0,0 +1,7 @@
package
public fun box(): kotlin.Unit
public fun builder(/*0*/ c: suspend () -> kotlin.Unit): kotlin.Unit
public inline fun go1(/*0*/ f: () -> kotlin.String): kotlin.String
public suspend inline fun go2(/*0*/ f: () -> kotlin.String): kotlin.String
public suspend fun kotlin.String.id(): kotlin.String