Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/ba56d20d767f0425f6f7515fa9c78b186589b896 >--------------------------------------------------------------- commit ba56d20d767f0425f6f7515fa9c78b186589b896 Author: Simon Peyton Jones <simo...@microsoft.com> Date: Wed Oct 3 11:16:22 2012 +0100 This big patch re-factors the way in which arrow-syntax is handled All the work was done by Dan Winograd-Cort. The main thing is that arrow comamnds now have their own data type HsCmd (defined in HsExpr). Previously it was punned with the HsExpr type, which was jolly confusing, and made it hard to do anything arrow-specific. To make this work, we now parameterise * MatchGroup * Match * GRHSs, GRHS * StmtLR and friends over the "body", that is the kind of thing they enclose. This "body" parameter can be instantiated to either LHsExpr or LHsCmd respectively. Everything else is really a knock-on effect; there should be no change (yet!) in behaviour. But it should be a sounder basis for fixing bugs. compiler/deSugar/Coverage.lhs | 78 +++--- compiler/deSugar/DsArrows.lhs | 120 +++++----- compiler/deSugar/DsExpr.lhs | 16 +- compiler/deSugar/DsGRHSs.lhs | 22 +- compiler/deSugar/DsListComp.lhs | 40 ++-- compiler/deSugar/DsMeta.hs | 44 ++-- compiler/deSugar/DsUtils.lhs | 35 --- compiler/deSugar/Match.lhs | 6 +- compiler/deSugar/Match.lhs-boot | 4 +- compiler/hsSyn/Convert.lhs | 18 +- compiler/hsSyn/HsBinds.lhs | 4 +- compiler/hsSyn/HsExpr.lhs | 431 +++++++++++++++++++++------------ compiler/hsSyn/HsExpr.lhs-boot | 28 ++- compiler/hsSyn/HsUtils.lhs | 76 +++--- compiler/main/HscMain.hs | 6 +- compiler/parser/Parser.y.pp | 58 +++--- compiler/parser/RdrHsSyn.lhs | 99 +++++++- compiler/rename/RnBinds.lhs | 69 ++++-- compiler/rename/RnEnv.lhs | 40 ++-- compiler/rename/RnExpr.lhs | 406 ++++++++++++++++--------------- compiler/rename/RnExpr.lhs-boot | 16 +- compiler/rename/RnPat.lhs | 4 +- compiler/rename/RnTypes.lhs | 10 +- compiler/typecheck/Inst.lhs | 5 +- compiler/typecheck/TcArrows.lhs | 69 +++--- compiler/typecheck/TcBinds.lhs | 6 +- compiler/typecheck/TcExpr.lhs | 9 +- compiler/typecheck/TcGenDeriv.lhs | 12 +- compiler/typecheck/TcHsSyn.lhs | 182 +++++++++----- compiler/typecheck/TcMatches.lhs | 141 ++++++----- compiler/typecheck/TcMatches.lhs-boot | 11 +- compiler/typecheck/TcRnDriver.lhs | 18 +- 32 files changed, 1177 insertions(+), 906 deletions(-) Diff suppressed because of size. To see it, use: git show ba56d20d767f0425f6f7515fa9c78b186589b896 _______________________________________________ Cvs-ghc mailing list Cvs-ghc@haskell.org http://www.haskell.org/mailman/listinfo/cvs-ghc