Description
I am aware of #20282 (comment)
However, IMHO, the already "wrong" order that Scala 3 had until #18503 was merged should be considered like a bug and fixed.
While I understand the current order doesn't need to be considered "wrong" per se, note that at least IME it is common to have general rules defined at the top of your build definitions and then provide more specific rules on specific modules. Such an approach, at least in sbt, leads to more specific rules being added later than the general ones; meaning they appear at their right. And sincerely, I don't want to mess with my build just to change the order of flags; especially when in future versions the order will be changed again.
I also, want to point out that since the behavior is different from Scala 2, making a cross-build for 2.13.15
& 3.3.4
would be extremely painful because now you need to maintain two different orders.
I do understand the rationale of not changing semantics in a patch release.
But I do wonder if anyone is finding the current semantics useful and preferable over the other one. I wonder, how many projects would break with the change, and how hard would be fixing them. I also wonder how many projects are not using the Scala 3 linting to its full potential because they need this.
For the record, we found this problem while trying to use the new linting options in Scala 3: neotypes/neotypes#745
We wanted to make all warnings verbose
but silence UnusedNonUnitValue
for ScalaTest Assertions
, and at the end we simply decided to opt out of the verbosity: neotypes/neotypes@2253fb3