projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
155685d
)
Monadify iface/MkIface: use do, return and standard monad functions
author
Twan van Laarhoven
<twanvl@gmail.com>
Thu, 17 Jan 2008 21:44:41 +0000
(21:44 +0000)
committer
Twan van Laarhoven
<twanvl@gmail.com>
Thu, 17 Jan 2008 21:44:41 +0000
(21:44 +0000)
compiler/iface/MkIface.lhs
patch
|
blob
|
history
diff --git
a/compiler/iface/MkIface.lhs
b/compiler/iface/MkIface.lhs
index
43bae8f
..
c0543fb
100644
(file)
--- a/
compiler/iface/MkIface.lhs
+++ b/
compiler/iface/MkIface.lhs
@@
-998,7
+998,7
@@
checkOldIface hsc_env mod_summary source_unchanged maybe_iface
check_old_iface hsc_env mod_summary source_unchanged maybe_iface
= do -- CHECK WHETHER THE SOURCE HAS CHANGED
check_old_iface hsc_env mod_summary source_unchanged maybe_iface
= do -- CHECK WHETHER THE SOURCE HAS CHANGED
- { ifM (not source_unchanged)
+ { when (not source_unchanged)
(traceHiDiffs (nest 4 (text "Source file changed or recompilation check turned off")))
-- If the source has changed and we're in interactive mode, avoid reading
(traceHiDiffs (nest 4 (text "Source file changed or recompilation check turned off")))
-- If the source has changed and we're in interactive mode, avoid reading
@@
-1030,7
+1030,7
@@
check_old_iface hsc_env mod_summary source_unchanged maybe_iface
-- We have got the old iface; check its versions
{ traceIf (text "Read the interface file" <+> text iface_path)
; recomp <- checkVersions hsc_env source_unchanged mod_summary iface
-- We have got the old iface; check its versions
{ traceIf (text "Read the interface file" <+> text iface_path)
; recomp <- checkVersions hsc_env source_unchanged mod_summary iface
- ; returnM (recomp, Just iface)
+ ; return (recomp, Just iface)
}}}}}
\end{code}
}}}}}
\end{code}
@@
-1052,7
+1052,7
@@
checkVersions :: HscEnv
-> IfG RecompileRequired
checkVersions hsc_env source_unchanged mod_summary iface
| not source_unchanged
-> IfG RecompileRequired
checkVersions hsc_env source_unchanged mod_summary iface
| not source_unchanged
- = returnM outOfDate
+ = return outOfDate
| otherwise
= do { traceHiDiffs (text "Considering whether compilation is required for" <+>
ppr (mi_module iface) <> colon)
| otherwise
= do { traceHiDiffs (text "Considering whether compilation is required for" <+>
ppr (mi_module iface) <> colon)
@@
-1106,7
+1106,7
@@
checkDependencies hsc_env summary iface
where f m rest = do b <- m; if b then return True else rest
dep_missing (L _ mod) = do
where f m rest = do b <- m; if b then return True else rest
dep_missing (L _ mod) = do
- find_res <- ioToIOEnv $ findImportedModule hsc_env mod Nothing
+ find_res <- liftIO $ findImportedModule hsc_env mod Nothing
case find_res of
Found _ mod
| pkg == this_pkg
case find_res of
Found _ mod
| pkg == this_pkg
@@
-1138,16
+1138,13
@@
checkModUsage this_pkg (Usage { usg_name = mod_name, usg_mod = old_mod_vers,
usg_rules = old_rule_vers,
usg_exports = maybe_old_export_vers,
usg_entities = old_decl_vers })
usg_rules = old_rule_vers,
usg_exports = maybe_old_export_vers,
usg_entities = old_decl_vers })
- = -- Load the imported interface is possible
- let
- doc_str = sep [ptext SLIT("need version info for"), ppr mod_name]
- in
- traceHiDiffs (text "Checking usages for module" <+> ppr mod_name) `thenM_`
+ = do -- Load the imported interface is possible
+ let doc_str = sep [ptext SLIT("need version info for"), ppr mod_name]
+ traceHiDiffs (text "Checking usages for module" <+> ppr mod_name)
- let
- mod = mkModule this_pkg mod_name
- in
- loadInterface doc_str mod ImportBySystem `thenM` \ mb_iface ->
+ let mod = mkModule this_pkg mod_name
+
+ mb_iface <- loadInterface doc_str mod ImportBySystem
-- Load the interface, but don't complain on failure;
-- Instead, get an Either back which we can test
-- Load the interface, but don't complain on failure;
-- Instead, get an Either back which we can test
@@
-1166,9
+1163,9
@@
checkModUsage this_pkg (Usage { usg_name = mod_name, usg_mod = old_mod_vers,
new_rule_vers = mi_rule_vers iface
in
-- CHECK MODULE
new_rule_vers = mi_rule_vers iface
in
-- CHECK MODULE
- checkModuleVersion old_mod_vers new_mod_vers `thenM` \ recompile ->
+ checkModuleVersion old_mod_vers new_mod_vers >>= \ recompile ->
if not recompile then
if not recompile then
- returnM upToDate
+ return upToDate
else
-- CHECK EXPORT LIST
else
-- CHECK EXPORT LIST
@@
-1185,9
+1182,9
@@
checkModUsage this_pkg (Usage { usg_name = mod_name, usg_mod = old_mod_vers,
else
-- CHECK ITEMS ONE BY ONE
else
-- CHECK ITEMS ONE BY ONE
- checkList [checkEntityUsage new_decl_vers u | u <- old_decl_vers] `thenM` \ recompile ->
+ checkList [checkEntityUsage new_decl_vers u | u <- old_decl_vers] >>= \ recompile ->
if recompile then
if recompile then
- returnM outOfDate -- This one failed, so just bail out now
+ return outOfDate -- This one failed, so just bail out now
else
up_to_date (ptext SLIT(" Great! The bits I use are up to date"))
}
else
up_to_date (ptext SLIT(" Great! The bits I use are up to date"))
}
@@
-1213,25
+1210,24
@@
checkEntityUsage new_vers (name,old_vers)
out_of_date (sep [ptext SLIT("No longer exported:"), ppr name])
Just (_, new_vers) -- It's there, but is it up to date?
out_of_date (sep [ptext SLIT("No longer exported:"), ppr name])
Just (_, new_vers) -- It's there, but is it up to date?
- | new_vers == old_vers -> traceHiDiffs (text " Up to date" <+> ppr name <+> parens (ppr new_vers)) `thenM_`
- returnM upToDate
+ | new_vers == old_vers -> do traceHiDiffs (text " Up to date" <+> ppr name <+> parens (ppr new_vers))
+ return upToDate
| otherwise -> out_of_date_vers (ptext SLIT(" Out of date:") <+> ppr name)
old_vers new_vers
| otherwise -> out_of_date_vers (ptext SLIT(" Out of date:") <+> ppr name)
old_vers new_vers
-up_to_date msg = traceHiDiffs msg `thenM_` returnM upToDate
-out_of_date msg = traceHiDiffs msg `thenM_` returnM outOfDate
+up_to_date msg = traceHiDiffs msg >> return upToDate
+out_of_date msg = traceHiDiffs msg >> return outOfDate
out_of_date_vers msg old_vers new_vers
= out_of_date (hsep [msg, ppr old_vers, ptext SLIT("->"), ppr new_vers])
----------------------
checkList :: [IfG RecompileRequired] -> IfG RecompileRequired
-- This helper is used in two places
out_of_date_vers msg old_vers new_vers
= out_of_date (hsep [msg, ppr old_vers, ptext SLIT("->"), ppr new_vers])
----------------------
checkList :: [IfG RecompileRequired] -> IfG RecompileRequired
-- This helper is used in two places
-checkList [] = returnM upToDate
-checkList (check:checks) = check `thenM` \ recompile ->
- if recompile then
- returnM outOfDate
- else
- checkList checks
+checkList [] = return upToDate
+checkList (check:checks) = do recompile <- check
+ if recompile
+ then return outOfDate
+ else checkList checks
\end{code}
%************************************************************************
\end{code}
%************************************************************************