aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDmitry Petrashko <dark@d-d.me>2017-01-11 19:14:53 +0100
committerGitHub <noreply@github.com>2017-01-11 19:14:53 +0100
commitba7e12999dc645dbcba04cf365dfd4d621ee4662 (patch)
tree87001ce07a6013719df241cc0f28c12ba5ec6718 /tests
parent8b44b6c1fb0f03a555834d189b98ef30091153fe (diff)
parentcf57534c6141593fbe2ac2fec9d101fa662ecf05 (diff)
downloaddotty-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.check2
-rw-r--r--tests/run/mixin-primitive-on-generic-1.scala19
-rw-r--r--tests/run/mixin-primitive-on-generic-2.check2
-rw-r--r--tests/run/mixin-primitive-on-generic-2.scala19
-rw-r--r--tests/run/mixin-primitive-on-generic-3.check2
-rw-r--r--tests/run/mixin-primitive-on-generic-3.scala21
-rw-r--r--tests/run/mixin-primitive-on-generic-4.check2
-rw-r--r--tests/run/mixin-primitive-on-generic-4.scala21
-rw-r--r--tests/run/mixin-primitive-on-generic-5.check2
-rw-r--r--tests/run/mixin-primitive-on-generic-5.scala21
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