diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/neg/tailcall/t1672b.check (renamed from tests/untried/neg/t1672b.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/t1672b.scala (renamed from tests/untried/neg/t1672b.scala) | 2 | ||||
-rw-r--r-- | tests/neg/tailcall/t3275.check (renamed from tests/untried/neg/t3275.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/t3275.scala (renamed from tests/untried/neg/t3275.scala) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/t6574.check (renamed from tests/untried/neg/t6574.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/t6574.scala (renamed from tests/untried/neg/t6574.scala) | 2 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec-2.check (renamed from tests/untried/neg/tailrec-2.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec-2.scala (renamed from tests/untried/neg/tailrec-2.scala) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec-3.check (renamed from tests/untried/neg/tailrec-3.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec-3.scala (renamed from tests/untried/neg/tailrec-3.scala) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec.check (renamed from tests/untried/neg/tailrec.check) | 0 | ||||
-rw-r--r-- | tests/neg/tailcall/tailrec.scala (renamed from tests/untried/neg/tailrec.scala) | 0 | ||||
-rw-r--r-- | tests/pos/tailcall/t1672.scala | 10 | ||||
-rw-r--r-- | tests/pos/tailcall/t4649.flags (renamed from tests/untried/pos/t4649.flags) | 0 | ||||
-rw-r--r-- | tests/pos/tailcall/t4649.scala (renamed from tests/untried/pos/t4649.scala) | 2 | ||||
-rw-r--r-- | tests/pos/tailcall/t6479.scala (renamed from tests/untried/pos/t6479.scala) | 0 | ||||
-rw-r--r-- | tests/pos/tailcall/t6574.scala (renamed from tests/untried/pos/t6574.scala) | 2 | ||||
-rw-r--r-- | tests/pos/tailcall/t6891.flags (renamed from tests/untried/pos/t6891.flags) | 0 | ||||
-rw-r--r-- | tests/pos/tailcall/t6891.scala (renamed from tests/untried/pos/t6891.scala) | 2 | ||||
-rw-r--r-- | tests/pos/tailcall/tailcall.scala | 5 | ||||
-rw-r--r-- | tests/pos/typers.scala | 2 | ||||
-rw-r--r-- | tests/untried/pos/t1672.scala | 10 |
22 files changed, 21 insertions, 16 deletions
diff --git a/tests/untried/neg/t1672b.check b/tests/neg/tailcall/t1672b.check index 60ccf7717..60ccf7717 100644 --- a/tests/untried/neg/t1672b.check +++ b/tests/neg/tailcall/t1672b.check diff --git a/tests/untried/neg/t1672b.scala b/tests/neg/tailcall/t1672b.scala index 0ccdd0363..f05d05c34 100644 --- a/tests/untried/neg/t1672b.scala +++ b/tests/neg/tailcall/t1672b.scala @@ -1,4 +1,4 @@ -object Test { +object Test1772B { @annotation.tailrec def bar : Nothing = { try { diff --git a/tests/untried/neg/t3275.check b/tests/neg/tailcall/t3275.check index 117c79232..117c79232 100644 --- a/tests/untried/neg/t3275.check +++ b/tests/neg/tailcall/t3275.check diff --git a/tests/untried/neg/t3275.scala b/tests/neg/tailcall/t3275.scala index 18e38a1a9..18e38a1a9 100644 --- a/tests/untried/neg/t3275.scala +++ b/tests/neg/tailcall/t3275.scala diff --git a/tests/untried/neg/t6574.check b/tests/neg/tailcall/t6574.check index c67b4ed80..c67b4ed80 100644 --- a/tests/untried/neg/t6574.check +++ b/tests/neg/tailcall/t6574.check diff --git a/tests/untried/neg/t6574.scala b/tests/neg/tailcall/t6574.scala index 9e1d624e5..59f3108ad 100644 --- a/tests/untried/neg/t6574.scala +++ b/tests/neg/tailcall/t6574.scala @@ -4,7 +4,7 @@ class Bad[X, Y](val v: Int) extends AnyVal { println("tail") } - @annotation.tailrec final def differentTypeArgs {: Unit = + @annotation.tailrec final def differentTypeArgs : Unit = { {(); new Bad[String, Unit](0)}.differentTypeArgs } } diff --git a/tests/untried/neg/tailrec-2.check b/tests/neg/tailcall/tailrec-2.check index 1daad6922..1daad6922 100644 --- a/tests/untried/neg/tailrec-2.check +++ b/tests/neg/tailcall/tailrec-2.check diff --git a/tests/untried/neg/tailrec-2.scala b/tests/neg/tailcall/tailrec-2.scala index d6b8b1355..d6b8b1355 100644 --- a/tests/untried/neg/tailrec-2.scala +++ b/tests/neg/tailcall/tailrec-2.scala diff --git a/tests/untried/neg/tailrec-3.check b/tests/neg/tailcall/tailrec-3.check index a3542fb56..a3542fb56 100644 --- a/tests/untried/neg/tailrec-3.check +++ b/tests/neg/tailcall/tailrec-3.check diff --git a/tests/untried/neg/tailrec-3.scala b/tests/neg/tailcall/tailrec-3.scala index 20361658e..20361658e 100644 --- a/tests/untried/neg/tailrec-3.scala +++ b/tests/neg/tailcall/tailrec-3.scala diff --git a/tests/untried/neg/tailrec.check b/tests/neg/tailcall/tailrec.check index 946d3421e..946d3421e 100644 --- a/tests/untried/neg/tailrec.check +++ b/tests/neg/tailcall/tailrec.check diff --git a/tests/untried/neg/tailrec.scala b/tests/neg/tailcall/tailrec.scala index 83a0c1a9e..83a0c1a9e 100644 --- a/tests/untried/neg/tailrec.scala +++ b/tests/neg/tailcall/tailrec.scala diff --git a/tests/pos/tailcall/t1672.scala b/tests/pos/tailcall/t1672.scala new file mode 100644 index 000000000..9be5c6066 --- /dev/null +++ b/tests/pos/tailcall/t1672.scala @@ -0,0 +1,10 @@ +object Test1672 { + @annotation.tailrec + def bar(x: Int)(y: Int) : Nothing = { + try { + throw new RuntimeException + } catch { + case _: Throwable => bar(x)(y) + } + } +} diff --git a/tests/untried/pos/t4649.flags b/tests/pos/tailcall/t4649.flags index e8fb65d50..e8fb65d50 100644 --- a/tests/untried/pos/t4649.flags +++ b/tests/pos/tailcall/t4649.flags diff --git a/tests/untried/pos/t4649.scala b/tests/pos/tailcall/t4649.scala index 0d6caa8d7..5f009b7a4 100644 --- a/tests/untried/pos/t4649.scala +++ b/tests/pos/tailcall/t4649.scala @@ -1,4 +1,4 @@ -object Test { +object Test4649 { // @annotation.tailrec def lazyFilter[E](s: Stream[E], p: E => Boolean): Stream[E] = s match { case h #:: t => if (p(h)) h #:: lazyFilter(t, p) else lazyFilter(t, p) diff --git a/tests/untried/pos/t6479.scala b/tests/pos/tailcall/t6479.scala index e4a4ff601..e4a4ff601 100644 --- a/tests/untried/pos/t6479.scala +++ b/tests/pos/tailcall/t6479.scala diff --git a/tests/untried/pos/t6574.scala b/tests/pos/tailcall/t6574.scala index 6bb0042c6..cd0fdbb8d 100644 --- a/tests/untried/pos/t6574.scala +++ b/tests/pos/tailcall/t6574.scala @@ -4,7 +4,7 @@ class Bad[X, Y](val v: Int) extends AnyVal { this.foo[Z](a)(b) } - @annotation.tailrec final def differentReceiver {: Unit = + @annotation.tailrec final def differentReceiver : Unit = { {(); new Bad[X, Y](0)}.differentReceiver } diff --git a/tests/untried/pos/t6891.flags b/tests/pos/tailcall/t6891.flags index fe048006a..fe048006a 100644 --- a/tests/untried/pos/t6891.flags +++ b/tests/pos/tailcall/t6891.flags diff --git a/tests/untried/pos/t6891.scala b/tests/pos/tailcall/t6891.scala index bed2d0d77..edbe6f097 100644 --- a/tests/untried/pos/t6891.scala +++ b/tests/pos/tailcall/t6891.scala @@ -1,4 +1,4 @@ -object O { +object O6891 { implicit class Foo[A](val value: String) extends AnyVal { def bippy() = { @annotation.tailrec def loop(x: A): Unit = loop(x) diff --git a/tests/pos/tailcall/tailcall.scala b/tests/pos/tailcall/tailcall.scala new file mode 100644 index 000000000..9cf373cf0 --- /dev/null +++ b/tests/pos/tailcall/tailcall.scala @@ -0,0 +1,5 @@ +class tailcall { + val shift = 1 + final def fact(x: Int, acc: Int = 1): Int = if (x == 0) acc else fact(x - shift, acc * x) + def id[T <: AnyRef](x: T): T = if (x eq null) x else id(x) +} diff --git a/tests/pos/typers.scala b/tests/pos/typers.scala index 4f012e7bf..a95af558e 100644 --- a/tests/pos/typers.scala +++ b/tests/pos/typers.scala @@ -77,7 +77,7 @@ object typers { class C { - @tailrec def factorial(acc: Int, n: Int): Int = (n: @switch) match { + @tailrec final def factorial(acc: Int, n: Int): Int = (n: @switch) match { case 0 => acc case _ => factorial(acc * n, n - 1) } diff --git a/tests/untried/pos/t1672.scala b/tests/untried/pos/t1672.scala deleted file mode 100644 index 5ee6bb175..000000000 --- a/tests/untried/pos/t1672.scala +++ /dev/null @@ -1,10 +0,0 @@ -object Test { - @annotation.tailrec - def bar : Nothing = { - try { - throw new RuntimeException - } catch { - case _: Throwable => bar - } - } -} |