Closed
Description
Wingman does not currently compile with 9.2. I've investigated a little and I think I've figured out one of the main barriers for the migration.
In <9.x, the staticPlugins field was in DynFlags. Something like:
data DynFlags = {
...,
staticPlugins :: [StaticPlugin]
}
In 9.2+, plugins are now contained in the Plugins datatype:
data Plugins = Plugins
{ staticPlugins :: ![StaticPlugin]
, loadedPlugins :: ![LoadedPlugin]
, loadedPluginDeps :: !([Linkable], PkgsLoaded)
}
which is now found in HscEnv:
data HscEnv
= HscEnv {
hsc_dflags :: DynFlags,
, hsc_plugins :: !Plugins
}
Afaict, this means that the PluginDescriptor type should really have a HscEnvModifications field, or alternatively also include a GhcPluginsModifications field.
I figure this is quite a hefty and widespread change, since you would have to update all tutorials and current HLS plugins; so maybe someone knows of a better way to modify the HscEnv?
Paging @isovector and @anka-213 since they might have good feedback