Skip to content

Commit fb50b1e

Browse files
Fix possible crash in Desugar (#19567)
This might fix #19560.
2 parents 23efb89 + 6e31578 commit fb50b1e

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
@@ -1602,15 +1602,17 @@ object desugar {
16021602
* skipping elements that are not convertible.
16031603
*/
16041604
def patternsToParams(elems: List[Tree])(using Context): List[ValDef] =
1605-
def toParam(elem: Tree, tpt: Tree): Tree =
1605+
def toParam(elem: Tree, tpt: Tree, span: Span): Tree =
16061606
elem match
1607-
case Annotated(elem1, _) => toParam(elem1, tpt)
1608-
case Typed(elem1, tpt1) => toParam(elem1, tpt1)
1609-
case Ident(id: TermName) => ValDef(id, tpt, EmptyTree).withFlags(Param)
1607+
case Annotated(elem1, _) => toParam(elem1, tpt, span)
1608+
case Typed(elem1, tpt1) => toParam(elem1, tpt1, span)
1609+
case Ident(id: TermName) => ValDef(id, tpt, EmptyTree).withFlags(Param).withSpan(span)
16101610
case _ => EmptyTree
1611-
elems.map(param => toParam(param, TypeTree()).withSpan(param.span)).collect {
1612-
case vd: ValDef => vd
1613-
}
1611+
elems
1612+
.map: param =>
1613+
toParam(param, TypeTree(), param.span)
1614+
.collect:
1615+
case vd: ValDef => vd
16141616

16151617
def makeContextualFunction(formals: List[Tree], paramNamesOrNil: List[TermName], body: Tree, erasedParams: List[Boolean])(using Context): Function = {
16161618
val mods = Given

0 commit comments

Comments
 (0)