aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-04-04 22:13:39 +0200
committerMartin Odersky <odersky@gmail.com>2017-04-04 22:17:53 +0200
commit9b37a7c2202c701691cb12b3d040645835d17ff7 (patch)
tree92519dc2a7bd4d414deafb0244f7d19ffaceb2b1 /tests
parenta46f4f840a456bb70ef4b95e6b18608522075442 (diff)
downloaddotty-9b37a7c2202c701691cb12b3d040645835d17ff7.tar.gz
dotty-9b37a7c2202c701691cb12b3d040645835d17ff7.tar.bz2
dotty-9b37a7c2202c701691cb12b3d040645835d17ff7.zip
New and updated tests
Diffstat (limited to 'tests')
-rw-r--r--tests/neg/enums.scala6
-rw-r--r--tests/run/enum-List2a.scala11
-rw-r--r--tests/run/enum-approx.scala22
-rw-r--r--tests/run/enumList2a.check1
4 files changed, 37 insertions, 3 deletions
diff --git a/tests/neg/enums.scala b/tests/neg/enums.scala
index 1ed3007e7..108ec4a6c 100644
--- a/tests/neg/enums.scala
+++ b/tests/neg/enums.scala
@@ -8,13 +8,13 @@ enum class X {
}
enum E1[T] {
- case C
+ case C // error: cannot determine type argument
}
enum E2[+T, +U >: T] {
- case C
+ case C // error: cannot determine type argument
}
enum E3[-T <: Ordered[T]] {
- case C
+ case C // error: cannot determine type argument
}
diff --git a/tests/run/enum-List2a.scala b/tests/run/enum-List2a.scala
new file mode 100644
index 000000000..323a5587c
--- /dev/null
+++ b/tests/run/enum-List2a.scala
@@ -0,0 +1,11 @@
+enum class List[+T]
+object List {
+ case Cons(x: T, xs: List[T])
+ case Nil
+}
+object Test {
+ import List._
+ val xs = Cons(1, Cons(2, Cons(3, Nil)))
+ def main(args: Array[String]) = println(xs)
+}
+
diff --git a/tests/run/enum-approx.scala b/tests/run/enum-approx.scala
new file mode 100644
index 000000000..7811b3909
--- /dev/null
+++ b/tests/run/enum-approx.scala
@@ -0,0 +1,22 @@
+enum class Fun[-T, +U >: Null] {
+ def f: T => U = null
+}
+object Fun {
+ case Identity[T, U >: Null](override val f: T => U) extends Fun[T, U]
+ case ConstNull {
+ override def f = x => null
+ }
+ case ConstNullClass() {
+ override def f = x => null
+ }
+ case ConstNullSimple
+}
+
+object Test {
+ def main(args: Array[String]) = {
+ val x: Null = Fun.ConstNull.f("abc")
+ val y: Null = Fun.ConstNullClass().f("abc")
+ assert(Fun.ConstNullSimple.f == null)
+ }
+}
+
diff --git a/tests/run/enumList2a.check b/tests/run/enumList2a.check
new file mode 100644
index 000000000..1d4812de1
--- /dev/null
+++ b/tests/run/enumList2a.check
@@ -0,0 +1 @@
+Cons(1,Cons(2,Cons(3,Nil)))