From 7a410061004cedc1de8856b4f049a58c09ee6c38 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Wed, 14 Jan 2009 22:17:34 +0000 Subject: [PATCH] External Core: print out more precise dependency info Print out the same recursive/non-recursive binding groups that existed in internal Core in an External Core file, rather than dumping everything into one big recursive group. --- compiler/coreSyn/MkExternalCore.lhs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/compiler/coreSyn/MkExternalCore.lhs b/compiler/coreSyn/MkExternalCore.lhs index ab1f12b..8273159 100644 --- a/compiler/coreSyn/MkExternalCore.lhs +++ b/compiler/coreSyn/MkExternalCore.lhs @@ -65,16 +65,9 @@ mkExternalCore :: CgGuts -> C.Module -- implicit in the data type declaration itself mkExternalCore (CgGuts {cg_module=this_mod, cg_tycons = tycons, cg_binds = binds}) - -- Note that we flatten binds at the top level: - -- every module is just a single recursive bag of declarations. - -- Rationale: since modules can be mutually recursive, - -- there's not much reason to preserve dependency info within a module. - = C.Module mname tdefs (case flattenBinds binds of - -- check for empty list so we don't create an - -- empty Rec group - [] -> [] - bs -> [(runCoreM (make_vdef True - (Rec bs)) this_mod)]) +{- Note that modules can be mutually recursive, but even so, we + print out dependency information within each module. -} + = C.Module mname tdefs (runCoreM (mapM (make_vdef True) binds) this_mod) where mname = make_mid this_mod tdefs = foldr collect_tdefs [] tycons -- 1.7.10.4