blob: 4822799dfa0748031294b5a488b88b5717ec0148 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import annotation._
object Tail {
def tcInFunc: Unit = {
() => {
@tailrec def foo: Int = foo + 1
}
}
def tcInBooleanExprFirstOp(x: Int, v: Int): Boolean = {
{
@tailrec def foo: Int = foo + 1
foo
} == v && true
}
def tcInBooleanExprSecondOp(x: Int, v: Int): Boolean = {
true && {
@tailrec def foo: Int = foo + 1
foo
} == v
}
def tcInIfCond(x: Int, v: Int): Boolean = {
if ({
@tailrec def foo: Int = foo + 1
foo
} == v) true else false
}
def tcInPatternGuard(x: Int, v: Int): Boolean =
v match {
case _ if
{
@tailrec def foo: Int = foo + 1
foo == 42
} => true
}
}
|