Fix annotation deserialization on suspend functions

Use proper initial/frontend version of suspend descriptor
when writing METHOD_FOR_FUNCTION, because serializer uses this version

Also this commit contains adjustments of neighboring code to the describe
change

 #KT-16093 Fixed
This commit is contained in:
Denis Zharkov
2017-02-03 16:44:16 +03:00
parent 2516583ecf
commit 2d88419c38
10 changed files with 83 additions and 8 deletions
@@ -0,0 +1,14 @@
// !API_VERSION: 1.1
// SKIP_TXT
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
suspend fun foo(): Unit = suspendCoroutine {
it.resume(Unit)
}
suspend fun bar(): Unit = suspendCoroutineOrReturn {
it.resume(Unit)
COROUTINE_SUSPENDED
}
@@ -0,0 +1,14 @@
// !API_VERSION: 1.0
// SKIP_TXT
import kotlin.coroutines.experimental.*
import kotlin.coroutines.experimental.intrinsics.*
suspend fun foo(): Unit = <!UNRESOLVED_REFERENCE!>suspendCoroutine<!> {
<!UNRESOLVED_REFERENCE!>it<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>resume<!>(Unit)
}
suspend fun bar(): Unit = <!UNRESOLVED_REFERENCE!>suspendCoroutineOrReturn<!> {
<!UNRESOLVED_REFERENCE!>it<!>.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>resume<!>(Unit)
<!UNRESOLVED_REFERENCE!>COROUTINE_SUSPENDED<!>
}