Skip to content
Snippets Groups Projects
Commit a10ed3e6 authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

Comments only

parent 9c9bb003
No related merge requests found
...@@ -323,10 +323,10 @@ this transformation. So we try to limit it as much as possible: ...@@ -323,10 +323,10 @@ this transformation. So we try to limit it as much as possible:
going to diverge eventually anyway then getting the best arity going to diverge eventually anyway then getting the best arity
isn't an issue, so we might as well play safe isn't an issue, so we might as well play safe
(3) Do NOT move a lambda outside a case unless (3) Do NOT move a lambda outside a case unless
(a) The scrutinee is ok-for-speculation, or (a) The scrutinee is ok-for-speculation, or
(b) more liberally: the scrutinee is cheap and -fpedantic-bottoms is not (b) more liberally: the scrutinee is cheap (e.g. a variable), and
enforced -fpedantic-bottoms is not enforced (see Trac #2915 for an example)
Of course both (1) and (2) are readily defeated by disguising the bottoms. Of course both (1) and (2) are readily defeated by disguising the bottoms.
...@@ -753,10 +753,10 @@ arityType env (Case scrut _ _ alts) ...@@ -753,10 +753,10 @@ arityType env (Case scrut _ _ alts)
| otherwise -> ABot 0 -- if RHS is bottomming | otherwise -> ABot 0 -- if RHS is bottomming
-- See Note [Dealing with bottom (2)] -- See Note [Dealing with bottom (2)]
ATop as | not (ae_ped_bot env) -- Check -fpedantic-bottoms ATop as | not (ae_ped_bot env) -- See Note [Dealing with bottom (3)]
, ae_cheap_fn env scrut Nothing -> ATop as , ae_cheap_fn env scrut Nothing -> ATop as
| exprOkForSpeculation scrut -> ATop as | exprOkForSpeculation scrut -> ATop as
| otherwise -> ATop (takeWhile isOneShotInfo as) | otherwise -> ATop (takeWhile isOneShotInfo as)
where where
alts_type = foldr1 andArityType [arityType env rhs | (_,_,rhs) <- alts] alts_type = foldr1 andArityType [arityType env rhs | (_,_,rhs) <- alts]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment