diff options
author | Adam Gundry <adam@well-typed.com> | 2023-01-10 21:03:48 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2023-03-24 02:36:09 -0400 |
commit | f932c5890ec358aa0cbba547eb6982168e13da37 (patch) | |
tree | 62c27ed44eb43b7ed8f55af7ea0325cbcb3cfe14 /utils | |
parent | e1c8c41d62854553d889403d8ee52d120c26bc66 (diff) | |
download | haskell-f932c5890ec358aa0cbba547eb6982168e13da37.tar.gz |
Allow WARNING pragmas to be controlled with custom categories
Closes #17209. This implements GHC Proposal 541, allowing a WARNING
pragma to be annotated with a category like so:
{-# WARNING in "x-partial" head "This function is undefined on empty lists." #-}
The user can then enable, disable and set the severity of such warnings
using command-line flags `-Wx-partial`, `-Werror=x-partial` and so on. There
is a new warning group `-Wextended-warnings` containing all these warnings.
Warnings without a category are treated as if the category was `deprecations`,
and are (still) controlled by the flags `-Wdeprecations`
and `-Wwarnings-deprecations`.
Updates Haddock submodule.
Diffstat (limited to 'utils')
-rw-r--r-- | utils/check-exact/ExactPrint.hs | 8 | ||||
m--------- | utils/haddock | 0 |
2 files changed, 4 insertions, 4 deletions
diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs index a569b803d4..d4f1961176 100644 --- a/utils/check-exact/ExactPrint.hs +++ b/utils/check-exact/ExactPrint.hs @@ -1424,13 +1424,13 @@ instance ExactPrint (LocatedP (WarningTxt GhcPs)) where getAnnotationEntry = entryFromLocatedA setAnnotationAnchor = setAnchorAn - exact (L (SrcSpanAnn an l) (WarningTxt (L la src) ws)) = do + exact (L (SrcSpanAnn an l) (WarningTxt mb_cat (L la src) ws)) = do an0 <- markAnnOpenP an src "{-# WARNING" an1 <- markEpAnnL an0 lapr_rest AnnOpenS ws' <- markAnnotated ws an2 <- markEpAnnL an1 lapr_rest AnnCloseS an3 <- markAnnCloseP an2 - return (L (SrcSpanAnn an3 l) (WarningTxt (L la src) ws')) + return (L (SrcSpanAnn an3 l) (WarningTxt mb_cat (L la src) ws')) exact (L (SrcSpanAnn an l) (DeprecatedTxt (L ls src) ws)) = do an0 <- markAnnOpenP an src "{-# DEPRECATED" @@ -1766,9 +1766,9 @@ instance ExactPrint (WarnDecl GhcPs) where an0 <- markEpAnnL an lidl AnnOpenS -- "[" txt' <- case txt of - WarningTxt src ls -> do + WarningTxt mb_cat src ls -> do ls' <- markAnnotated ls - return (WarningTxt src ls') + return (WarningTxt mb_cat src ls') DeprecatedTxt src ls -> do ls' <- markAnnotated ls return (DeprecatedTxt src ls') diff --git a/utils/haddock b/utils/haddock -Subproject 1f22a95c1db942fce2623b9daa26f66d193a4e7 +Subproject 6f1b9093395f4b12298b8b785b855a637206f5f |