summaryrefslogtreecommitdiff
path: root/compiler/parser/RdrHsSyn.hs
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-11-23 14:09:30 -0500
committerBen Gamari <ben@smart-cactus.org>2018-11-23 14:09:30 -0500
commit7e7e846b8c86dbf7ba98933a346442416d17c784 (patch)
tree2c02d92b352cc5707b893b15ed75cfe0b30aca8a /compiler/parser/RdrHsSyn.hs
parentf61f71c48e2f1aec8999b632bc5722391a42d036 (diff)
downloadhaskell-7e7e846b8c86dbf7ba98933a346442416d17c784.tar.gz
Revert "'DynFlag'-free version of 'mkParserFlags'"
This reverts commit 5aa29231ab7603537284eff5e4caff3a73dba6d2.
Diffstat (limited to 'compiler/parser/RdrHsSyn.hs')
-rw-r--r--compiler/parser/RdrHsSyn.hs22
1 files changed, 12 insertions, 10 deletions
diff --git a/compiler/parser/RdrHsSyn.hs b/compiler/parser/RdrHsSyn.hs
index b95b117419..1ac21c6c2d 100644
--- a/compiler/parser/RdrHsSyn.hs
+++ b/compiler/parser/RdrHsSyn.hs
@@ -107,6 +107,7 @@ import Maybes
import Util
import ApiAnnotation
import Data.List
+import qualified GHC.LanguageExtensions as LangExt
import DynFlags ( WarningFlag(..) )
import Control.Monad
@@ -891,8 +892,8 @@ checkRecordSyntax lr@(L loc r)
checkEmptyGADTs :: Located ([AddAnn], [LConDecl GhcPs])
-> P (Located ([AddAnn], [LConDecl GhcPs]))
checkEmptyGADTs gadts@(L span (_, [])) -- Empty GADT declaration.
- = do gadtSyntax <- extension gadtSyntaxEnabled -- GADTs implies GADTSyntax
- if gadtSyntax
+ = do opts <- fmap options getPState
+ if LangExt.GADTSyntax `extopt` opts -- GADTs implies GADTSyntax
then return gadts
else parseErrorSDoc span $ vcat
[ text "Illegal keyword 'where' in data declaration"
@@ -956,8 +957,8 @@ checkBlockArguments expr = case unLoc expr of
_ -> return ()
where
check element = do
- blockArguments <- extension blockArgumentsEnabled
- unless blockArguments $
+ pState <- getPState
+ unless (extopt LangExt.BlockArguments (options pState)) $
parseErrorSDoc (getLoc expr) $
text "Unexpected " <> text element <> text " in function application:"
$$ nest 4 (ppr expr)
@@ -1042,7 +1043,8 @@ checkPat msg loc e _
checkAPat :: SDoc -> SrcSpan -> HsExpr GhcPs -> P (Pat GhcPs)
checkAPat msg loc e0 = do
- nPlusKPatterns <- extension nPlusKPatternsEnabled
+ pState <- getPState
+ let opts = options pState
case e0 of
EWildPat _ -> return (WildPat noExt)
HsVar _ x -> return (VarPat noExt x)
@@ -1076,7 +1078,7 @@ checkAPat msg loc e0 = do
-- n+k patterns
OpApp _ (L nloc (HsVar _ (L _ n))) (L _ (HsVar _ (L _ plus)))
(L lloc (HsOverLit _ lit@(OverLit {ol_val = HsIntegral {}})))
- | nPlusKPatterns && (plus == plus_RDR)
+ | extopt LangExt.NPlusKPatterns opts && (plus == plus_RDR)
-> return (mkNPlusKPat (L nloc n) (L lloc lit))
OpApp _ l (L cl (HsVar _ (L _ c))) r
@@ -1239,8 +1241,8 @@ checkDoAndIfThenElse :: LHsExpr GhcPs
-> P ()
checkDoAndIfThenElse guardExpr semiThen thenExpr semiElse elseExpr
| semiThen || semiElse
- = do doAndIfThenElse <- extension doAndIfThenElseEnabled
- unless doAndIfThenElse $ do
+ = do pState <- getPState
+ unless (extopt LangExt.DoAndIfThenElse (options pState)) $ do
parseErrorSDoc (combineLocs guardExpr elseExpr)
(text "Unexpected semi-colons in conditional:"
$$ nest 4 expr
@@ -1747,8 +1749,8 @@ mergeDataCon all_xs =
checkMonadComp :: P (HsStmtContext Name)
checkMonadComp = do
- monadComprehensions <- extension monadComprehensionsEnabled
- return $ if monadComprehensions
+ pState <- getPState
+ return $ if extopt LangExt.MonadComprehensions (options pState)
then MonadComp
else ListComp