[project @ 2002-11-21 17:54:17 by simonpj]
authorsimonpj <unknown>
Thu, 21 Nov 2002 17:54:18 +0000 (17:54 +0000)
committersimonpj <unknown>
Thu, 21 Nov 2002 17:54:18 +0000 (17:54 +0000)
Another wibble

ghc/compiler/deSugar/Desugar.lhs
ghc/compiler/typecheck/TcSplice.lhs

index f06cd26..c5e1814 100644 (file)
@@ -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
index 088c498..94e9c0e 100644 (file)
@@ -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 ->