Adding pushing of hpc translation status through hi files.
[ghc-hetmet.git] / compiler / typecheck / TcRnMonad.lhs
index 64b40f6..f36be69 100644 (file)
@@ -84,12 +84,13 @@ initTc hsc_env hsc_src keep_rn_syntax mod do_this
                | otherwise      = Nothing ;
                        
             gbl_env = TcGblEnv {
-               tcg_mod      = mod,
-               tcg_src      = hsc_src,
-               tcg_rdr_env  = hsc_global_rdr_env hsc_env,
-               tcg_fix_env  = emptyNameEnv,
-               tcg_default  = Nothing,
-               tcg_type_env = hsc_global_type_env hsc_env,
+               tcg_mod       = mod,
+               tcg_src       = hsc_src,
+               tcg_rdr_env   = hsc_global_rdr_env hsc_env,
+               tcg_fix_env   = emptyNameEnv,
+               tcg_field_env = emptyNameEnv,
+               tcg_default   = Nothing,
+               tcg_type_env  = hsc_global_type_env hsc_env,
                tcg_type_env_var = type_env_var,
                tcg_inst_env  = emptyInstEnv,
                tcg_fam_inst_env  = emptyFamInstEnv,
@@ -112,7 +113,8 @@ initTc hsc_env hsc_src keep_rn_syntax mod do_this
                tcg_dfun_n   = dfun_n_var,
                tcg_keep     = keep_var,
                tcg_doc      = Nothing,
-               tcg_hmi      = HaddockModInfo Nothing Nothing Nothing Nothing
+               tcg_hmi      = HaddockModInfo Nothing Nothing Nothing Nothing,
+                tcg_hpc      = False
             } ;
             lcl_env = TcLclEnv {
                tcl_errs       = errs_var,
@@ -129,7 +131,6 @@ initTc hsc_env hsc_src keep_rn_syntax mod do_this
    
        -- OK, here's the business end!
        maybe_res <- initTcRnIf 'a' hsc_env gbl_env lcl_env $
-                    addBreakpointBindings $
                     do { r <- tryM do_this
                        ; case r of
                          Right res -> return (Just res)
@@ -156,12 +157,6 @@ initTcPrintErrors env mod todo = do
   return res
 \end{code}
 
-\begin{code}
-addBreakpointBindings :: TcM a -> TcM a
-addBreakpointBindings thing_inside
-   = thing_inside
-\end{code}
-
 %************************************************************************
 %*                                                                     *
                Initialisation
@@ -403,6 +398,14 @@ extendFixityEnv new_bit
   = updGblEnv (\env@(TcGblEnv { tcg_fix_env = old_fix_env }) -> 
                env {tcg_fix_env = extendNameEnvList old_fix_env new_bit})           
 
+getRecFieldEnv :: TcRn RecFieldEnv
+getRecFieldEnv = do { env <- getGblEnv; return (tcg_field_env env) }
+
+extendRecFieldEnv :: RecFieldEnv -> RnM a -> RnM a
+extendRecFieldEnv new_bit
+  = updGblEnv (\env@(TcGblEnv { tcg_field_env = old_env }) -> 
+               env {tcg_field_env = old_env `plusNameEnv` new_bit})         
+
 getDeclaredDefaultTys :: TcRn (Maybe [Type])
 getDeclaredDefaultTys = do { env <- getGblEnv; return (tcg_default env) }
 \end{code}