Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ac230c5ef652e27f61d954281ae6a3195e1f9970

>---------------------------------------------------------------

commit ac230c5ef652e27f61d954281ae6a3195e1f9970
Author: Simon Peyton Jones <[email protected]>
Date:   Wed May 2 15:44:14 2012 +0100

    Allow cases with empty alterantives
    
    This patch allows, for the first time, case expressions with an empty
    list of alternatives. Max suggested the idea, and Trac #6067 showed
    that it is really quite important.
    
    So I've implemented the idea, fixing #6067. Main changes
    
     * See Note [Empty case alternatives] in CoreSyn
    
     * Various foldr1's become foldrs
    
     * IfaceCase does not record the type of the alternatives.
       I added IfaceECase for empty-alternative cases.
    
     * Core Lint does not complain about empty cases
    
     * MkCore.castBottomExpr constructs an empty-alternative case
       expression   (case e of ty {})
    
     * CoreToStg converts '(case e of {})' to just 'e'

 compiler/coreSyn/CoreArity.lhs     |   10 +++-
 compiler/coreSyn/CoreFVs.lhs       |    2 +-
 compiler/coreSyn/CoreLint.lhs      |    8 ---
 compiler/coreSyn/CoreSyn.lhs       |   53 ++++++++++++++++++++-
 compiler/coreSyn/CoreUnfold.lhs    |    4 +-
 compiler/coreSyn/MkCore.lhs        |   12 ++++-
 compiler/iface/BinIface.hs         |    7 +++
 compiler/iface/IfaceSyn.lhs        |   14 +++++-
 compiler/iface/MkIface.lhs         |    4 +-
 compiler/iface/TcIface.lhs         |    6 ++
 compiler/simplCore/OccurAnal.lhs   |    2 +-
 compiler/simplCore/SimplCore.lhs   |   10 ++--
 compiler/simplCore/SimplUtils.lhs  |   56 +++++++++++-----------
 compiler/simplCore/Simplify.lhs    |   93 ++++++++++++++++++------------------
 compiler/specialise/SpecConstr.lhs |    4 +-
 compiler/specialise/Specialise.lhs |    8 ++--
 compiler/stgSyn/CoreToStg.lhs      |   12 +++++
 compiler/stranal/DmdAnal.lhs       |    2 +-
 18 files changed, 201 insertions(+), 106 deletions(-)


Diff suppressed because of size. To see it, use:

    git show ac230c5ef652e27f61d954281ae6a3195e1f9970

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to