diff options
author | Adam Gundry <adam@well-typed.com> | 2015-12-11 22:43:26 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-12-11 22:44:36 +0100 |
commit | 6e56ac58a6905197412d58e32792a04a63b94d7e (patch) | |
tree | a204c6ffc3b72c35ad4b44292acdd7a4994d77b0 /testsuite/tests/th/T10796a.hs | |
parent | ceaf0f4683a3e0ba85ae420956cfc394824e9a38 (diff) | |
download | haskell-6e56ac58a6905197412d58e32792a04a63b94d7e.tar.gz |
Fix infix record field fixity (#11167 and #11173).
This extends D1585 with proper support for infix duplicate record
fields. In particular, it is now possible to declare record fields as
infix in a module for which `DuplicateRecordFields` is enabled, fixity
is looked up correctly and a readable (although unpleasant) error
message is generated if multiple fields with different fixities are in
scope.
As a bonus, `DEPRECATED` and `WARNING` pragmas now work for
duplicate record fields. The pragma applies to all fields with the
given label.
In addition, a couple of minor `DuplicateRecordFields` bugs, which were
pinpointed by the `T11167_ambig` test case, are fixed by this patch:
- Ambiguous infix fields can now be disambiguated by putting a type
signature on the first argument
- Polymorphic type constructor signatures (such as `ContT () IO a` in
`T11167_ambig`) now work for disambiguation
Parts of this patch are from D1585 authored by @KaneTW.
Test Plan: New tests added.
Reviewers: KaneTW, bgamari, austin
Reviewed By: bgamari
Subscribers: thomie, hvr
Differential Revision: https://phabricator.haskell.org/D1600
GHC Trac Issues: #11167, #11173
Diffstat (limited to 'testsuite/tests/th/T10796a.hs')
0 files changed, 0 insertions, 0 deletions