diff options
author | Sebastian Graf <sgraf1337@gmail.com> | 2019-09-23 10:34:01 +0000 |
---|---|---|
committer | Sebastian Graf <sgraf1337@gmail.com> | 2019-09-23 13:02:31 +0000 |
commit | 875f4974f4bb1a184c819427ece042af68293081 (patch) | |
tree | 301b2aeb4e6a0ab01d7bd9241e321ea51c4245e6 /testsuite/tests/th/TH_repPatSig.hs | |
parent | ded96fb3ad540e0145483574b4a09bdcbe964c88 (diff) | |
download | haskell-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_repPatSig.hs')
0 files changed, 0 insertions, 0 deletions