loopy-superclass-solve has in practice no transition period.
Summary
According to the users guide in development, the loopy-superclass-solve
flag was part of a transition period after having been introduced in 9.6.1. There seems to be two issues with this though.
First, the documentation for 9.6.3 and 9.8.1, both do not list the flag as being on in either Wcompat or Wdefault, apparently breaking the expectation that new default behavior will be introduced gradually with allowing for time to adjust across the ecosystem.
Second, given the flag is apparently on by default starting in 9.6, it cannot be referenced directly. For example running ghc-9.8.1 -Wwarn=loopy-superclass-solve
results in
on the commandline: warning: [GHC-93741] [-Wunrecognised-warning-flags] unrecognised warning flag: -Wwarn=loopy-superclass-solve With similar results for any attempt to reference the flag in either 9.8.1 or 9.6.3.
In practice this means that anyone who uses Werror
will be forced to either,
- a) immediately handle the this situation regardless of usage of any other flag mechanism
- b) turn off
Werror
, manually list all other flags in the style ofWerror=wombat
, and compile with a warning that cannot be silenced.
Given b) is likely to be very heavy weight for users of Wall
and/or Wcompat
, that leaves with a) as potentially the only viable option upon upgrading to 9.6.x or 9.8.x, in effect, no transition period at all.
Notably part of this has been noticed previously at #24071 (closed), however that does not mention the released versions, nor that this in effect prevents any transition period.