bug
bug copied to clipboard
clarify leading infix example
Questions are not bug reports
Even if the bug is a head-scratcher?
Reproduction steps
Scala version: 2.13.13 vs 3.4.1
class C {
def ??? (i: Int): Int = i+1
}
object Test extends App {
val ??? = 6
val c = new C
val x =
c
???
??? match { case i => i }
val y =
"hi"
+
"bye" match { case "bye" => "bi" case _ => "huh" }
println(y)
println(x)
}
Problem
As rehashed at https://github.com/scala/scala3/discussions/19763
x is 6 in Scala 3 where leading infix is rejected; 7 in Scala 2 which accepts it.
It would be nice to either forward-port the behavior (and specify it) or, since leading infix is now behind -Xsource-options and no one will use it, let the sleeping dog lie.
The possible tweak is that the old suggestion to insert a semi is not leading-infix aware. (The semi would go between the lines.)
mlo.scala:10: error: value *= is not a member of Int
possible cause: maybe a semicolon is missing before `value *=`?
Expression does not convert to assignment because receiver is not assignable.
`a` *= 6
^