Fix linenumbers written to debug metadata

#KT-26848 Fixed
This commit is contained in:
Ilmir Usmanov
2018-09-18 16:26:59 +03:00
parent c0f4933356
commit 5dea245a37
5 changed files with 88 additions and 12 deletions
@@ -0,0 +1,62 @@
// !LANGUAGE: +ReleaseCoroutines
// IGNORE_BACKEND: JVM_IR
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// FULL_JDK
// WITH_COROUTINES
import helpers.*
import kotlin.coroutines.*
import kotlin.coroutines.intrinsics.*
suspend fun foo() {
/*
A
LOT
OF
EMPTY
LINES
*/
suspendHere()
suspendHere()
}
val lambda: suspend () -> Unit = {
/*
A
LOT
OF
EMPTY
LINES
*/
suspendHere()
suspendHere()
}
var continuation: Continuation<Unit>? = null
suspend fun suspendHere() = suspendCoroutineUninterceptedOrReturn<Unit> {
continuation = it
COROUTINE_SUSPENDED
}
fun builder(c: suspend () -> Unit) {
c.startCoroutine(EmptyContinuation)
}
fun box(): String {
builder {
foo()
}
if (!"$continuation".contains("21")) return "$continuation"
continuation!!.resumeWith(Result.success(Unit))
if (!"$continuation".contains("22")) return "$continuation"
builder {
lambda()
}
if (!"$continuation".contains("33")) return "$continuation"
continuation!!.resumeWith(Result.success(Unit))
if (!"$continuation".contains("34")) return "$continuation"
return "OK"
}