Skip to content
  • Adam Gundry's avatar
    Implement NoFieldSelectors extension (ghc-proposals 160) · 2521b041
    Adam Gundry authored and Marge Bot's avatar Marge Bot committed
    
    
    Fixes #5972. This adds an extension NoFieldSelectors to disable the generation
    of selector functions corresponding to record fields.  When this extension is
    enabled, record field selectors are not accessible as functions, but users are
    still able to use them for record construction, pattern matching and updates.
    See Note [NoFieldSelectors] in GHC.Rename.Env for details.
    
    Defining the same field multiple times requires the DuplicateRecordFields
    extension to be enabled, even when NoFieldSelectors is in use.
    
    Along the way, this fixes the use of non-imported DuplicateRecordFields in GHCi
    with -fimplicit-import-qualified (fixes #18729).
    
    Moreover, it extends DisambiguateRecordFields to ignore non-fields when looking
    up fields in record updates (fixes #18999), as described by
    Note [DisambiguateRecordFields for updates].
    
    Co-authored-by: default avatarSimon Hafner <hafnersimon@gmail.com>
    Co-authored-by: default avatarFumiaki Kinoshita <fumiexcel@gmail.com>
    2521b041