X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fmain%2FHeaderInfo.hs;h=24a216a4abf54c1bd20b53d0b2a2d9321612953a;hp=508f855f4841caf44842a17fa1f1d94e6f83f29e;hb=d0faaa6fa0cecd23c5670fd199e9206275313666;hpb=a3a88e4d58f7b3d8df8304052e603b274f90671d diff --git a/compiler/main/HeaderInfo.hs b/compiler/main/HeaderInfo.hs index 508f855..24a216a 100644 --- a/compiler/main/HeaderInfo.hs +++ b/compiler/main/HeaderInfo.hs @@ -33,9 +33,9 @@ import Outputable import Pretty () import Maybes import Bag ( emptyBag, listToBag, unitBag ) - -import MonadUtils ( MonadIO ) +import MonadUtils import Exception + import Control.Monad import System.IO import System.IO.Unsafe @@ -46,14 +46,13 @@ import Data.List -- | Parse the imports of a source file. -- -- Throws a 'SourceError' if parsing fails. -getImports :: GhcMonad m => - DynFlags +getImports :: DynFlags -> StringBuffer -- ^ Parse this. -> FilePath -- ^ Filename the buffer came from. Used for -- reporting parse error locations. -> FilePath -- ^ The original source filename (used for locations -- in the function result) - -> m ([Located (ImportDecl RdrName)], [Located (ImportDecl RdrName)], Located ModuleName) + -> IO ([Located (ImportDecl RdrName)], [Located (ImportDecl RdrName)], Located ModuleName) -- ^ The source imports, normal imports, and the module name. getImports dflags buf filename source_filename = do let loc = mkSrcLoc (mkFastString filename) 1 1 @@ -66,7 +65,7 @@ getImports dflags buf filename source_filename = do ms = (emptyBag, errs) -- logWarnings warns if errorsFound dflags ms - then liftIO $ throwIO $ mkSrcErr errs + then throwIO $ mkSrcErr errs else case rdr_module of L _ (HsModule mb_mod _ imps _ _ _) -> @@ -114,7 +113,7 @@ mkPrelImports this_mod implicit_prelude import_decls loc = mkGeneralSrcSpan (fsLit "Implicit import declaration") -parseError :: GhcMonad m => SrcSpan -> Message -> m a +parseError :: SrcSpan -> Message -> IO a parseError span err = throwOneError $ mkPlainErrMsg span err -------------------------------------------------------------- @@ -285,7 +284,8 @@ unsupportedExtnError loc unsup = mkPlainErrMsg loc $ text "Unsupported extension: " <> text unsup $$ if null suggestions then empty else text "Perhaps you meant" <+> quotedListWithOr (map text suggestions) - where suggestions = fuzzyMatch unsup supportedLanguagesAndExtensions + where + suggestions = fuzzyMatch unsup supportedLanguagesAndExtensions optionsErrorMsgs :: [String] -> [Located String] -> FilePath -> Messages