Comments only
[ghc-hetmet.git] / compiler / deSugar / DsBreakpoint.lhs
index b0e7265..1d17c97 100644 (file)
@@ -59,7 +59,8 @@ mkBreakpointExpr loc bkptFuncId = do
         let scope = filter (isValidType .idType ) scope'
             mod_name = moduleNameFS$ moduleName mod
         if null scope && instrumenting
-         then return (l$ HsVar lazyId) 
+           -- need to return some expresion, hence lazy is used here as a noop (hopefully)
+         then return (l$ HsVar lazyId)  
          else do
           when (not instrumenting) $
               warnDs (text "Extracted ids:" <+> (ppr scope $$ 
@@ -114,9 +115,6 @@ debug_enabled = do
 debug_enabled = return False
 #endif
 
-maybeInsertBreakpoint :: LHsExpr Id -> Type ->  DsM (LHsExpr Id)
---maybeInsertBreakpoint e | pprTrace("insertBreakpoint at" (ppr e) False = undefined
-
 isInstrumentationSpot (L loc e) = do
   ghcmode   <- getGhcModeDs
   instrumenting <- debug_enabled 
@@ -126,7 +124,7 @@ isInstrumentationSpot (L loc e) = do
 
 isRedundant HsLet  {} = True
 isRedundant HsDo   {} = True
-isRedundant HsCase {} = True
+isRedundant HsCase {} = False
 isRedundant     _     = False
 
 dynBreakpoint :: SrcSpan -> DsM (LHsExpr Id)
@@ -144,7 +142,6 @@ dynBreakpoint loc = do
 
 -- Records a breakpoint site and returns the site number
 recordBkpt :: SrcLoc -> DsM (Int)
---recordBkpt | trace "recordBkpt" False = undefined
 recordBkpt loc = do
     sites_var <- getBkptSitesDs
     sites     <- ioToIOEnv$ readIORef sites_var
@@ -180,13 +177,14 @@ mkJumpFunc bkptFuncId
 
 breakpoints_enabled :: DsM Bool
 dsAndThenMaybeInsertBreakpoint :: LHsExpr Id -> DsM CoreExpr
+-- | Takes an expression and its type
+maybeInsertBreakpoint :: LHsExpr Id -> Type ->  DsM (LHsExpr Id)
 
 #ifdef GHCI
 maybeInsertBreakpoint lhsexpr@(L loc _) ty = do 
   instrumenting <- isInstrumentationSpot lhsexpr
   if instrumenting
          then do L _ dynBkpt <- dynBreakpoint loc 
---                 return (l (HsApp (l$ TyApp dynBkpt [ty]) lhsexpr))
                  return$ l(HsApp (l$ HsWrap (WpTyApp ty) dynBkpt) lhsexpr)
          else return lhsexpr
   where l = L loc