Skip to content

Commit 49e307c

Browse files
Backport "Fix possible crash in Desugar" to LTS (#20865)
Backports #19567 to the LTS branch. PR submitted by the release tooling. [skip ci]
2 parents 344297d + fc34a41 commit 49e307c

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

compiler/src/dotty/tools/dotc/ast/Desugar.scala

+9-7
Original file line numberDiff line numberDiff line change
@@ -1502,15 +1502,17 @@ object desugar {
15021502
* skipping elements that are not convertible.
15031503
*/
15041504
def patternsToParams(elems: List[Tree])(using Context): List[ValDef] =
1505-
def toParam(elem: Tree, tpt: Tree): Tree =
1505+
def toParam(elem: Tree, tpt: Tree, span: Span): Tree =
15061506
elem match
1507-
case Annotated(elem1, _) => toParam(elem1, tpt)
1508-
case Typed(elem1, tpt1) => toParam(elem1, tpt1)
1509-
case Ident(id: TermName) => ValDef(id, tpt, EmptyTree).withFlags(Param)
1507+
case Annotated(elem1, _) => toParam(elem1, tpt, span)
1508+
case Typed(elem1, tpt1) => toParam(elem1, tpt1, span)
1509+
case Ident(id: TermName) => ValDef(id, tpt, EmptyTree).withFlags(Param).withSpan(span)
15101510
case _ => EmptyTree
1511-
elems.map(param => toParam(param, TypeTree()).withSpan(param.span)).collect {
1512-
case vd: ValDef => vd
1513-
}
1511+
elems
1512+
.map: param =>
1513+
toParam(param, TypeTree(), param.span)
1514+
.collect:
1515+
case vd: ValDef => vd
15141516

15151517
def makeContextualFunction(formals: List[Tree], body: Tree, erasedParams: List[Boolean])(using Context): Function = {
15161518
val mods = Given

0 commit comments

Comments
 (0)