FIR: introduce builtin suspend related diagnostics
This commit is contained in:
committed by
teamcityserver
parent
391c4db87c
commit
229dfd3f5f
Vendored
-76
@@ -1,76 +0,0 @@
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
fun <R> suspend(block: suspend () -> R): suspend () -> R = block
|
||||
|
||||
class A {
|
||||
infix fun <R> suspend(block: suspend () -> R): suspend () -> R = block
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.EXPRESSION)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class Ann
|
||||
|
||||
fun bar() {
|
||||
suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
@Ann suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend @Ann {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend({ println() })
|
||||
|
||||
suspend<Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
val w: (suspend () -> Int) -> Any? = ::suspend
|
||||
|
||||
A().suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
A().suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
A().suspend({ println() })
|
||||
|
||||
A().suspend<Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
with(A()) {
|
||||
suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend({ println() })
|
||||
|
||||
suspend<Unit> {
|
||||
println()
|
||||
}
|
||||
}
|
||||
|
||||
A() suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
A() suspend ({
|
||||
println()
|
||||
})
|
||||
}
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
fun <R> suspend(block: R) = block
|
||||
|
||||
class A {
|
||||
infix fun <R> suspend(block: R) = block
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.EXPRESSION)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class Ann
|
||||
|
||||
fun bar() {
|
||||
suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
@Ann suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend @Ann {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend({ println() })
|
||||
|
||||
suspend<suspend () -> Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend<Nothing?>(null)
|
||||
|
||||
val w: (Any?) -> Any? = ::suspend
|
||||
|
||||
A().suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
A().suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
A().suspend({ println() })
|
||||
|
||||
A().suspend<suspend () -> Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
A().suspend<Nothing?>(null)
|
||||
|
||||
with(A()) {
|
||||
suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend({ println() })
|
||||
|
||||
suspend<suspend () -> Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend<Nothing?>(null)
|
||||
}
|
||||
|
||||
A() suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
A() suspend ({
|
||||
println()
|
||||
})
|
||||
|
||||
A() suspend ""
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
fun bar() {
|
||||
suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
@Ann suspend {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend @Ann {
|
||||
println()
|
||||
}
|
||||
|
||||
kotlin.suspend {
|
||||
|
||||
}
|
||||
|
||||
suspend() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspend({ println() })
|
||||
|
||||
suspend<Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
val w: (suspend () -> Int) -> Any? = ::suspend
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.EXPRESSION)
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
annotation class Ann
|
||||
|
||||
fun main(suspend: WLambdaInvoke) {
|
||||
|
||||
suspend {}
|
||||
}
|
||||
|
||||
class WLambdaInvoke {
|
||||
operator fun invoke(l: () -> Unit) {}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ReleaseCoroutines
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+6
-6
@@ -8,23 +8,23 @@ fun bar() {
|
||||
println()
|
||||
}
|
||||
|
||||
kotlin.suspend {
|
||||
kotlin.<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspend<!> {
|
||||
|
||||
}
|
||||
|
||||
suspendLambda {
|
||||
<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspendLambda<!> {
|
||||
println()
|
||||
}
|
||||
|
||||
suspendLambda() {
|
||||
<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspendLambda<!>() {
|
||||
println()
|
||||
}
|
||||
|
||||
suspendLambda({ println() })
|
||||
<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspendLambda<!>({ println() })
|
||||
|
||||
suspendLambda<Unit> {
|
||||
<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspendLambda<!><Unit> {
|
||||
println()
|
||||
}
|
||||
|
||||
val w: (suspend () -> Int) -> Any? = ::suspendLambda
|
||||
val w: (suspend () -> Int) -> Any? = ::<!NON_MODIFIER_FORM_FOR_BUILT_IN_SUSPEND!>suspendLambda<!>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user