Skip to content

Commit 4c813c1

Browse files
Fix #4240: Deprecate nonlocal returns 🔥
1 parent 70e3537 commit 4c813c1

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

compiler/src/dotty/tools/dotc/transform/NonLocalReturns.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ class NonLocalReturns extends MiniPhase {
8686
}
8787

8888
override def transformReturn(tree: Return)(implicit ctx: Context): Tree =
89-
if (isNonLocalReturn(tree)) nonLocalReturnThrow(tree.expr, tree.from.symbol).withSpan(tree.span)
90-
else tree
89+
if (isNonLocalReturn(tree)) {
90+
if (!ctx.scala2Mode)
91+
ctx.strictWarning("Non local returns are deprecated; use scala.util.control.NonLocalReturns instead", tree.sourcePos)
92+
nonLocalReturnThrow(tree.expr, tree.from.symbol).withSpan(tree.span)
93+
} else tree
9194
}

0 commit comments

Comments
 (0)