summaryrefslogtreecommitdiff
path: root/test/files/neg/tailrec-4.check
diff options
context:
space:
mode:
authorJohannes Rudolph <johannes.rudolph@gmail.com>2014-06-25 13:40:13 +0200
committerJohannes Rudolph <johannes.rudolph@gmail.com>2014-06-25 15:24:26 +0200
commit299594e63a925c3e6042c6fd920de2f359417cbd (patch)
tree61558e65344b295d63c0ec425782c607e47d4104 /test/files/neg/tailrec-4.check
parent1c0b48da8dfa124eb762620c8cb803a9079b7c81 (diff)
downloadscala-299594e63a925c3e6042c6fd920de2f359417cbd.tar.gz
scala-299594e63a925c3e6042c6fd920de2f359417cbd.tar.bz2
scala-299594e63a925c3e6042c6fd920de2f359417cbd.zip
SI-8657 don't miss tailrec defs in more positions
1) First operand of boolean expression using `&&` or `||`. Second operands of those boolean exprs were already treated specially here but handling for first operands was missing. 2) Condition of `If`. Also added a test for guards.
Diffstat (limited to 'test/files/neg/tailrec-4.check')
-rw-r--r--test/files/neg/tailrec-4.check16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/files/neg/tailrec-4.check b/test/files/neg/tailrec-4.check
new file mode 100644
index 0000000000..3ec3274478
--- /dev/null
+++ b/test/files/neg/tailrec-4.check
@@ -0,0 +1,16 @@
+tailrec-4.scala:6: error: could not optimize @tailrec annotated method foo: it contains a recursive call not in tail position
+ @tailrec def foo: Int = foo + 1
+ ^
+tailrec-4.scala:11: error: could not optimize @tailrec annotated method foo: it contains a recursive call not in tail position
+ @tailrec def foo: Int = foo + 1
+ ^
+tailrec-4.scala:17: error: could not optimize @tailrec annotated method foo: it contains a recursive call not in tail position
+ @tailrec def foo: Int = foo + 1
+ ^
+tailrec-4.scala:23: error: could not optimize @tailrec annotated method foo: it contains a recursive call not in tail position
+ @tailrec def foo: Int = foo + 1
+ ^
+tailrec-4.scala:31: error: could not optimize @tailrec annotated method foo: it contains a recursive call not in tail position
+ @tailrec def foo: Int = foo + 1
+ ^
+5 errors found