diff options
author | Joachim Breitner <mail@joachim-breitner.de> | 2013-12-06 17:58:29 +0000 |
---|---|---|
committer | Joachim Breitner <mail@joachim-breitner.de> | 2013-12-09 15:42:09 +0000 |
commit | a31cb5b07726f5739f6eac35cbb348fcd2d6b598 (patch) | |
tree | 50d2a56aaed6555a5a42a7645e4d3487a95ac271 /compiler/stranal | |
parent | 3f6da561a9d71030efbab20544c4f77f9da0759d (diff) | |
download | haskell-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.lhs | 2 |
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 |