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

Reply via email to