summaryrefslogtreecommitdiff
path: root/compiler/basicTypes/Demand.hs
diff options
context:
space:
mode:
authorDavid Feuer <david.feuer@gmail.com>2017-03-01 01:14:13 -0500
committerDavid Feuer <David.Feuer@gmail.com>2017-03-01 01:14:14 -0500
commit701256df88c61a2eee4cf00a59e61ef76a57b4b4 (patch)
tree390d51339bff6fb8d5369ec55a7d3cdc2fb5bb57 /compiler/basicTypes/Demand.hs
parentb86d226fda2f512178e04da4dec96b15c4480507 (diff)
downloadhaskell-701256df88c61a2eee4cf00a59e61ef76a57b4b4.tar.gz
Change catch# demand signature
* Give `catch#` a lazy demand signature, to make it more honest. * Make `catchException` and `catchAny` force their arguments so they actually behave as advertised. * Use `catch` rather than `catchException` in `forkIO`, `forkOn`, and `forkOS` to avoid losing exceptions. Fixes #13330 Reviewers: rwbarton, simonpj, simonmar, bgamari, hvr, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3244
Diffstat (limited to 'compiler/basicTypes/Demand.hs')
-rw-r--r--compiler/basicTypes/Demand.hs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/basicTypes/Demand.hs b/compiler/basicTypes/Demand.hs
index 71a044f51f..eab01d0605 100644
--- a/compiler/basicTypes/Demand.hs
+++ b/compiler/basicTypes/Demand.hs
@@ -708,7 +708,7 @@ lazyApply1Dmd, lazyApply2Dmd, strictApply1Dmd, catchArgDmd :: Demand
strictApply1Dmd = JD { sd = Str VanStr (SCall HeadStr)
, ud = Use Many (UCall One Used) }
--- First argument of catch#:
+-- First argument of catchRetry# and catchSTM#:
-- uses its arg once, applies it once
-- and catches exceptions (the ExnStr) part
catchArgDmd = JD { sd = Str ExnStr (SCall HeadStr)