From 0df435464ff825eb66e409fb5668a53cd5362309 Mon Sep 17 00:00:00 2001 From: simonpj Date: Thu, 21 Nov 2002 17:54:18 +0000 Subject: [PATCH] [project @ 2002-11-21 17:54:17 by simonpj] Another wibble --- ghc/compiler/deSugar/Desugar.lhs | 8 +++++--- ghc/compiler/typecheck/TcSplice.lhs | 10 ++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/ghc/compiler/deSugar/Desugar.lhs b/ghc/compiler/deSugar/Desugar.lhs index f06cd26..c5e1814 100644 --- a/ghc/compiler/deSugar/Desugar.lhs +++ b/ghc/compiler/deSugar/Desugar.lhs @@ -140,12 +140,12 @@ deSugarExpr :: HscEnv -> Module -> GlobalRdrEnv -> TypeEnv -> TypecheckedHsExpr -> IO CoreExpr -deSugarExpr hsc_env pcs mod_name rdr_env type_env tc_expr +deSugarExpr hsc_env pcs this_mod rdr_env type_env tc_expr = do { showPass dflags "Desugar" ; us <- mkSplitUniqSupply 'd' -- Do desugaring - ; let (core_expr, ds_warns) = initDs dflags us lookup mod_name (dsExpr tc_expr) + ; let (core_expr, ds_warns) = initDs dflags us lookup this_mod (dsExpr tc_expr) warn_doc = pprBagOfWarnings (mapBag mk_warn ds_warns) -- Display any warnings @@ -161,10 +161,12 @@ deSugarExpr hsc_env pcs mod_name rdr_env type_env tc_expr dflags = hsc_dflags hsc_env hpt = hsc_HPT hsc_env pte = eps_PTE (pcs_EPS pcs) - lookup n = lookupNameEnv type_env n `orElse` -- Look in the type env of the + lookup n = pprTrace "lookup" (ppr type_env) ( + lookupNameEnv type_env n `orElse` -- Look in the type env of the -- current module first lookupType hpt pte n `orElse` -- Then other modules pprPanic "Desugar: lookup:" (ppr n) + ) mk_warn :: (SrcLoc,SDoc) -> (SrcLoc, Pretty.Doc) mk_warn (loc,sdoc) = addShortWarnLocLine loc print_unqual sdoc diff --git a/ghc/compiler/typecheck/TcSplice.lhs b/ghc/compiler/typecheck/TcSplice.lhs index 088c498..94e9c0e 100644 --- a/ghc/compiler/typecheck/TcSplice.lhs +++ b/ghc/compiler/typecheck/TcSplice.lhs @@ -216,10 +216,10 @@ runMeta :: TypecheckedHsExpr -- Of type X -> TcM t -- Of type t runMeta expr = getTopEnv `thenM` \ top_env -> + getGblEnv `thenM` \ tcg_env -> getEps `thenM` \ eps -> getNameCache `thenM` \ name_cache -> getModule `thenM` \ this_mod -> - getGlobalRdrEnv `thenM` \ rdr_env -> let ghci_mode = top_mode top_env @@ -228,10 +228,12 @@ runMeta expr pcs = PCS { pcs_nc = name_cache, pcs_EPS = eps } - print_unqual = unQualInScope rdr_env + type_env = tcg_type_env tcg_env + rdr_env = tcg_rdr_env tcg_env in - ioToTcRn (HscMain.compileExpr hsc_env pcs this_mod - print_unqual expr) `thenM` \ hval -> + ioToTcRn (HscMain.compileExpr + hsc_env pcs this_mod + rdr_env type_env expr) `thenM` \ hval -> tryM (tcRunQ (unsafeCoerce# hval)) `thenM` \ either_tval -> -- 1.7.10.4