diff options
author | Ben Gamari <ben@smart-cactus.org> | 2018-11-23 14:09:30 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2018-11-23 14:09:30 -0500 |
commit | 7e7e846b8c86dbf7ba98933a346442416d17c784 (patch) | |
tree | 2c02d92b352cc5707b893b15ed75cfe0b30aca8a /compiler/parser/RdrHsSyn.hs | |
parent | f61f71c48e2f1aec8999b632bc5722391a42d036 (diff) | |
download | haskell-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.hs | 22 |
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 |