interface Base {
    fun foo(): Int
}

val Int.getter: Int
    get() {
        return object : Base {
            override fun foo(): Int {
                return this@getter
            }
        }.foo()
    }

fun box(): String {
    val i = 1
    if (i.getter != 1) return "getter failed"

    return "OK"
}
