// FILE: 1.kt
//WITH_RUNTIME
package test

data class Address(
        val createdTimeMs: Long = 0,
        val firstName: String = "",
        val lastName: String = ""
)

inline fun String.switchIfEmpty(provider: () -> String): String {
    return if (isEmpty()) provider() else this
}

// FILE: 2.kt

import test.*

fun box(): String {
    val address = Address()
    val result = address.copy(
            firstName = address.firstName.switchIfEmpty { "O" },
            lastName = address.lastName.switchIfEmpty { "K" }
    )

    return result.firstName + result.lastName
}