diff options
Diffstat (limited to 'compiler/GHC/Tc/Utils/Monad.hs')
-rw-r--r-- | compiler/GHC/Tc/Utils/Monad.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs index 571e02c7cf..5741e21ca5 100644 --- a/compiler/GHC/Tc/Utils/Monad.hs +++ b/compiler/GHC/Tc/Utils/Monad.hs @@ -1306,6 +1306,7 @@ capture_constraints thing_inside ; res <- updLclEnv (\ env -> env { tcl_lie = lie_var }) $ thing_inside ; lie <- readTcRef lie_var + ; when debugIsOn (writeTcRef lie_var (error "capture_constraints: use after free")) ; return (res, lie) } capture_messages :: TcM r -> TcM (r, Messages TcRnMessage) @@ -1318,8 +1319,11 @@ capture_messages thing_inside = do { msg_var <- newTcRef emptyMessages ; res <- setErrsVar msg_var thing_inside ; msgs <- readTcRef msg_var + ; when debugIsOn (writeTcRef msg_var (error "capture_messages: use after free")) ; return (res, msgs) } + + ----------------------- -- (askNoErrs m) runs m -- If m fails, |