Refactored by Simon Marlow's suggestion
authorEvan Hauck <khyperia@live.com>
Thu, 28 Nov 2013 16:58:50 +0000 (11:58 -0500)
committerAustin Seipp <austin@well-typed.com>
Thu, 5 Dec 2013 00:19:48 +0000 (18:19 -0600)
Signed-off-by: Austin Seipp <austin@well-typed.com>
ghc/InteractiveUI.hs

index 024aa2d..be97bc0 100644 (file)
@@ -694,10 +694,8 @@ runCommands' eh sourceErrorHandler gCmd = do
     case b of
       Nothing -> return ()
       Just success -> do
-        let nextCommand = runCommands' eh sourceErrorHandler gCmd
-        case sourceErrorHandler of
-          Just handler | success == False -> lift handler >> nextCommand
-          _ -> nextCommand
+        when (not success) $ maybe (return ()) lift sourceErrorHandler
+        runCommands' eh sourceErrorHandler gCmd
 
 -- | Evaluate a single line of user input (either :<command> or Haskell code)
 runOneCommand :: (SomeException -> GHCi Bool) -> InputT GHCi (Maybe String)