summaryrefslogtreecommitdiff
path: root/compiler/GHC
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC')
-rw-r--r--compiler/GHC/Driver/Flags.hs2
-rw-r--r--compiler/GHC/Driver/Session.hs53
2 files changed, 53 insertions, 2 deletions
diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs
index 3a31e55ff1..2b86c0f266 100644
--- a/compiler/GHC/Driver/Flags.hs
+++ b/compiler/GHC/Driver/Flags.hs
@@ -534,7 +534,7 @@ instance ToJson WarnReason where
json (ErrReason (Just wf)) = JSString (show wf)
-data Language = Haskell98 | Haskell2010
+data Language = Haskell98 | Haskell2010 | GHC2021
deriving (Eq, Enum, Show, Bounded)
instance Outputable Language where
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index 8b7ddd321d..b4218d29ba 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -1351,6 +1351,56 @@ languageExtensions (Just Haskell2010)
LangExt.FieldSelectors,
LangExt.RelaxedPolyRec]
+languageExtensions (Just GHC2021)
+ = [LangExt.ImplicitPrelude,
+ -- See Note [When is StarIsType enabled]
+ LangExt.StarIsType,
+ LangExt.MonomorphismRestriction,
+ LangExt.TraditionalRecordSyntax,
+ LangExt.EmptyDataDecls,
+ LangExt.ForeignFunctionInterface,
+ LangExt.PatternGuards,
+ LangExt.DoAndIfThenElse,
+ LangExt.FieldSelectors,
+ LangExt.RelaxedPolyRec,
+ -- Now the new extensions (not in Haskell2010)
+ LangExt.BangPatterns,
+ LangExt.BinaryLiterals,
+ LangExt.ConstrainedClassMethods,
+ LangExt.ConstraintKinds,
+ LangExt.DeriveDataTypeable,
+ LangExt.DeriveFoldable,
+ LangExt.DeriveFunctor,
+ LangExt.DeriveGeneric,
+ LangExt.DeriveLift,
+ LangExt.DeriveTraversable,
+ LangExt.EmptyCase,
+ LangExt.EmptyDataDeriving,
+ LangExt.ExistentialQuantification,
+ LangExt.ExplicitForAll,
+ LangExt.FlexibleContexts,
+ LangExt.FlexibleInstances,
+ LangExt.GADTSyntax,
+ LangExt.GeneralizedNewtypeDeriving,
+ LangExt.HexFloatLiterals,
+ LangExt.ImportQualifiedPost,
+ LangExt.InstanceSigs,
+ LangExt.KindSignatures,
+ LangExt.MultiParamTypeClasses,
+ LangExt.RecordPuns,
+ LangExt.NamedWildCards,
+ LangExt.NumericUnderscores,
+ LangExt.PolyKinds,
+ LangExt.PostfixOperators,
+ LangExt.RankNTypes,
+ LangExt.ScopedTypeVariables,
+ LangExt.StandaloneDeriving,
+ LangExt.StandaloneKindSignatures,
+ LangExt.TupleSections,
+ LangExt.TypeApplications,
+ LangExt.TypeOperators,
+ LangExt.TypeSynonymInstances]
+
hasPprDebug :: DynFlags -> Bool
hasPprDebug = dopt Opt_D_ppr_debug
@@ -3401,7 +3451,8 @@ supportedLanguagesAndExtensions arch_os =
languageFlagsDeps :: [(Deprecation, FlagSpec Language)]
languageFlagsDeps = [
flagSpec "Haskell98" Haskell98,
- flagSpec "Haskell2010" Haskell2010
+ flagSpec "Haskell2010" Haskell2010,
+ flagSpec "GHC2021" GHC2021
]
-- | These -X<blah> flags cannot be reversed with -XNo<blah>