diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2022-07-01 12:52:29 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-08-11 16:19:57 -0400 |
commit | ff67c79ee742024ca0ef41a9a7e540e1662d46bd (patch) | |
tree | 6588e16a80e86696f7541c483a724903b82ad492 /utils | |
parent | 5c24b1b3a9d6a4c2f471fd7d8ec65141a8b46357 (diff) | |
download | haskell-ff67c79ee742024ca0ef41a9a7e540e1662d46bd.tar.gz |
EPA: DotFieldOcc does not have exact print annotations
For the code
{-# LANGUAGE OverloadedRecordUpdate #-}
operatorUpdate f = f{(+) = 1}
There are no exact print annotations for the parens around the +
symbol, nor does normal ppr print them.
This MR fixes that.
Closes #21805
Updates haddock submodule
Diffstat (limited to 'utils')
-rw-r--r-- | utils/check-exact/ExactPrint.hs | 12 | ||||
-rw-r--r-- | utils/check-exact/Main.hs | 6 | ||||
m--------- | utils/haddock | 0 |
3 files changed, 12 insertions, 6 deletions
diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs index eecb1e28eb..8ec3adbf46 100644 --- a/utils/check-exact/ExactPrint.hs +++ b/utils/check-exact/ExactPrint.hs @@ -30,8 +30,9 @@ import GHC.Data.FastString import GHC.Types.Basic hiding (EP) import GHC.Types.Fixity import GHC.Types.ForeignCall -import GHC.Types.SourceText +import GHC.Types.Name.Reader import GHC.Types.PkgQual +import GHC.Types.SourceText import GHC.Types.Var import GHC.Utils.Outputable hiding ( (<>) ) import GHC.Unit.Module.Warnings @@ -39,6 +40,8 @@ import GHC.Utils.Misc import GHC.Utils.Panic import GHC.TypeLits +import Language.Haskell.Syntax.Basic (FieldLabelString(..)) + import Control.Monad.Identity import Control.Monad.RWS import Data.Data ( Data ) @@ -47,7 +50,6 @@ import Data.Typeable import Data.List ( partition, sortBy) import Data.List.NonEmpty ( NonEmpty ) import Data.Maybe ( isJust ) - import Data.Void import Lookup @@ -2270,9 +2272,11 @@ instance ExactPrint (FieldLabelStrings GhcPs) where instance ExactPrint (DotFieldOcc GhcPs) where getAnnotationEntry (DotFieldOcc an _) = fromAnn an - exact (DotFieldOcc an fs) = do + exact (DotFieldOcc an (L loc (FieldLabelString fs))) = do markAnnKwM an afDot AnnDot - markAnnotated fs + -- The field name has a SrcSpanAnnN, print it as a + -- LocatedN RdrName + markAnnotated (L loc (mkVarUnqual fs)) -- --------------------------------------------------------------------- diff --git a/utils/check-exact/Main.hs b/utils/check-exact/Main.hs index 122c63990a..4272a8004c 100644 --- a/utils/check-exact/Main.hs +++ b/utils/check-exact/Main.hs @@ -38,7 +38,8 @@ import GHC.Data.FastString _tt :: IO () -- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/ghc/_build/stage1/lib" -- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/exactprint/_build/stage1/lib" -_tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/epw/_build/stage1/lib" +_tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/master/_build/stage1/lib" +-- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/epw/_build/stage1/lib" -- "../../testsuite/tests/ghc-api/exactprint/RenameCase1.hs" (Just changeRenameCase1) -- "../../testsuite/tests/ghc-api/exactprint/LayoutLet2.hs" (Just changeLayoutLet2) @@ -198,7 +199,8 @@ _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/epw/_buil -- "../../testsuite/tests/printer/PprSemis.hs" Nothing -- "../../testsuite/tests/printer/PprEmptyMostly.hs" Nothing -- "../../testsuite/tests/parser/should_compile/DumpSemis.hs" Nothing - "../../testsuite/tests/ghc-api/exactprint/Test20239.hs" Nothing + -- "../../testsuite/tests/ghc-api/exactprint/Test20239.hs" Nothing + "../../testsuite/tests/printer/Test21805.hs" Nothing -- cloneT does not need a test, function can be retired diff --git a/utils/haddock b/utils/haddock -Subproject 7bd04379ada2d9ff1c406d258629f8abdf617b3 +Subproject 4f8a875dec5db8795286a557779f3eb684718be |