Do not mark fake inliner variables as alive

This prevents them from spilling.
 #KT-29317 Fixed
This commit is contained in:
Ilmir Usmanov
2019-01-16 21:10:57 +03:00
committed by Stanislav Erokhin
parent 7e4e1b9a4d
commit e8c52e0a8f
5 changed files with 43 additions and 12 deletions
@@ -0,0 +1,25 @@
// IGNORE_BACKEND: JVM_IR
interface ApplicationCall
interface AuthenticationService {
suspend fun execute(request: Any): Any
}
suspend fun dummy() = Any()
suspend inline fun <reified Type : Any> ApplicationCall.receiveJSON(): Type {
return dummy() as Type
}
suspend inline fun ApplicationCall.respond(message: Any) {
}
suspend fun ApplicationCall.test(authenticationService: AuthenticationService) {
respond(authenticationService.execute(receiveJSON()))
}
// 2 ISTORE 5
// 0 ILOAD 5
// 1 \$i\$f\$receiveJSON I .* 5
// 1 \$i\$f\$respond I .* 5