diff --git a/ghc/compiler/main/CmdLineOpts.lhs b/ghc/compiler/main/CmdLineOpts.lhs index c9278fe78b872681092f4fe4915ade6988729bee..0f12e51a6158518a0e317bdcb71706e4200bfac3 100644 --- a/ghc/compiler/main/CmdLineOpts.lhs +++ b/ghc/compiler/main/CmdLineOpts.lhs @@ -37,6 +37,7 @@ module CmdLineOpts ( opt_D_dump_tc, opt_D_show_passes, opt_D_show_rn_trace, + opt_D_show_rn_imports, opt_D_simplifier_stats, opt_D_source_stats, opt_D_verbose_core2core, @@ -290,6 +291,7 @@ opt_D_dump_stranal = lookUp SLIT("-ddump-stranal") opt_D_dump_tc = lookUp SLIT("-ddump-tc") opt_D_show_passes = lookUp SLIT("-dshow-passes") opt_D_show_rn_trace = lookUp SLIT("-dshow-rn-trace") +opt_D_show_rn_imports = lookUp SLIT("-dshow-rn-imports") opt_D_simplifier_stats = lookUp SLIT("-dsimplifier-stats") opt_D_source_stats = lookUp SLIT("-dsource-stats") opt_D_verbose_core2core = lookUp SLIT("-dverbose-simpl") diff --git a/ghc/compiler/rename/RnIfaces.lhs b/ghc/compiler/rename/RnIfaces.lhs index fc92acabb9a0b753ec4b973b1cd5f7a1358074d0..d52d8868192777ca15c08b1bfdea331cc59d824b 100644 --- a/ghc/compiler/rename/RnIfaces.lhs +++ b/ghc/compiler/rename/RnIfaces.lhs @@ -20,7 +20,7 @@ module RnIfaces ( #include "HsVersions.h" import CmdLineOpts ( opt_PruneTyDecls, opt_PruneInstDecls, - opt_IgnoreIfacePragmas + opt_D_show_rn_imports, opt_IgnoreIfacePragmas ) import HsSyn ( HsDecl(..), TyDecl(..), ClassDecl(..), InstDecl(..), IfaceSig(..), HsType(..), ConDecl(..), IE(..), ConDetails(..), Sig(..), @@ -977,22 +977,24 @@ findAndReadIface doc_str mod_name as_source file_path = dir ++ '/' : moduleString mod_name ++ (mod_suffix hisuf) \end{code} -@readIface@ trys just one file. +@readIface@ tries just the one file. \begin{code} readIface :: String -> RnMG (Maybe ParsedIface) -- Nothing <=> file not found, or unreadable, or illegible -- Just x <=> successfully found and parsed readIface file_path - = ioToRnMG (hGetStringBuffer file_path) `thenRn` \ read_result -> - --traceRn (hcat[ptext SLIT("Opening...."), text file_path]) `thenRn_` + = ioToRnMG (hGetStringBuffer file_path) `thenRn` \ read_result -> case read_result of Right contents -> case parseIface contents (mkSrcLoc (mkFastString file_path) 1) of - Failed err -> - failWithRn Nothing err + Failed err -> failWithRn Nothing err Succeeded (PIface iface) -> - returnRn (Just iface) + if opt_D_show_rn_imports then + putDocRn (hcat[ptext SLIT("Read "), text file_path]) `thenRn_` + returnRn (Just iface) + else + returnRn (Just iface) Left err -> if isDoesNotExistError err then