Allow empty case expressions (and lambda-case) with -XEmptyCase
authorSimon Peyton Jones <simonpj@microsoft.com>
Fri, 4 Jan 2013 10:27:38 +0000 (10:27 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Fri, 4 Jan 2013 10:27:38 +0000 (10:27 +0000)
commit3671e674757c8f82ec1f0ea9b7c1ed56340b55bc
tree9c875d12dc2817df632c4f801278bfdfda4c8b93
parent28d9a03253e8fd613667526a170b684f2017d299
Allow empty case expressions (and lambda-case) with -XEmptyCase

The main changes are:
  * Parser accepts empty case alternatives
  * Renamer checks that -XEmptyCase is on in that case
  * (Typechecker is pretty much unchanged.)
  * Desugarer desugars empty case alternatives, esp:
      - Match.matchWrapper and Match.match now accept empty eqns
      - New function matchEmpty deals with the empty case
      - See Note [Empty case alternatives] in Match

This patch contains most of the work, but it's a bit mixed up
with a refactoring of MatchGroup that I did at the same time
(next commit).
compiler/deSugar/DsExpr.lhs
compiler/deSugar/DsUtils.lhs
compiler/deSugar/Match.lhs
compiler/deSugar/MatchCon.lhs
compiler/deSugar/MatchLit.lhs
compiler/main/DynFlags.hs
compiler/parser/Parser.y.pp
compiler/rename/RnBinds.lhs
docs/users_guide/glasgow_exts.xml