summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Flags.hs
diff options
context:
space:
mode:
authorAlfredo Di Napoli <alfredo@well-typed.com>2021-03-26 10:17:26 +0100
committerAlfredo Di Napoli <alfredo@well-typed.com>2021-03-29 07:58:00 +0200
commitc30af95189c5006ac5cd10839a8ea7e8098341d5 (patch)
tree8863e8d15ab33363147594dbab2d54cf7cb42a48 /compiler/GHC/Driver/Flags.hs
parent9c9e40e59214b1e358c85852218f3a67e712a748 (diff)
downloadhaskell-c30af95189c5006ac5cd10839a8ea7e8098341d5.tar.gz
Add `MessageClass`, rework `Severity` and add `DiagnosticReason`.wip/adinapoli-message-class-new-design
Other than that: * Fix T16167,json,json2,T7478,T10637 tests to reflect the introduction of the `MessageClass` type * Remove `makeIntoWarning` * Remove `warningsToMessages` * Refactor GHC.Tc.Errors 1. Refactors GHC.Tc.Errors so that we use `DiagnosticReason` for "choices" (defer types errors, holes, etc); 2. We get rid of `reportWarning` and `reportError` in favour of a general `reportDiagnostic`. * Introduce `DiagnosticReason`, `Severity` is an enum: This big commit makes `Severity` a simple enumeration, and introduces the concept of `DiagnosticReason`, which classifies the /reason/ why we are emitting a particular diagnostic. It also adds a monomorphic `DiagnosticMessage` type which is used for generic messages. * The `Severity` is computed (for now) from the reason, statically. Later improvement will add a `diagReasonSeverity` function to compute the `Severity` taking `DynFlags` into account. * Rename `logWarnings` into `logDiagnostics` * Add note and expand description of the `mkHoleError` function
Diffstat (limited to 'compiler/GHC/Driver/Flags.hs')
-rw-r--r--compiler/GHC/Driver/Flags.hs23
1 files changed, 0 insertions, 23 deletions
diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs
index b6d20ada3a..393927e1b2 100644
--- a/compiler/GHC/Driver/Flags.hs
+++ b/compiler/GHC/Driver/Flags.hs
@@ -2,7 +2,6 @@ module GHC.Driver.Flags
( DumpFlag(..)
, GeneralFlag(..)
, WarningFlag(..)
- , WarnReason (..)
, Language(..)
, optimisationFlags
)
@@ -11,7 +10,6 @@ where
import GHC.Prelude
import GHC.Utils.Outputable
import GHC.Data.EnumSet as EnumSet
-import GHC.Utils.Json
-- | Debugging flags
data DumpFlag
@@ -514,27 +512,6 @@ data WarningFlag =
| Opt_WarnMissingKindSignatures -- Since 9.2
deriving (Eq, Show, Enum)
--- | Used when outputting warnings: if a reason is given, it is
--- displayed. If a warning isn't controlled by a flag, this is made
--- explicit at the point of use.
-data WarnReason
- = NoReason
- -- | Warning was enabled with the flag
- | Reason !WarningFlag
- -- | Warning was made an error because of -Werror or -Werror=WarningFlag
- | ErrReason !(Maybe WarningFlag)
- deriving Show
-
-instance Outputable WarnReason where
- ppr = text . show
-
-instance ToJson WarnReason where
- json NoReason = JSNull
- json (Reason wf) = JSString (show wf)
- json (ErrReason Nothing) = JSString "Opt_WarnIsError"
- json (ErrReason (Just wf)) = JSString (show wf)
-
-
data Language = Haskell98 | Haskell2010 | GHC2021
deriving (Eq, Enum, Show, Bounded)