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 @@ -373,6 +373,12 @@ class TailRec extends MiniPhase {
373
373
noTailTransform(tree.finalizer)
374
374
)
375
375
376
+ case tree @ WhileDo (cond, body) =>
377
+ cpy.WhileDo (tree)(
378
+ noTailTransform(cond),
379
+ noTailTransform(body)
380
+ )
381
+
376
382
case _ : Alternative | _ : Bind =>
377
383
assert(false , " We should never have gotten inside a pattern" )
378
384
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