Add some easy Driver diagnostic messages
Similar in spirit to !5528 (closed). I am trying to add the "easy" diagnostic messages to the codebase without stepping on my own toes, while minimising breakages. Sadly enough for a bunch of these driver messages we don't have a corresponding test case, which we should add. For some of them, it's not clear to me how to write such a test, as driver tests seems a bit complicated to conjure up (but I guess it might be just my impression).
This MR also adds the first message which exposes a list of suggestions to the user, in the returned diagnostic.
I went surprisingly far with the driver messages. Now grepping for UnknownDriverMessage reveals we have only a bunch left:
-
GHC.Driver.MakeFile.findDependency: this one rewraps acannotFindModuleerror, which I think belongs to theTcRnrealm (as it's used multiple times in theIFacecode, and in theTcMmonad). Better to back off for now; -
GHC.Driver.Pipeline.preprocess: This seems like it should genuinely be anUnknownDriverMessage, at least for now; -
GHC.Driver.Make.noModError: another instance ofcannotFindModule.
Edited by Alfredo Di Napoli