summaryrefslogtreecommitdiff
path: root/compiler/stranal
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2013-12-06 17:58:29 +0000
committerJoachim Breitner <mail@joachim-breitner.de>2013-12-09 15:42:09 +0000
commita31cb5b07726f5739f6eac35cbb348fcd2d6b598 (patch)
tree50d2a56aaed6555a5a42a7645e4d3487a95ac271 /compiler/stranal
parent3f6da561a9d71030efbab20544c4f77f9da0759d (diff)
downloadhaskell-a31cb5b07726f5739f6eac35cbb348fcd2d6b598.tar.gz
Do not forget CPR information after an IO action
but do forget about certain divergence, if required. Fixes one part of ticket #8598. The added function (deferAfterIO) can maybe be merged with existing code, but given the ongoing work in the nested-cpr branch, I defer that work.
Diffstat (limited to 'compiler/stranal')
-rw-r--r--compiler/stranal/DmdAnal.lhs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/stranal/DmdAnal.lhs b/compiler/stranal/DmdAnal.lhs
index 0ceb7c95c5..cadc04c315 100644
--- a/compiler/stranal/DmdAnal.lhs
+++ b/compiler/stranal/DmdAnal.lhs
@@ -335,7 +335,7 @@ dmdAnalAlt env dmd (con,bndrs,rhs)
(rhs_ty, rhs') = dmdAnal env dmd rhs
rhs_ty' = addDataConPatDmds con bndrs rhs_ty
(alt_ty, bndrs') = annotateBndrs env rhs_ty' bndrs
- final_alt_ty | io_hack_reqd = alt_ty `lubDmdType` topDmdType
+ final_alt_ty | io_hack_reqd = deferAfterIO alt_ty
| otherwise = alt_ty
-- There's a hack here for I/O operations. Consider