X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FMkIface.lhs;h=c837f4cbbbf14d95798828be962c3ad7bcf16e14;hb=156d91339295539a2b3461efc1ac8c83f29d83f0;hp=b16a95a046b11097072ff3f29fa26933b8b0dc40;hpb=76c2a7cf2f1c40b4e672ab27710143efe5aaed1a;p=ghc-hetmet.git diff --git a/ghc/compiler/main/MkIface.lhs b/ghc/compiler/main/MkIface.lhs index b16a95a..c837f4c 100644 --- a/ghc/compiler/main/MkIface.lhs +++ b/ghc/compiler/main/MkIface.lhs @@ -24,7 +24,7 @@ import HscTypes ( VersionInfo(..), IfaceDecls(..), ModIface(..), ModDetails(..) TyThing(..), DFunId, TypeEnv, isTyClThing, Avails, WhatsImported(..), GenAvailInfo(..), ImportVersion, AvailInfo, Deprecations(..), - Finder, ModuleLocation(..) + ModuleLocation(..) ) import CmdLineOpts @@ -56,6 +56,7 @@ import Type ( splitSigmaTy, tidyTopType, deNoteType ) import SrcLoc ( noSrcLoc ) import Outputable import Module ( ModuleName, moduleName ) +import Finder ( findModule ) import List ( partition ) import IO ( IOMode(..), openFile, hClose ) @@ -604,23 +605,15 @@ diffDecls old_vers old_fixities new_fixities old new %************************************************************************ \begin{code} -writeIface :: Finder -> Maybe ModIface -> IO () -writeIface finder Nothing +writeIface :: FilePath -> Maybe ModIface -> IO () +writeIface hi_path Nothing = return () -writeIface finder (Just mod_iface) - = do { maybe_found <- finder mod_name ; - ; case maybe_found of { - Nothing -> printErrs (text "Can't write interface file for" <+> ppr mod_name) ; - Just (_, locn) -> - - do { let filename = hi_file locn - ; if_hdl <- openFile filename WriteMode +writeIface hi_path (Just mod_iface) + = do { if_hdl <- openFile hi_path WriteMode ; printForIface if_hdl (pprIface mod_iface) ; hClose if_hdl - }}} - where - mod_name = moduleName (mi_module mod_iface) + } pprIface :: ModIface -> SDoc pprIface iface