diff --git a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt b/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt index 626b81099b6..7c7d5f155c2 100644 --- a/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt +++ b/js/js.translator/testData/operatorOverloading/cases/overloadPlusAssignViaPlusExtensionFunction.kt @@ -1,19 +1,16 @@ package foo -import java.util.* +open class Foo(open val value: T) +open class MutableFoo(override var value: T): Foo(value) + +fun Foo.plus(x: T): Foo = Foo(x) + +// overloading: +fun MutableFoo.plus(x: T): MutableFoo = MutableFoo(x) -fun ArrayList.plus(other: Collection): ArrayList { - val c = ArrayList() - c.addAll(this) - c.addAll(other) - return c -} fun box(): Boolean { - var v1 = ArrayList() - val v2 = ArrayList() - v1.add("foo") - v2.add("bar") - v1 += v2 - return (v1.size() == 2 && v1[0] == "foo" && v1[1] == "bar") + var f = MutableFoo(1) + f += 2 + return (f is MutableFoo && f.value == 2) }