summaryrefslogtreecommitdiff
path: root/compiler/GHC/Parser.y
diff options
context:
space:
mode:
authorRyan Scott <ryan.gl.scott@gmail.com>2020-07-30 10:22:48 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-08-02 16:44:11 -0400
commit226417424b2b578fd3c5424588367cb24e7720eb (patch)
tree031e3f130324e1b24ee863bf1aaef471698ce2f7 /compiler/GHC/Parser.y
parente30fed6c6de1f881ce313900274294a793e42677 (diff)
downloadhaskell-226417424b2b578fd3c5424588367cb24e7720eb.tar.gz
Remove ConDeclGADTPrefixPs
This removes the `ConDeclGADTPrefixPs` per the discussion in #18517. Most of this patch simply removes code, although the code in the `rnConDecl` case for `ConDeclGADTPrefixPs` had to be moved around a bit: * The nested `forall`s check now lives in the `rnConDecl` case for `ConDeclGADT`. * The `LinearTypes`-specific code that used to live in the `rnConDecl` case for `ConDeclGADTPrefixPs` now lives in `GHC.Parser.PostProcess.mkGadtDecl`, which is now monadic so that it can check if `-XLinearTypes` is enabled. Fixes #18157.
Diffstat (limited to 'compiler/GHC/Parser.y')
-rw-r--r--compiler/GHC/Parser.y5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index f1ddd6b961..2afed04506 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -2176,8 +2176,9 @@ gadt_constr :: { LConDecl GhcPs }
-- see Note [Difference in parsing GADT and data constructors]
-- Returns a list because of: C,D :: ty
: optSemi con_list '::' sigtype
- {% ams (sLL $2 $> (mkGadtDecl (unLoc $2) $4))
- [mu AnnDcolon $3] }
+ {% do { decl <- mkGadtDecl (unLoc $2) $4
+ ; ams (sLL $2 $> decl)
+ [mu AnnDcolon $3] } }
{- Note [Difference in parsing GADT and data constructors]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~