Test suite does not include any nontrivial type-checking plugins
The GHC test suite currently does not include any tests involving non-trivial type-checking plugins. All type-checking plugins tests use a simple stub plugin:
thePlugin :: [CommandLineOption] -> TcPlugin
thePlugin opts = TcPlugin
{ tcPluginInit = return ()
, tcPluginSolve = \_ _ _ _ -> return $ TcPluginOk [] []
, tcPluginStop = \_ -> return ()
}
On top of the obvious issue that we're not testing the solver part of the plugins, this also shields GHC developers from the consequences their changes might have on plugin authors. Having to update the plugins from the test suite to accommodate for changes in the internals of GHC would help GHC developers spell out possible migration strategies, much like head-hackage does today for other user-facing changes to GHC.