haskell-src-meta 0.8.12 → 0.8.13
raw patch · 5 files changed
+39/−10 lines, 5 filesdep ~template-haskellPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: template-haskell
API changes (from Hackage documentation)
+ Language.Haskell.Meta.Syntax.Translate: toTyVarsVis :: ToTyVars a => a -> [TyVarBndr_ ()]
+ Language.Haskell.Meta.Utils: type TyVarBndrVis = TyVarBndrUnit
- Language.Haskell.Meta.Utils: decTyVars :: Dec -> [TyVarBndr_ ()]
+ Language.Haskell.Meta.Utils: decTyVars :: Dec -> [TyVarBndrVis]
Files
- ChangeLog +3/−0
- haskell-src-meta.cabal +3/−3
- src/Language/Haskell/Meta/Extensions.hs +7/−0
- src/Language/Haskell/Meta/Syntax/Translate.hs +18/−6
- src/Language/Haskell/Meta/Utils.hs +8/−1
ChangeLog view
@@ -1,3 +1,6 @@+0.8.13+- Support for GHC 9.8 (by Vladislav Zavialov)+ 0.8.12 - Support for GHC 9.6 (by Troels Henriksen)
haskell-src-meta.cabal view
@@ -1,5 +1,5 @@ name: haskell-src-meta-version: 0.8.12+version: 0.8.13 cabal-version: >= 1.10 build-type: Simple license: BSD3@@ -9,7 +9,7 @@ copyright: (c) Matt Morrow maintainer: danburton.email@gmail.com bug-reports: https://github.com/haskell-party/haskell-src-meta/issues-tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.2, GHC == 9.4.1, GHC == 9.6.1+tested-with: GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.2, GHC == 9.2.2, GHC == 9.4.1, GHC == 9.6.1, GHC == 9.8.1 synopsis: Parse source to template-haskell abstract syntax. description: The translation from haskell-src-exts abstract syntax to template-haskell abstract syntax isn't 100% complete yet.@@ -22,7 +22,7 @@ haskell-src-exts >= 1.21 && < 1.24, pretty >= 1.0 && < 1.2, syb >= 0.1 && < 0.8,- template-haskell >= 2.12 && < 2.21,+ template-haskell >= 2.12 && < 2.22, th-orphans >= 0.12 && < 0.14 hs-source-dirs: src
src/Language/Haskell/Meta/Extensions.hs view
@@ -360,6 +360,13 @@ TH.TypeData -> Nothing #endif +-- 2.21.0 ---------------------------------------++#if MIN_VERSION_template_haskell(2,21,0)+ TH.TypeAbstractions -> Nothing+ TH.ExtendedLiterals -> Nothing+#endif+ -- NB: when adding a case here, you may also need to update `toExtension`
src/Language/Haskell/Meta/Syntax/Translate.hs view
@@ -395,6 +395,18 @@ toTyVarSpec = id #endif +-- TODO (int-index): Use MIN_VERSION_template_haskell(2,21,0)+#if __GLASGOW_HASKELL__ >= 907+toTyVarsVis :: ToTyVars a => a -> [TH.TyVarBndrVis]+toTyVarsVis = map toTyVarVis . toTyVars+ where+ toTyVarVis (TH.KindedTV n () k) = TH.KindedTV n TH.BndrReq k+ toTyVarVis (TH.PlainTV n ()) = TH.PlainTV n TH.BndrReq+#else+toTyVarsVis :: ToTyVars a => a -> [TyVarBndr_ ()]+toTyVarsVis = toTyVars+#endif+ instance ToType (Exts.Type l) where toType (Exts.TyForall _ tvbM cxt t) = TH.ForallT (maybe [] (fmap (toTyVarSpec . toTyVar)) tvbM) (toCxt cxt) (toType t) toType (Exts.TyFun _ a b) = toType a .->. toType b@@ -530,13 +542,13 @@ instance ToDec (Exts.Decl l) where toDec (Exts.TypeDecl _ h t)- = TH.TySynD (toName h) (toTyVars h) (toType t)+ = TH.TySynD (toName h) (toTyVarsVis h) (toType t) toDec a@(Exts.DataDecl _ dOrN cxt h qcds qns) = case dOrN of Exts.DataType _ -> TH.DataD (toCxt cxt) (toName h)- (toTyVars h)+ (toTyVarsVis h) Nothing (fmap qualConDeclToCon qcds) (toDerivClauses qns)@@ -546,7 +558,7 @@ "wrong number of constructors") a in TH.NewtypeD (toCxt cxt) (toName h)- (toTyVars h)+ (toTyVarsVis h) Nothing (qualConDeclToCon qcd) (toDerivClauses qns)@@ -567,11 +579,11 @@ toDec (Exts.TypeFamDecl _ h sig inj) = TH.OpenTypeFamilyD $ TH.TypeFamilyHead (toName h)- (toTyVars h)+ (toTyVarsVis h) (maybe TH.NoSig TH.KindSig . toMaybeKind $ sig) (fmap toInjectivityAnn inj) toDec (Exts.DataFamDecl _ _ h sig)- = TH.DataFamilyD (toName h) (toTyVars h) (toMaybeKind sig)+ = TH.DataFamilyD (toName h) (toTyVarsVis h) (toMaybeKind sig) toDec _a@(Exts.FunBind _ mtchs) = hsMatchesToFunD mtchs toDec (Exts.PatBind _ p rhs bnds) = TH.ValD (toPat p)@@ -593,7 +605,7 @@ toDec (Exts.ClassDecl _ cxt h fds decls) = TH.ClassD (toCxt cxt) (toName h)- (toTyVars h)+ (toTyVarsVis h) (fmap toFunDep fds) (toDecs decls) where
src/Language/Haskell/Meta/Utils.hs view
@@ -40,8 +40,15 @@ decCons (NewtypeD _ _ _ _ con _) = [con] decCons _ = [] +#if !MIN_VERSION_template_haskell(2,21,0)+#if __GLASGOW_HASKELL__ < 900+type TyVarBndrVis = TyVarBndr_ ()+#else+type TyVarBndrVis = TyVarBndrUnit+#endif+#endif -decTyVars :: Dec -> [TyVarBndr_ ()]+decTyVars :: Dec -> [TyVarBndrVis] decTyVars (DataD _ _ ns _ _ _) = ns decTyVars (NewtypeD _ _ ns _ _ _) = ns decTyVars (TySynD _ ns _) = ns