Skip to content

Split out DynFlags data-type into own module

The original problem is that *.Errors.Types modules import GHC.Driver.Session to get DynFlags, xopt etc.

However GHC.Driver.Session also includes the parser for DynFlags which generates diagnostics.

These diagnostics are however not using the new diagnostic framework (cannot assign error code etc new goodies), and cannot be made easily because of import cycle: GHC.Driver.Session -> GHC.Driver.Error.Types -> ...

See e.g. !10172 (diffs, comment 493735)


An alternative is to move (small) functions like checkBuildingCabalPackage or negLiteralExtEnabled out of GHC.Driver.Errors.Types and GHC.HsToCore.Errors.Types respectively. I think that splitting (huge) GHC.Driver.Session into types and parser parts is a better choice.

cc @adamgundry

Edited by Oleg Grenrus
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information