Skip to content
  • Adam Gundry's avatar
    Reify DuplicateRecordFields by label, rather than by selector · 4b161c93
    Adam Gundry authored and Ben Gamari's avatar Ben Gamari committed
    See `Note [Reifying field labels]` in `TcSplice`. This makes
    typical uses of TH work better with `DuplicateRecordFields`.
    If `reify` is called on the `Name` of a field label produced by
    the output of a previous `reify`, and there are multiple  fields
    with that label defined in the same module, it may fail with
    an ambiguity error.
    
    Test Plan:
    Added tests, and manually tested that this makes
    Aeson's `deriveJSON` avoid the `$sel:` prefixes.
    
    Reviewers: simonpj, goldfire, austin, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1586
    
    GHC Trac Issues: #11103
    4b161c93