Renamer refactor
This branch significantly refactors key renamer datastructures (Avail
, GlobalRdrElt
) in order to treat DuplicateRecordFields
in a more robust way. In particular it allows the extension to be used with pattern synonyms (fixes #11228 (closed), fixes #17176 (closed)), resolves a variety of corner case bugs (fixes #11959 (closed), fixes #14630 (closed), fixes #16745 (closed), fixes #18452 (closed)), and corrects some cases where mangled record selector names could be printed instead of field labels (e.g. with -Wpartial-fields
or hole fits, see new tests). All this should hopefully be helpful for NoFieldSelectors
when it lands see (!4017 (closed)).
Status: in review