summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Pipeline.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2021-05-27 10:11:04 +0200
committerSylvain Henry <sylvain@haskus.fr>2021-06-07 11:19:35 +0200
commit3a90814fdf5800927ef404d46459223b2ba283ce (patch)
tree134e63fcfb5dd5d4bf4f6182dc180cd370f4759f /compiler/GHC/Driver/Pipeline.hs
parent4dc681c7c0345ee8ae268749d98b419dabf6a3bc (diff)
downloadhaskell-3a90814fdf5800927ef404d46459223b2ba283ce.tar.gz
Parser: make less DynFlags dependent
This is an attempt at reducing the number of dependencies of the Parser (as reported by CountParserDeps). Modules in GHC.Parser.* don't import GHC.Driver.Session directly anymore. Sadly some GHC.Driver.* modules are still transitively imported and the number of dependencies didn't decrease. But it's a step in the right direction.
Diffstat (limited to 'compiler/GHC/Driver/Pipeline.hs')
-rw-r--r--compiler/GHC/Driver/Pipeline.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/GHC/Driver/Pipeline.hs b/compiler/GHC/Driver/Pipeline.hs
index 7c2c986967..59b5b5ea56 100644
--- a/compiler/GHC/Driver/Pipeline.hs
+++ b/compiler/GHC/Driver/Pipeline.hs
@@ -1135,7 +1135,8 @@ runPhase (RealPhase (Unlit sf)) input_fn = do
runPhase (RealPhase (Cpp sf)) input_fn
= do
dflags0 <- getDynFlags
- src_opts <- liftIO $ getOptionsFromFile dflags0 input_fn
+ let parser_opts0 = initParserOpts dflags0
+ src_opts <- liftIO $ getOptionsFromFile parser_opts0 input_fn
(dflags1, unhandled_flags, warns)
<- liftIO $ parseDynamicFilePragma dflags0 src_opts
setDynFlags dflags1
@@ -1163,7 +1164,7 @@ runPhase (RealPhase (Cpp sf)) input_fn
input_fn output_fn
-- re-read the pragmas now that we've preprocessed the file
-- See #2464,#3457
- src_opts <- liftIO $ getOptionsFromFile dflags0 output_fn
+ src_opts <- liftIO $ getOptionsFromFile parser_opts0 output_fn
(dflags2, unhandled_flags, warns)
<- liftIO $ parseDynamicFilePragma dflags0 src_opts
setDynFlags dflags2
@@ -1197,7 +1198,8 @@ runPhase (RealPhase (HsPp sf)) input_fn = do
)
-- re-read pragmas now that we've parsed the file (see #3674)
- src_opts <- liftIO $ getOptionsFromFile dflags output_fn
+ let parser_opts = initParserOpts dflags
+ src_opts <- liftIO $ getOptionsFromFile parser_opts output_fn
(dflags1, unhandled_flags, warns)
<- liftIO $ parseDynamicFilePragma dflags src_opts
setDynFlags dflags1