blob: 5178226dec02810afc8dde60991cef43fad39196 (
plain) (
tree)
|
|
import annotation.tailrec
object Test {
def a(): Option[String] = Some("a")
def test1: Any = {
a() match {
case Some(b1) =>
a() match {
case Some(b2) =>
@tailrec
def tick(i: Int): Unit = if (i < 0) () else tick(i - 1)
tick(10000000) // testing that this doesn't SOE
case None => None
}
case None => None
}
}
def test2: Any = {
a() match {
case Some(b1) =>
a() match {
case Some(b2) =>
@tailrec
def tick(i: Int): Unit = if (i < 0) () else tick(i - 1)
tick(10000000) // testing that this doesn't SOE
case None => test1
}
case None =>
test1 // not a tail call
test1
}
}
def main(args: Array[String]): Unit = {
test1
test2
}
}
|