X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Frename%2FRnEnv.lhs;h=c2b7a7b52f56fe74a7b2e7023e7f20ffe166d794;hp=1a05139444f557f1a44d0c2910e6ff589edf8528;hb=786932468faac49aafe20b65eabc8bdf465fbc9d;hpb=f03b9562a92c6ef94c603a334d5d5e1cd2165c92 diff --git a/compiler/rename/RnEnv.lhs b/compiler/rename/RnEnv.lhs index 1a05139..c2b7a7b 100644 --- a/compiler/rename/RnEnv.lhs +++ b/compiler/rename/RnEnv.lhs @@ -51,7 +51,7 @@ import NameEnv import UniqFM import DataCon ( dataConFieldLabels ) import OccName -import Module ( Module, ModuleName ) +import Module ( ModuleName ) import PrelNames ( mkUnboundName, rOOT_MAIN, iNTERACTIVE, consDataConKey, forall_tv_RDR ) import Unique @@ -82,8 +82,8 @@ thenM = (>>=) %********************************************************* \begin{code} -newTopSrcBinder :: Module -> Located RdrName -> RnM Name -newTopSrcBinder this_mod (L loc rdr_name) +newTopSrcBinder :: Located RdrName -> RnM Name +newTopSrcBinder (L loc rdr_name) | Just name <- isExact_maybe rdr_name = -- This is here to catch -- (a) Exact-name binders created by Template Haskell @@ -95,13 +95,15 @@ newTopSrcBinder this_mod (L loc rdr_name) -- data T = (,) Int Int -- unless we are in GHC.Tup ASSERT2( isExternalName name, ppr name ) - do { unless (this_mod == nameModule name) + do { this_mod <- getModule + ; unless (this_mod == nameModule name) (addErrAt loc (badOrigBinding rdr_name)) ; return name } | Just (rdr_mod, rdr_occ) <- isOrig_maybe rdr_name - = do { unless (rdr_mod == this_mod || rdr_mod == rOOT_MAIN) + = do { this_mod <- getModule + ; unless (rdr_mod == this_mod || rdr_mod == rOOT_MAIN) (addErrAt loc (badOrigBinding rdr_name)) -- When reading External Core we get Orig names as binders, -- but they should agree with the module gotten from the monad @@ -137,7 +139,8 @@ newTopSrcBinder this_mod (L loc rdr_name) ; return (mkInternalName uniq (rdrNameOcc rdr_name) loc) } else -- Normal case - newGlobalBinder this_mod (rdrNameOcc rdr_name) loc } + do { this_mod <- getModule + ; newGlobalBinder this_mod (rdrNameOcc rdr_name) loc } } \end{code} %*********************************************************