From 9b37a7c2202c701691cb12b3d040645835d17ff7 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Tue, 4 Apr 2017 22:13:39 +0200 Subject: New and updated tests --- tests/neg/enums.scala | 6 +++--- tests/run/enum-List2a.scala | 11 +++++++++++ tests/run/enum-approx.scala | 22 ++++++++++++++++++++++ tests/run/enumList2a.check | 1 + 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 tests/run/enum-List2a.scala create mode 100644 tests/run/enum-approx.scala create mode 100644 tests/run/enumList2a.check (limited to 'tests') 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))) -- cgit v1.2.3