diff options
| author | Alan Zimmerman <alan.zimm@gmail.com> | 2021-02-21 21:23:40 +0000 |
|---|---|---|
| committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-03-20 07:48:38 -0400 |
| commit | 95275a5f25a2e70b71240d4756109180486af1b1 (patch) | |
| tree | eb4801bb0e00098b8b9d513479de4fbbd779ddac /compiler/GHC/Driver | |
| parent | f940fd466a86c2f8e93237b36835797be3f3c898 (diff) | |
| download | haskell-95275a5f25a2e70b71240d4756109180486af1b1.tar.gz | |
GHC Exactprint main commit
Metric Increase:
T10370
parsing001
Updates haddock submodule
Diffstat (limited to 'compiler/GHC/Driver')
| -rw-r--r-- | compiler/GHC/Driver/Backpack.hs | 5 | ||||
| -rw-r--r-- | compiler/GHC/Driver/Main.hs | 25 | ||||
| -rw-r--r-- | compiler/GHC/Driver/Ppr.hs | 4 |
3 files changed, 18 insertions, 16 deletions
diff --git a/compiler/GHC/Driver/Backpack.hs b/compiler/GHC/Driver/Backpack.hs index 5974cded53..daf53a502f 100644 --- a/compiler/GHC/Driver/Backpack.hs +++ b/compiler/GHC/Driver/Backpack.hs @@ -764,6 +764,7 @@ summariseRequirement pn mod_name = do ms_textual_imps = extra_sig_imports, ms_parsed_mod = Just (HsParsedModule { hpm_module = L loc (HsModule { + hsmodAnn = noAnn, hsmodLayout = NoLayoutInfo, hsmodName = Just (L loc mod_name), hsmodExports = Nothing, @@ -773,7 +774,7 @@ summariseRequirement pn mod_name = do hsmodHaddockModHeader = Nothing }), hpm_src_files = [], - hpm_annotations = ApiAnns Map.empty Nothing Map.empty [] + hpm_annotations = ApiAnns [] }), ms_hspp_file = "", -- none, it came inline ms_hspp_opts = dflags, @@ -884,7 +885,7 @@ hsModuleToModSummary pn hsc_src modname ms_parsed_mod = Just (HsParsedModule { hpm_module = hsmod, hpm_src_files = [], -- TODO if we preprocessed it - hpm_annotations = ApiAnns Map.empty Nothing Map.empty [] -- BOGUS + hpm_annotations = ApiAnns [] -- BOGUS }), ms_hs_date = time, ms_obj_date = Nothing, -- TODO do this, but problem: hi_timestamp is BOGUS diff --git a/compiler/GHC/Driver/Main.hs b/compiler/GHC/Driver/Main.hs index 393c31fa0b..a910cdf23f 100644 --- a/compiler/GHC/Driver/Main.hs +++ b/compiler/GHC/Driver/Main.hs @@ -141,7 +141,6 @@ import GHC.Core.FamInstEnv import GHC.CoreToStg.Prep import GHC.CoreToStg ( coreToStg ) -import GHC.Parser.Annotation import GHC.Parser.Errors import GHC.Parser.Errors.Ppr import GHC.Parser @@ -216,14 +215,13 @@ import qualified GHC.Data.Stream as Stream import GHC.Data.Stream (Stream) import Data.Data hiding (Fixity, TyCon) -import Data.Maybe ( fromJust ) +import Data.Maybe ( fromJust, fromMaybe ) import Data.List ( nub, isPrefixOf, partition ) import Control.Monad import Data.IORef import System.FilePath as FilePath import System.Directory import System.IO (fixIO) -import qualified Data.Map as M import qualified Data.Set as S import Data.Set (Set) import Data.Functor @@ -353,7 +351,7 @@ ioMsgMaybe' ioA = do -- ----------------------------------------------------------------------------- -- | Lookup things in the compiler's environment -hscTcRnLookupRdrName :: HscEnv -> Located RdrName -> IO [Name] +hscTcRnLookupRdrName :: HscEnv -> LocatedN RdrName -> IO [Name] hscTcRnLookupRdrName hsc_env0 rdr_name = runInteractiveHsc hsc_env0 $ do { hsc_env <- getHscEnv @@ -431,7 +429,9 @@ hscParse' mod_summary liftIO $ dumpIfSet_dyn logger dflags Opt_D_dump_parsed "Parser" FormatHaskell (ppr rdr_module) liftIO $ dumpIfSet_dyn logger dflags Opt_D_dump_parsed_ast "Parser AST" - FormatHaskell (showAstData NoBlankSrcSpan rdr_module) + FormatHaskell (showAstData NoBlankSrcSpan + NoBlankApiAnnotations + rdr_module) liftIO $ dumpIfSet_dyn logger dflags Opt_D_source_stats "Source Statistics" FormatText (ppSourceStats False rdr_module) when (not $ isEmptyBag errs) $ throwErrors errs @@ -463,10 +463,7 @@ hscParse' mod_summary srcs2 <- liftIO $ filterM doesFileExist srcs1 let api_anns = ApiAnns { - apiAnnItems = M.fromListWith (++) $ annotations pst, - apiAnnEofPos = eof_pos pst, - apiAnnComments = M.fromList (annotations_comments pst), - apiAnnRogueComments = comment_q pst + apiAnnRogueComments = (fromMaybe [] (header_comments pst)) ++ comment_q pst } res = HsParsedModule { hpm_module = rdr_module, @@ -490,7 +487,7 @@ extract_renamed_stuff mod_summary tc_result = do dflags <- getDynFlags logger <- getLogger liftIO $ dumpIfSet_dyn logger dflags Opt_D_dump_rn_ast "Renamer" - FormatHaskell (showAstData NoBlankSrcSpan rn_info) + FormatHaskell (showAstData NoBlankSrcSpan NoBlankApiAnnotations rn_info) -- Create HIE files when (gopt Opt_WriteHie dflags) $ do @@ -1158,9 +1155,9 @@ hscCheckSafeImports tcg_env = do warns rules = listToBag $ map warnRules rules - warnRules :: GenLocated SrcSpan (RuleDecl GhcTc) -> MsgEnvelope DecoratedSDoc + warnRules :: LRuleDecl GhcTc -> MsgEnvelope DecoratedSDoc warnRules (L loc (HsRule { rd_name = n })) = - mkPlainWarnMsg loc $ + mkPlainWarnMsg (locA loc) $ text "Rule \"" <> ftext (snd $ unLoc n) <> text "\" ignored" $+$ text "User defined rules are disabled under Safe Haskell" @@ -2021,7 +2018,7 @@ hscParseStmtWithLocation source linenumber stmt = hscParseType :: String -> Hsc (LHsType GhcPs) hscParseType = hscParseThing parseType -hscParseIdentifier :: HscEnv -> String -> IO (Located RdrName) +hscParseIdentifier :: HscEnv -> String -> IO (LocatedN RdrName) hscParseIdentifier hsc_env str = runInteractiveHsc hsc_env $ hscParseThing parseIdentifier str @@ -2049,7 +2046,7 @@ hscParseThingWithLocation source linenumber parser str = do liftIO $ dumpIfSet_dyn logger dflags Opt_D_dump_parsed "Parser" FormatHaskell (ppr thing) liftIO $ dumpIfSet_dyn logger dflags Opt_D_dump_parsed_ast "Parser AST" - FormatHaskell (showAstData NoBlankSrcSpan thing) + FormatHaskell (showAstData NoBlankSrcSpan NoBlankApiAnnotations thing) return thing diff --git a/compiler/GHC/Driver/Ppr.hs b/compiler/GHC/Driver/Ppr.hs index fbaf145fa2..186992065f 100644 --- a/compiler/GHC/Driver/Ppr.hs +++ b/compiler/GHC/Driver/Ppr.hs @@ -1,6 +1,7 @@ -- | Printing related functions that depend on session state (DynFlags) module GHC.Driver.Ppr ( showSDoc + , showSDocUnsafe , showSDocForUser , showSDocDebug , showSDocDump @@ -40,6 +41,9 @@ import Control.Monad.IO.Class showSDoc :: DynFlags -> SDoc -> String showSDoc dflags sdoc = renderWithContext (initSDocContext dflags defaultUserStyle) sdoc +showSDocUnsafe :: SDoc -> String +showSDocUnsafe sdoc = renderWithContext defaultSDocContext sdoc + showPpr :: Outputable a => DynFlags -> a -> String showPpr dflags thing = showSDoc dflags (ppr thing) |
