From 25e5172591f94195a743845ec1fe849afce06ed4 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 9 Jul 2015 18:42:34 +0300 Subject: [PATCH] Rewrite test for overloading plus not to depend on stdlib classes and methods. --- ...rloadPlusAssignViaPlusExtensionFunction.kt | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) 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) }