// EXPECTED_REACHABLE_NODES: 1292 package foo open class Foo(open val value: T) open class MutableFoo(override var value: T): Foo(value) operator fun Foo.plus(x: T): Foo = Foo(x) // overloading: operator fun MutableFoo.plus(x: T): MutableFoo = MutableFoo(x) fun box(): String { var f = MutableFoo(1) f += 2 return if (f is MutableFoo && f.value == 2) "OK" else "fail" }