projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Breakpoints: get the names of the free variables right
[ghc-hetmet.git]
/
compiler
/
deSugar
/
DsUtils.lhs
diff --git
a/compiler/deSugar/DsUtils.lhs
b/compiler/deSugar/DsUtils.lhs
index
3c56567
..
62284db
100644
(file)
--- a/
compiler/deSugar/DsUtils.lhs
+++ b/
compiler/deSugar/DsUtils.lhs
@@
-936,12
+936,12
@@
mkFailurePair expr
\end{code}
\begin{code}
\end{code}
\begin{code}
-mkOptTickBox :: Maybe Int -> CoreExpr -> DsM CoreExpr
+mkOptTickBox :: Maybe (Int,[Id]) -> CoreExpr -> DsM CoreExpr
mkOptTickBox Nothing e = return e
mkOptTickBox Nothing e = return e
-mkOptTickBox (Just ix) e = mkTickBox ix e
+mkOptTickBox (Just (ix,ids)) e = mkTickBox ix ids e
-mkTickBox :: Int -> CoreExpr -> DsM CoreExpr
-mkTickBox ix e = do
+mkTickBox :: Int -> [Id] -> CoreExpr -> DsM CoreExpr
+mkTickBox ix vars e = do
uq <- newUnique
mod <- getModuleDs
let tick | opt_Hpc = mkTickBoxOpId uq mod ix
uq <- newUnique
mod <- getModuleDs
let tick | opt_Hpc = mkTickBoxOpId uq mod ix
@@
-954,11
+954,10
@@
mkTickBox ix e = do
if opt_Hpc
then return (Var tick)
else do
if opt_Hpc
then return (Var tick)
else do
- locals <- getLocalBindsDs
let tickVar = Var tick
let tickVar = Var tick
- let tickType = mkFunTys (map idType locals) realWorldStatePrimTy
+ let tickType = mkFunTys (map idType vars) realWorldStatePrimTy
let scrutApTy = App tickVar (Type tickType)
let scrutApTy = App tickVar (Type tickType)
- return (mkApps scrutApTy (map Var locals) :: Expr Id)
+ return (mkApps scrutApTy (map Var vars) :: Expr Id)
return $ Case scrut var ty [(DEFAULT,[],e)]
where
ty = exprType e
return $ Case scrut var ty [(DEFAULT,[],e)]
where
ty = exprType e
@@
-969,8
+968,8
@@
mkBinaryTickBox ixT ixF e = do
uq <- newUnique
mod <- getModuleDs
let bndr1 = mkSysLocal FSLIT("t1") uq boolTy
uq <- newUnique
mod <- getModuleDs
let bndr1 = mkSysLocal FSLIT("t1") uq boolTy
- falseBox <- mkTickBox ixF $ Var falseDataConId
- trueBox <- mkTickBox ixT $ Var trueDataConId
+ falseBox <- mkTickBox ixF [] $ Var falseDataConId
+ trueBox <- mkTickBox ixT [] $ Var trueDataConId
return $ Case e bndr1 boolTy
[ (DataAlt falseDataCon, [], falseBox)
, (DataAlt trueDataCon, [], trueBox)
return $ Case e bndr1 boolTy
[ (DataAlt falseDataCon, [], falseBox)
, (DataAlt trueDataCon, [], trueBox)