diff options
author | Dmitry Petrashko <dark@d-d.me> | 2017-01-11 19:14:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-11 19:14:53 +0100 |
commit | ba7e12999dc645dbcba04cf365dfd4d621ee4662 (patch) | |
tree | 87001ce07a6013719df241cc0f28c12ba5ec6718 /tests | |
parent | 8b44b6c1fb0f03a555834d189b98ef30091153fe (diff) | |
parent | cf57534c6141593fbe2ac2fec9d101fa662ecf05 (diff) | |
download | dotty-ba7e12999dc645dbcba04cf365dfd4d621ee4662.tar.gz dotty-ba7e12999dc645dbcba04cf365dfd4d621ee4662.tar.bz2 dotty-ba7e12999dc645dbcba04cf365dfd4d621ee4662.zip |
Merge pull request #1883 from dotty-staging/fix-1877
Fix #1877: Add forwarders for primitive/generic mixins.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/run/mixin-primitive-on-generic-1.check | 2 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-1.scala | 19 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-2.check | 2 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-2.scala | 19 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-3.check | 2 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-3.scala | 21 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-4.check | 2 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-4.scala | 21 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-5.check | 2 | ||||
-rw-r--r-- | tests/run/mixin-primitive-on-generic-5.scala | 21 |
10 files changed, 111 insertions, 0 deletions
diff --git a/tests/run/mixin-primitive-on-generic-1.check b/tests/run/mixin-primitive-on-generic-1.check new file mode 100644 index 000000000..bb101b641 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-1.check @@ -0,0 +1,2 @@ +true +true diff --git a/tests/run/mixin-primitive-on-generic-1.scala b/tests/run/mixin-primitive-on-generic-1.scala new file mode 100644 index 000000000..470f543ce --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-1.scala @@ -0,0 +1,19 @@ + +object Test { + def main(args: Array[String]): Unit = { + println((new Foo: Baz).value1) + println((new Foo: Baz).value2) + } +} + +class Foo extends Bar[Boolean](true) with Baz + +class Bar[T](x: T) { + def value1: T = x + def value2(): T = x +} + +trait Baz { + def value1: Boolean + def value2(): Boolean +} diff --git a/tests/run/mixin-primitive-on-generic-2.check b/tests/run/mixin-primitive-on-generic-2.check new file mode 100644 index 000000000..bb101b641 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-2.check @@ -0,0 +1,2 @@ +true +true diff --git a/tests/run/mixin-primitive-on-generic-2.scala b/tests/run/mixin-primitive-on-generic-2.scala new file mode 100644 index 000000000..37e3f6035 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-2.scala @@ -0,0 +1,19 @@ + +object Test { + def main(args: Array[String]): Unit = { + println((new Foo: Bar[Boolean]).value1) + println((new Foo: Bar[Boolean]).value2) + } +} + +class Foo extends Baz with Bar[Boolean] + +trait Bar[T] { + def value1: T + def value2(): T +} + +class Baz { + def value1: Boolean = true + def value2(): Boolean = true +} diff --git a/tests/run/mixin-primitive-on-generic-3.check b/tests/run/mixin-primitive-on-generic-3.check new file mode 100644 index 000000000..bb101b641 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-3.check @@ -0,0 +1,2 @@ +true +true diff --git a/tests/run/mixin-primitive-on-generic-3.scala b/tests/run/mixin-primitive-on-generic-3.scala new file mode 100644 index 000000000..f6ff0b63e --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-3.scala @@ -0,0 +1,21 @@ + +object Test { + def main(args: Array[String]): Unit = { + println((new Foo: Baz).value) + println((new Foo: Qux).value) + } +} + +class Foo extends Bar[Boolean](true) with Baz with Qux + +class Bar[T](x: T) { + def value: T = x +} + +trait Baz { + def value: Boolean +} + +trait Qux { + def value: Boolean +} diff --git a/tests/run/mixin-primitive-on-generic-4.check b/tests/run/mixin-primitive-on-generic-4.check new file mode 100644 index 000000000..bb101b641 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-4.check @@ -0,0 +1,2 @@ +true +true diff --git a/tests/run/mixin-primitive-on-generic-4.scala b/tests/run/mixin-primitive-on-generic-4.scala new file mode 100644 index 000000000..ddf62b92f --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-4.scala @@ -0,0 +1,21 @@ + +object Test { + def main(args: Array[String]): Unit = { + println((new Foo: Baz).value1.v) + println((new Foo: Baz).value2.v) + } +} + +class Foo extends Bar[VBoolean](new VBoolean(true)) with Baz + +class Bar[T](x: T) { + def value1: T = x + def value2(): T = x +} + +trait Baz { + def value1: VBoolean + def value2(): VBoolean +} + +class VBoolean(val v: Boolean) extends AnyVal diff --git a/tests/run/mixin-primitive-on-generic-5.check b/tests/run/mixin-primitive-on-generic-5.check new file mode 100644 index 000000000..bb101b641 --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-5.check @@ -0,0 +1,2 @@ +true +true diff --git a/tests/run/mixin-primitive-on-generic-5.scala b/tests/run/mixin-primitive-on-generic-5.scala new file mode 100644 index 000000000..438c130de --- /dev/null +++ b/tests/run/mixin-primitive-on-generic-5.scala @@ -0,0 +1,21 @@ + +object Test { + def main(args: Array[String]): Unit = { + println((new Foo: Bar[VBoolean]).value1.v) + println((new Foo: Bar[VBoolean]).value2.v) + } +} + +class Foo extends Baz with Bar[VBoolean] + +trait Bar[T] { + def value1: T + def value2(): T +} + +class Baz { + def value1: VBoolean = new VBoolean(true) + def value2(): VBoolean = new VBoolean(true) +} + +class VBoolean(val v: Boolean) extends AnyVal |