// ISSUE: KT-52580 interface Base { val a: String } interface Derived : Base { override val a: String val b: Int } class BaseImpl(override val a: String) : Base fun test(base: Base): String { return consume( base.run { a }, (base as? Derived)?.b?.toString(), base.a ) } fun consume(s1: String, s2: String?, s3: String): String { return "$s1|$s2|$s3" } fun box(): String { val result = test(BaseImpl("Base")) return when (result) { "Base|null|Base" -> "OK" else -> "Fail: $result" } }