Skip to content

Commit fc34a41

Browse files
oderskyWojciechMazur
authored andcommitted
Fix possible crash in Desugar
This might fix #19560. [Cherry-picked 6e31578]
1 parent 733a794 commit fc34a41

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)