import qualified GHC
import GHC ( DynFlags(..), HscTarget(..),
GhcMode(..), GhcLink(..),
- LoadHowMuch(..), dopt, DynFlag(..) )
+ LoadHowMuch(..), dopt, DynFlag(..),
+ defaultCallbacks )
import CmdLineParser
-- Implementations of the various modes (--show-iface, mkdependHS. etc.)
let flagWarnings = staticFlagWarnings
++ modeFlagWarnings
++ dynamicFlagWarnings
- liftIO $ handleFlagWarnings dflags2 flagWarnings
+
+ handleSourceError (\e -> do
+ GHC.printExceptionAndWarnings e
+ liftIO $ exitWith (ExitFailure 1)) $
+ handleFlagWarnings dflags2 flagWarnings
-- make sure we clean up after ourselves
GHC.defaultCleanupHandler dflags2 $ do
doShowIface :: DynFlags -> FilePath -> IO ()
doShowIface dflags file = do
- hsc_env <- newHscEnv dflags
+ hsc_env <- newHscEnv defaultCallbacks dflags
showIface hsc_env file
-- ---------------------------------------------------------------------------