From 9f505a42a1c100eedab9748321a77d4bc345af61 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Fri, 6 Jan 2017 10:58:12 +0100 Subject: Fix #1877: Add forwarders for primitive/generic mixins. --- tests/run/mixin-primitive-on-generic-1.check | 2 ++ tests/run/mixin-primitive-on-generic-1.scala | 19 +++++++++++++++++++ tests/run/mixin-primitive-on-generic-2.check | 2 ++ tests/run/mixin-primitive-on-generic-2.scala | 19 +++++++++++++++++++ tests/run/mixin-primitive-on-generic-3.check | 2 ++ tests/run/mixin-primitive-on-generic-3.scala | 21 +++++++++++++++++++++ 6 files changed, 65 insertions(+) create mode 100644 tests/run/mixin-primitive-on-generic-1.check create mode 100644 tests/run/mixin-primitive-on-generic-1.scala create mode 100644 tests/run/mixin-primitive-on-generic-2.check create mode 100644 tests/run/mixin-primitive-on-generic-2.scala create mode 100644 tests/run/mixin-primitive-on-generic-3.check create mode 100644 tests/run/mixin-primitive-on-generic-3.scala (limited to 'tests/run') 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 +} -- cgit v1.2.3