projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
f95abb4
)
Ensure exprIsCheap/exprIsExpandable deal with Cast properly
author
simonpj@microsoft.com
<unknown>
Tue, 15 Feb 2011 14:36:55 +0000
(14:36 +0000)
committer
simonpj@microsoft.com
<unknown>
Tue, 15 Feb 2011 14:36:55 +0000
(14:36 +0000)
This bug was causing a Lint error on the stable branch. For some
reason it doesn't show up in HEAD, but it's still worth fixing.
The point is that ((f `cast` co) a) is cheap if f has arity>1.
This was being gratuitously missed before.
compiler/coreSyn/CoreUtils.lhs
patch
|
blob
|
history
diff --git
a/compiler/coreSyn/CoreUtils.lhs
b/compiler/coreSyn/CoreUtils.lhs
index
b50cb01
..
c901fc2
100644
(file)
--- a/
compiler/coreSyn/CoreUtils.lhs
+++ b/
compiler/coreSyn/CoreUtils.lhs
@@
-563,6
+563,7
@@
exprIsCheap' good_app other_expr -- Applications and variables
= go other_expr []
where
-- Accumulate value arguments, then decide
+ go (Cast e _) val_args = go e val_args
go (App f a) val_args | isRuntimeArg a = go f (a:val_args)
| otherwise = go f val_args