Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch :
http://hackage.haskell.org/trac/ghc/changeset/c406b5bde899dd2b28e5239937c909d675bca356 >--------------------------------------------------------------- commit c406b5bde899dd2b28e5239937c909d675bca356 Author: [email protected] <unknown> Date: Tue Feb 15 14:36:55 2011 +0000 Ensure exprIsCheap/exprIsExpandable deal with Cast properly 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 | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/compiler/coreSyn/CoreUtils.lhs b/compiler/coreSyn/CoreUtils.lhs index b50cb01..c901fc2 100644 --- 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 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
