class A (val p: String, p1: String, p2: String) {

    var cond1 :String = ""

    var cond2 :String = ""

    val prop: String = if (p == "test") p1 else p2

    val prop1 = if (cond1(p)) p1

    val prop2 = if (cond2(p)) else;

    fun cond1(p: String): Boolean {
        cond1 = "cond1"
        return p == "test"
    }

    fun cond2(p: String): Boolean {
        cond2 = "cond2"
        return p == "test"
    }
}

fun box(): String {
    val a = A("test", "OK", "fail")

    if (a.prop != "OK") return "fail 1"

    if (a.cond1 != "cond1") return "fail 2"

    if (a.cond2 != "cond2") return "fail 3"

    return "OK"
}