Skip to content

Commit f0cdff5

Browse files
committed
Handle multiple val _ = ... definitions
These need to be expanded to pattern definitions, not ValDefs, otherwise duplicate definition errors result.
1 parent ccad792 commit f0cdff5

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1616,7 +1616,7 @@ object desugar {
16161616
*/
16171617
private object IdPattern {
16181618
def unapply(tree: Tree)(implicit ctx: Context): Option[VarInfo] = tree match {
1619-
case id: Ident => Some(id, TypeTree())
1619+
case id: Ident if id.name != nme.WILDCARD => Some(id, TypeTree())
16201620
case Typed(id: Ident, tpt) => Some((id, tpt))
16211621
case _ => None
16221622
}

compiler/src/dotty/tools/dotc/parsing/Parsers.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2574,7 +2574,7 @@ object Parsers {
25742574
}
25752575
} else EmptyTree
25762576
lhs match {
2577-
case (id @ Ident(name: TermName)) :: Nil =>
2577+
case (id @ Ident(name: TermName)) :: Nil if name != nme.WILDCARD =>
25782578
val vdef = ValDef(name, tpt, rhs)
25792579
if (isBackquoted(id)) vdef.pushAttachment(Backquoted, ())
25802580
finalizeDef(vdef, mods, start)

tests/pos/wildcardDefs.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
object Test {
2+
val _ = 2
3+
val _ = 3
4+
}

0 commit comments

Comments
 (0)