Re-working of the breakpoint support
[ghc-hetmet.git] / compiler / typecheck / TcRnDriver.lhs
index 4e0f283..2595963 100644 (file)
@@ -72,7 +72,6 @@ import SrcLoc
 import HscTypes
 import ListSetOps
 import Outputable
-import Breakpoints
 
 #ifdef GHCI
 import Linker
@@ -97,6 +96,9 @@ import Util
 import Bag
 
 import Control.Monad    ( unless )
+import Data.Maybe      ( isJust )
+import Foreign.Ptr      ( Ptr )
+
 \end{code}
 
 
@@ -318,7 +320,7 @@ tcRnExtCore hsc_env (HsExtCore this_mod decls src_binds)
                                mg_deprecs   = NoDeprecs,
                                mg_foreign   = NoStubs,
                                mg_hpc_info  = noHpcInfo,
-                                mg_dbg_sites = noDbgSites
+                                mg_modBreaks = emptyModBreaks  
                    } } ;
 
    tcCoreDump mod_guts ;
@@ -728,19 +730,18 @@ tcTopSrcDecls boot_details
 checkMain :: TcM TcGblEnv
 -- If we are in module Main, check that 'main' is defined.
 checkMain 
-  = do { ghc_mode <- getGhcMode ;
-        tcg_env   <- getGblEnv ;
+  = do { tcg_env   <- getGblEnv ;
         dflags    <- getDOpts ;
         let { main_mod = mainModIs dflags ;
               main_fn  = case mainFunIs dflags of {
                                Just fn -> mkRdrUnqual (mkVarOccFS (mkFastString fn)) ;
                                Nothing -> main_RDR_Unqual } } ;
        
-        check_main ghc_mode tcg_env main_mod main_fn
+        check_main dflags tcg_env main_mod main_fn
     }
 
 
-check_main ghc_mode tcg_env main_mod main_fn
+check_main dflags tcg_env main_mod main_fn
  | mod /= main_mod
  = traceTc (text "checkMain not" <+> ppr main_mod <+> ppr mod) >>
    return tcg_env
@@ -780,8 +781,8 @@ check_main ghc_mode tcg_env main_mod main_fn
   where
     mod = tcg_mod tcg_env
  
-    complain_no_main | ghc_mode == Interactive = return ()
-                    | otherwise                = failWithTc noMainMsg
+    complain_no_main | ghcLink dflags == LinkInMemory = return ()
+                    | otherwise = failWithTc noMainMsg
        -- In interactive mode, don't worry about the absence of 'main'
        -- In other modes, fail altogether, so that we don't go on
        -- and complain a second time when processing the export list.
@@ -1194,11 +1195,11 @@ lookup_rdr_name rdr_name = do {
     return good_names
  }
 
-tcRnRecoverDataCon :: HscEnv -> a -> IO (Maybe DataCon) 
-tcRnRecoverDataCon hsc_env a
+tcRnRecoverDataCon :: HscEnv -> Ptr () -> IO (Maybe DataCon) 
+tcRnRecoverDataCon hsc_env ptr
   = initTcPrintErrors hsc_env iNTERACTIVE $ 
-    setInteractiveContext hsc_env (hsc_IC hsc_env) $
-     do name    <- recoverDataCon a
+    setInteractiveContext hsc_env (hsc_IC hsc_env) $ do
+        name <- dataConInfoPtrToName ptr
         tcLookupDataCon name
 
 tcRnLookupName :: HscEnv -> Name -> IO (Maybe TyThing)