Skip to content
  • Ryan Scott's avatar
    Special-case record fields ending with hash when deriving Read · d5577f44
    Ryan Scott authored
    Summary:
    In commit dbd81f7e, a
    regression was inadvertently introduced which caused derived `Read`
    instances for record data types with fields ending in a `#` symbol
    (using `MagicHash`) would no longer parse on valid output. This
    is ultimately due to the same reasons as #5041, as we cannot parse
    a field name like `foo#` as a single identifier. We fix this issue
    by employing the same workaround as in #5041: first parse the
    identifier name `foo`, then then symbol `#`.
    
    This is accomplished by the new `readFieldHash` function in
    `GHC.Read`. This will likely warrant a `base-4.11.1.0` release.
    
    Test Plan: make test TEST=T14918
    
    Reviewers: tdammers, hvr, bgamari
    
    Reviewed By: bgamari
    
    Subscribers: rwbarton, thomie, carter
    
    GHC Trac Issues: #14918
    
    Differential Revision: https://phabricator.haskell.org/D4502
    d5577f44