Fix target for annotations/metadata on open suspend functions
Get rid of rewriting of vars in FunctionCodegen::generateMethod, just extracted generateMethodBody instead #KT-19814 Fixed
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
// WITH_REFLECT
|
||||
// IGNORE_BACKEND: JS, NATIVE
|
||||
|
||||
import kotlin.reflect.full.declaredMemberFunctions
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
annotation class Anno
|
||||
|
||||
open class Aaa {
|
||||
@Anno
|
||||
suspend open fun aaa() {}
|
||||
}
|
||||
|
||||
class Bbb {
|
||||
@Anno
|
||||
suspend fun bbb() {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val bbb = Bbb::class.declaredMemberFunctions.first { it.name == "bbb" }.annotations
|
||||
assertEquals(1, bbb.size)
|
||||
assertTrue(bbb.single() is Anno)
|
||||
val aaa = Aaa::class.declaredMemberFunctions.first { it.name == "aaa" }.annotations
|
||||
assertEquals(1, aaa.size)
|
||||
assertTrue(aaa.single() is Anno)
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// WITH_REFLECT
|
||||
// IGNORE_BACKEND: JS, NATIVE
|
||||
|
||||
import kotlin.reflect.full.declaredMemberFunctions
|
||||
import kotlin.reflect.jvm.javaMethod
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
open class Aaa {
|
||||
suspend open fun aaa() {}
|
||||
}
|
||||
|
||||
class Bbb {
|
||||
suspend fun bbb() {}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val bbb = Bbb::class.declaredMemberFunctions.first { it.name == "bbb" }.javaMethod
|
||||
assertEquals("bbb", bbb!!.name)
|
||||
val aaa = Aaa::class.declaredMemberFunctions.first { it.name == "aaa" }.javaMethod
|
||||
assertEquals("aaa", aaa!!.name)
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user