Repository : http://darcs.haskell.org/ghc.git/
On branch : th-new https://github.com/ghc/ghc/commit/e630fc8931ea63da6ecff05ff0a86b30d6b502a6 >--------------------------------------------------------------- commit e630fc8931ea63da6ecff05ff0a86b30d6b502a6 Author: Geoffrey Mainland <[email protected]> Date: Tue May 21 13:26:02 2013 +0100 Code formatting cleanup. >--------------------------------------------------------------- compiler/typecheck/TcRnDriver.lhs | 66 ++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/compiler/typecheck/TcRnDriver.lhs b/compiler/typecheck/TcRnDriver.lhs index c31656f..9b74550 100644 --- a/compiler/typecheck/TcRnDriver.lhs +++ b/compiler/typecheck/TcRnDriver.lhs @@ -464,55 +464,57 @@ tcRnSrcDecls boot_iface decls } } tc_rn_src_decls :: ModDetails - -> [LHsDecl RdrName] - -> TcM (TcGblEnv, TcLclEnv) + -> [LHsDecl RdrName] + -> TcM (TcGblEnv, TcLclEnv) -- Loops around dealing with each top level inter-splice group -- in turn, until it's dealt with the entire module tc_rn_src_decls boot_details ds = {-# SCC "tc_rn_src_decls" #-} - do { (first_group, group_tail) <- findSplice ds ; + do { (first_group, group_tail) <- findSplice ds -- If ds is [] we get ([], Nothing) -- The extra_deps are needed while renaming type and class declarations -- See Note [Extra dependencies from .hs-boot files] in RnSource - let { extra_deps = map tyConName (typeEnvTyCons (md_types boot_details)) } ; + ; let { extra_deps = map tyConName (typeEnvTyCons (md_types boot_details)) } -- Deal with decls up to, but not including, the first splice - (tcg_env, rn_decls) <- rnTopSrcDecls extra_deps first_group ; + ; (tcg_env, rn_decls) <- rnTopSrcDecls extra_deps first_group -- rnTopSrcDecls fails if there are any errors - (tcg_env, tcl_env) <- setGblEnv tcg_env $ - tcTopSrcDecls boot_details rn_decls ; + ; (tcg_env, tcl_env) <- setGblEnv tcg_env $ + tcTopSrcDecls boot_details rn_decls -- If there is no splice, we're nearly done - setEnvs (tcg_env, tcl_env) $ - case group_tail of { - Nothing -> do { tcg_env <- checkMain ; -- Check for `main' - traceTc "returning from tc_rn_src_decls: " $ - ppr $ nameEnvElts $ tcg_type_env tcg_env ; -- RAE - return (tcg_env, tcl_env) - } ; + ; setEnvs (tcg_env, tcl_env) $ + case group_tail of + { Nothing -> do { tcg_env <- checkMain -- Check for `main' + ; traceTc "returning from tc_rn_src_decls: " $ + ppr $ nameEnvElts $ tcg_type_env tcg_env -- RAE + ; return (tcg_env, tcl_env) + } #ifndef GHCI - -- There shouldn't be a splice - Just (SpliceDecl {}, _) -> do { - failWithTc (text "Can't do a top-level splice; need a bootstrapped compiler") + -- There shouldn't be a splice + ; Just (SpliceDecl {}, _) -> + failWithTc (text "Can't do a top-level splice; need a bootstrapped compiler") + } #else - -- If there's a splice, we must carry on - Just (SpliceDecl (L _ splice) _, rest_ds) -> do { - - -- Rename the splice expression, and get its supporting decls - (rn_splice, splice_fvs) <- checkNoErrs (rnSplice splice) ; - -- checkNoErrs: don't typecheck if renaming failed - rnDump (ppr rn_splice) ; - - -- Execute the splice - spliced_decls <- tcSpliceDecls rn_splice ; - - -- Glue them on the front of the remaining decls and loop - setGblEnv (tcg_env `addTcgDUs` usesOnly splice_fvs) $ - tc_rn_src_decls boot_details (spliced_decls ++ rest_ds) + -- If there's a splice, we must carry on + ; Just (SpliceDecl (L _ splice) _, rest_ds) -> + do { -- Rename the splice expression, and get its supporting decls + (rn_splice, splice_fvs) <- checkNoErrs (rnSplice splice) + -- checkNoErrs: don't typecheck if renaming failed + ; rnDump (ppr rn_splice) + + -- Execute the splice + ; spliced_decls <- tcSpliceDecls rn_splice + + -- Glue them on the front of the remaining decls and loop + ; setGblEnv (tcg_env `addTcgDUs` usesOnly splice_fvs) $ + tc_rn_src_decls boot_details (spliced_decls ++ rest_ds) + } + } #endif /* GHCI */ - } } } + } \end{code} %************************************************************************ _______________________________________________ ghc-commits mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-commits
