[GHC] #3306: Improve syntax for GADT + records

GHC ghc-devs at haskell.org
Mon Aug 3 16:20:22 UTC 2015


#3306: Improve syntax for GADT + records
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                   Owner:  simonpj
            Type:  feature request   |                  Status:  closed
        Priority:  normal            |               Milestone:  6.12.1
       Component:  Compiler          |                 Version:  6.10.2
      Resolution:  fixed             |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"30c981e135033840fe1b4bcab697b412369739d7/ghc"
 30c981e1/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="30c981e135033840fe1b4bcab697b412369739d7"
 Removed deprecated syntax for GADT constuctors.

 Old syntax was deprecated 6 years ago in this commit
 432b9c9322181a3644083e3c19b7e240d90659e7 by simonpj:"New syntax for
 GADT-style record declarations, and associated refactoring" discussed
 in Trac #3306.

 This patch removes 2 reduce/reduce conflicts in parser. Conflicting
 productions were:

 ```
     gadt_constr -> con_list '::' sigtype
     gadt_constr -> oqtycon '{' fielddecls '}' '::' sigtype
 ```

 Recursive inlining of `con_list` and `oqtycon` helped reveal the
 conflict:

 ```
     gadt_constr -> '(' CONSYM ')' '::' sigtype
     gadt_constr -> '(' CONSYM ')' '{' fielddecls '}' '::' sigtype
 ```

 between two types of GADT constructors (second form stands for
 deprecated syntax).

 Test Plan: `make fasttest`, one breakage TEST="records-fail" (parse
 error instead of typecheck error due to removal of deprecated syntax).
 Updated test.

 Reviewers: simonmar, bgamari, austin, simonpj

 Reviewed By: simonpj

 Subscribers: thomie, mpickering, trofi

 Differential Revision: https://phabricator.haskell.org/D1118

 GHC Trac Issues: #3306
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/3306#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list