summaryrefslogtreecommitdiff
path: root/ghc
diff options
context:
space:
mode:
authorBenjamin Bykowski <alpha-theta@web.de>2016-01-27 11:05:13 +0100
committerBen Gamari <ben@smart-cactus.org>2016-01-27 11:32:15 +0100
commit1f6d1422f9fe875e1d150b423c4864b42d96b8db (patch)
tree1aaacc244338d58c99da215c24ffc195513b8d3c /ghc
parent448ea978318a9f8c9bb611803aa01f934b111fe9 (diff)
downloadhaskell-1f6d1422f9fe875e1d150b423c4864b42d96b8db.tar.gz
ghci: fix trac issue #11481
Test Plan: validate Reviewers: thomie, austin, bgamari Reviewed By: bgamari Differential Revision: https://phabricator.haskell.org/D1833 GHC Trac Issues: #11481
Diffstat (limited to 'ghc')
-rw-r--r--ghc/GHCi/UI.hs13
1 files changed, 5 insertions, 8 deletions
diff --git a/ghc/GHCi/UI.hs b/ghc/GHCi/UI.hs
index fc03b5fbdb..2528503092 100644
--- a/ghc/GHCi/UI.hs
+++ b/ghc/GHCi/UI.hs
@@ -1460,17 +1460,14 @@ checkModule m = do
-- :load, :add, :reload
-- | Sets '-fdefer-type-errors' if 'defer' is true, executes 'load' and unsets
--- '-fdefer-type-errors' again if it has not been set before
+-- '-fdefer-type-errors' again if it has not been set before.
deferredLoad :: Bool -> InputT GHCi SuccessFlag -> InputT GHCi ()
deferredLoad defer load = do
- flags <- getDynFlags
- deferredBefore <- return (gopt Opt_DeferTypeErrors flags)
- when (defer) $ Monad.void $
- GHC.setProgramDynFlags $ gopt_set flags Opt_DeferTypeErrors
+ originalFlags <- getDynFlags
+ when defer $ Monad.void $
+ GHC.setProgramDynFlags $ setGeneralFlag' Opt_DeferTypeErrors originalFlags
Monad.void $ load
- flags <- getDynFlags
- when (not deferredBefore) $ Monad.void $
- GHC.setProgramDynFlags $ gopt_unset flags Opt_DeferTypeErrors
+ Monad.void $ GHC.setProgramDynFlags $ originalFlags
loadModule :: [(FilePath, Maybe Phase)] -> InputT GHCi SuccessFlag
loadModule fs = timeIt (const Nothing) (loadModule' fs)