Making test suite pass for flag fixing

This commit is contained in:
Andrew Gibiansky 2015-03-10 20:49:09 -07:00
parent 0ae48fd0f3
commit c901dead3a
2 changed files with 7 additions and 4 deletions

View File

@ -296,7 +296,7 @@ evalTests = do
|] `becomes` ["21"]
it "evaluates flags" $ do
":set -package hello" `becomes` []
":set -package hello" `becomes` ["Warning: -package not supported yet"]
":set -XNoImplicitPrelude" `becomes` []
it "evaluates multiline expressions" $ do

View File

@ -420,7 +420,7 @@ evalCommand _ (Module contents) state = wrapExecution state $ do
-- | Directives set via `:set`.
evalCommand output (Directive SetDynFlag flagsStr) state = safely state $ do
write state $ "DynFlags: " ++ flagsStr
write state $ "All Flags: " ++ flagsStr
-- Find which flags are IHaskell flags, and which are GHC flags
let flags = words flagsStr
@ -431,6 +431,9 @@ evalCommand output (Directive SetDynFlag flagsStr) state = safely state $ do
(ihaskellFlags, ghcFlags) = partition (isJust . ihaskellFlagUpdater) flags
write state $ "IHaskell Flags: " ++ unwords ihaskellFlags
write state $ "GHC Flags: " ++ unwords ghcFlags
if null flags
then do
flags <- getSessionDynFlags
@ -443,8 +446,8 @@ evalCommand output (Directive SetDynFlag flagsStr) state = safely state $ do
}
else do
-- Apply all IHaskell flag updaters to the state to get the new state
let state' = (foldl1 (.) (map (fromJust . ihaskellFlagUpdater) ihaskellFlags)) state
errs <- setFlags flags
let state' = (foldl' (.) id (map (fromJust . ihaskellFlagUpdater) ihaskellFlags)) state
errs <- setFlags ghcFlags
let display = case errs of
[] -> mempty
_ -> displayError $ intercalate "\n" errs