Wed Oct 10 08:02:54 PDT 2007  Dan Licata <[EMAIL PROTECTED]>
  * View patterns, record wildcards, and record puns
  This patch implements three new features:
  * view patterns (syntax: expression -> pat in a pattern)
  * working versions of record wildcards and record puns
  See the manual for detailed descriptions.
  
  Other minor observable changes:
  * There is a check prohibiting local fixity declarations
    when the variable being fixed is not defined in the same let
  * The warn-unused-binds option now reports warnings for do and mdo stmts
  
  Implementation notes: 
  
  * The pattern renamer is now in its own module, RnPat, and the
  implementation is now in a CPS style so that the correct context is
  delivered to pattern expressions.
  
  * These features required a fairly major upheaval to the renamer.
  Whereas the old version used to collect up all the bindings from a let
  (or top-level, or recursive do statement, ...) and put them into scope
  before renaming anything, the new version does the collection as it
  renames.  This allows us to do the right thing with record wildcard
  patterns (which need to be expanded to see what names should be
  collected), and it allows us to implement the desired semantics for view
  patterns in lets.  This change had a bunch of domino effects brought on
  by fiddling with the top-level renaming.
  
  * Prior to this patch, there was a tricky bug in mkRecordSelId in HEAD,
  which did not maintain the invariant necessary for loadDecl.  See note
  [Tricky iface loop] for details.

    M ./compiler/basicTypes/DataCon.lhs -6 +15
    M ./compiler/basicTypes/MkId.lhs -11 +27
    M ./compiler/basicTypes/NameEnv.lhs -21 +27
    M ./compiler/basicTypes/OccName.lhs -16 +25
    M ./compiler/deSugar/Check.lhs -6 +12
    M ./compiler/deSugar/Coverage.lhs -1 +1
    M ./compiler/deSugar/DsArrows.lhs -1 +1
    M ./compiler/deSugar/DsMeta.hs -6 +6
    M ./compiler/deSugar/DsMonad.lhs -2 +2
    M ./compiler/deSugar/DsUtils.lhs -1 +7
    M ./compiler/deSugar/Match.lhs -24 +152
    M ./compiler/deSugar/MatchLit.lhs -25 +25
    M ./compiler/hsSyn/Convert.lhs -3 +3
    M ./compiler/hsSyn/HsBinds.lhs -42 +64
    M ./compiler/hsSyn/HsExpr.lhs -30 +39
    M ./compiler/hsSyn/HsExpr.lhs-boot -2 +5
    M ./compiler/hsSyn/HsLit.lhs -20 +36
    M ./compiler/hsSyn/HsPat.lhs -9 +22
    M ./compiler/hsSyn/HsUtils.lhs -12 +12
    M ./compiler/iface/BinIface.hs -1 +1
    M ./compiler/iface/IfaceSyn.lhs -32 +56
    M ./compiler/iface/LoadIface.lhs -24 +58
    M ./compiler/iface/MkIface.lhs -10 +4
    M ./compiler/main/DynFlags.hs +4
    M ./compiler/main/HscMain.lhs -1 +1
    M ./compiler/main/HscTypes.lhs -49 +81
    M ./compiler/main/InteractiveEval.hs -1
    M ./compiler/parser/Parser.y.pp -10 +18
    M ./compiler/parser/RdrHsSyn.lhs -2 +4
    M ./compiler/rename/RnBinds.lhs -128 +345
    M ./compiler/rename/RnEnv.lhs -43 +104
    M ./compiler/rename/RnExpr.lhs -73 +164
    M ./compiler/rename/RnNames.lhs -32 +80
    A ./compiler/rename/RnPat.lhs
    M ./compiler/rename/RnSource.lhs -104 +162
    M ./compiler/rename/RnTypes.lhs -329 +36
    M ./compiler/typecheck/Inst.lhs -3 +3
    M ./compiler/typecheck/TcArrows.lhs -1 +1
    M ./compiler/typecheck/TcEnv.lhs -7 +9
    M ./compiler/typecheck/TcExpr.lhs -2 +1
    M ./compiler/typecheck/TcExpr.lhs-boot +1
    M ./compiler/typecheck/TcHsSyn.lhs -10 +20
    M ./compiler/typecheck/TcMatches.lhs -1 +1
    M ./compiler/typecheck/TcPat.lhs -21 +49
    M ./compiler/typecheck/TcRnDriver.lhs -14 +15
    M ./compiler/typecheck/TcRnMonad.lhs -2 +3
    M ./compiler/typecheck/TcRnTypes.lhs -2 +2
    M ./compiler/vectorise/VectMonad.hs -1 +1
    M ./docs/users_guide/flags.xml +6
    M ./docs/users_guide/glasgow_exts.xml -1 +362

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

Reply via email to