Skip to content
  • Simon Peyton Jones's avatar
    Improvements to record puns, wildcards · d64022dc
    Simon Peyton Jones authored
    * Make C { A.a } work with punning, expanding to C { A.a = a }
    
    * Make it so that, with -fwarn-unused-matches, 
            f (C {..}) = x
      does not complain about the bindings introduced by the "..".
    
    * Make -XRecordWildCards implies -XDisambiguateRecordFields.
    
    * Overall refactoring of RnPat, which had become very crufty. 
      In particular, there is now a monad, CpsRn, private to RnPat,
      which deals with the cps-style plumbing.  This is why so many
      lines of RnPat have changed.
    
    * Refactor the treatment of renaming of record fields into two passes
    	- rnHsRecFields1, used both for patterns and expressions,
    	     which expands puns, wild-cards
      	- a local renamer in RnPat for fields in patterns
    	- a local renamer in RnExpr for fields in construction and update
      This make it all MUCH easier to understand
     
    * Improve documentation of record puns, wildcards, and disambiguation
    d64022dc