Skip to content

Backport #18503 (on -Wconf ordering) to the 3.3.x LTS series #21818

Closed
@BalmungSan

Description

@BalmungSan

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:lintingLinting warnings enabled with -W or -Xlintitype:bugstat:fixed in nextThe issue was fixed in Next and only still applies to LTS.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions