Tests: move some tests to diagnostics
This commit is contained in:
committed by
Space Team
parent
b3b9ffaea9
commit
bad7fa597b
+84
@@ -0,0 +1,84 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// FIR_IDENTICAL
|
||||
// WITH_STDLIB
|
||||
|
||||
// MODULE: lib
|
||||
// FILE: lib.kt
|
||||
|
||||
val lock = Any()
|
||||
|
||||
inline fun inlineMe(c: () -> Unit) {
|
||||
synchronized(lock) {
|
||||
c()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun monitorInFinally(a: () -> Unit, b: () -> Unit) {
|
||||
try {
|
||||
a()
|
||||
} finally {
|
||||
synchronized(lock) {
|
||||
b()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: main.kt
|
||||
|
||||
fun builder(c: suspend () -> Unit) {}
|
||||
|
||||
private val lock = Any()
|
||||
|
||||
suspend fun suspensionPoint() {}
|
||||
|
||||
fun test() {
|
||||
builder <!SUSPENSION_POINT_INSIDE_MONITOR!>{
|
||||
inlineMe {
|
||||
suspensionPoint()
|
||||
}
|
||||
}<!>
|
||||
|
||||
builder <!SUSPENSION_POINT_INSIDE_MONITOR!>{
|
||||
monitorInFinally(
|
||||
{},
|
||||
{ suspensionPoint() }
|
||||
)
|
||||
}<!>
|
||||
|
||||
builder {
|
||||
withCrossinline {}
|
||||
|
||||
withCrossinline {
|
||||
suspensionPoint()
|
||||
}
|
||||
}
|
||||
|
||||
synchronized(lock) {
|
||||
builder {
|
||||
suspensionPoint()
|
||||
}
|
||||
}
|
||||
|
||||
synchronized(lock) {
|
||||
object : SuspendRunnable {
|
||||
override suspend fun run() {
|
||||
suspensionPoint()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface SuspendRunnable {
|
||||
suspend fun run()
|
||||
}
|
||||
|
||||
|
||||
<!SUSPENSION_POINT_INSIDE_MONITOR!>inline fun withCrossinline(crossinline a: suspend () -> Unit): suspend () -> Unit {
|
||||
val c : suspend () -> Unit = <!SUSPENSION_POINT_INSIDE_MONITOR!>{
|
||||
inlineMe {
|
||||
a()
|
||||
}
|
||||
}<!>
|
||||
return c
|
||||
}<!>
|
||||
Reference in New Issue
Block a user