File tree 3 files changed +15
-3
lines changed
compiler/src/dotty/tools/dotc/typer
3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -3427,9 +3427,7 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
3427
3427
def checkAmbiguousNamedTuple (tree : untpd.Tuple )(using Context ): Unit =
3428
3428
tree.trees match
3429
3429
case List (NamedArg (name, value)) =>
3430
- val typedName = typedIdent(untpd.Ident (name), WildcardType )
3431
- val sym = typedName.symbol
3432
- if sym.exists && (sym.is(Flags .Mutable ) || sym.setter.exists) then
3430
+ if typedAssign(untpd.Assign (untpd.Ident (name), value), WildcardType ) != EmptyTree then
3433
3431
report.migrationWarning(AmbiguousNamedTupleAssignment (name, value), tree.srcPos)
3434
3432
case _ =>
3435
3433
Original file line number Diff line number Diff line change
1
+ -- [E203] Syntax Migration Warning: tests/warn/21681c.scala:6:2 --------------------------------------------------------
2
+ 6 | (age = 29) // warn
3
+ | ^^^^^^^^^^
4
+ | Ambiguous syntax: this is interpreted as a named tuple with one element,
5
+ | not as an assignment.
6
+ |
7
+ | To assign a value, use curly braces: `{age = 29}`.
Original file line number Diff line number Diff line change
1
+
2
+ object Test :
3
+ def age : Int = ???
4
+ def age_= (x : Int ): Unit = ()
5
+ age = 29
6
+ (age = 29 ) // warn
7
+
You can’t perform that action at this time.
0 commit comments