File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
compiler/src/dotty/tools/dotc/transform Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -377,6 +377,12 @@ class TailRec extends MiniPhase {
377
377
noTailTransform(tree.finalizer)
378
378
)
379
379
380
+ case tree @ WhileDo (cond, body) =>
381
+ cpy.WhileDo (tree)(
382
+ noTailTransform(cond),
383
+ noTailTransform(body)
384
+ )
385
+
380
386
case _ : Alternative | _ : Bind =>
381
387
assert(false , " We should never have gotten inside a pattern" )
382
388
tree
Original file line number Diff line number Diff line change
1
+ import annotation .tailrec
2
+
3
+ object WhileLoops {
4
+ def cond : Boolean = ???
5
+
6
+ @ tailrec def rec1 : Unit = { // error: tailrec not applicable
7
+ while (cond) {
8
+ rec1 // error: not in tail position
9
+ }
10
+ }
11
+
12
+ @ tailrec def rec2 : Boolean = { // error: tailrec not applicable
13
+ while (rec2) { } // error: not in tail position
14
+ true
15
+ }
16
+ }
You can’t perform that action at this time.
0 commit comments