summaryrefslogtreecommitdiff
path: root/testsuite/tests/th/TH_Roles3.hs
diff options
context:
space:
mode:
authorSebastian Graf <sgraf1337@gmail.com>2019-09-23 10:34:01 +0000
committerSebastian Graf <sgraf1337@gmail.com>2019-09-23 13:02:31 +0000
commit875f4974f4bb1a184c819427ece042af68293081 (patch)
tree301b2aeb4e6a0ab01d7bd9241e321ea51c4245e6 /testsuite/tests/th/TH_Roles3.hs
parentded96fb3ad540e0145483574b4a09bdcbe964c88 (diff)
downloadhaskell-wip/parser-less-dup.tar.gz
Fix some duplication in the parserwip/parser-less-dup
D3673 experienced reduce/reduce conflicts when trying to use opt_instance for associated data families. That was probably because the author tried to use it for Haskell98-syntax without also applying it to GADT-syntax, which actually leads to a reduce/reduce conflict. Consider the following state: ``` data . T = T data . T where T :: T ``` The parser must decide at this point whether or not to reduce an empty `opt_instance`. But doing so would also commit to either Haskell98 or GADT syntax! Good thing we also accept an optional "instance" for GADT syntax, so the `opt_instance` is there in both productions and there's no reduce/reduce conflict anymore. Also no need to inline `opt_instance`, how it used to be.
Diffstat (limited to 'testsuite/tests/th/TH_Roles3.hs')
0 files changed, 0 insertions, 0 deletions