Removed deprecated syntax for GADT constuctors.
authorUlya Trofimovich <skvadrik@gmail.com>
Mon, 3 Aug 2015 15:45:56 +0000 (17:45 +0200)
committerBen Gamari <ben@smart-cactus.org>
Mon, 3 Aug 2015 15:45:57 +0000 (17:45 +0200)
commit30c981e135033840fe1b4bcab697b412369739d7
treeb377c147ff3ab4d855a42774648a711071ab7292
parent64b6733e217f32feb8c4872096749c6f417d0c39
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
compiler/parser/Parser.y
compiler/parser/RdrHsSyn.hs
testsuite/tests/gadt/records-fail1.hs
testsuite/tests/gadt/records-fail1.stderr