interface ApplicationCall interface AuthenticationService { suspend fun execute(request: Any): Any } suspend fun dummy() = Any() suspend inline fun ApplicationCall.receiveJSON(): Type { return dummy() as Type } suspend inline fun ApplicationCall.respond(message: Any) { } suspend fun ApplicationCall.test(authenticationService: AuthenticationService) { respond(authenticationService.execute(receiveJSON())) } // $i$f$respond x1, $i$f$receiveJSON x2: before and after suspension point // 3 ISTORE 5 // 0 ILOAD 5 // 2 \$i\$f\$receiveJSON I .* 5 // 1 \$i\$f\$respond I .* 5