aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuite Stegeman <stegeman@gmail.com>2014-08-22 20:11:16 +0200
committerLuite Stegeman <stegeman@gmail.com>2014-08-22 20:46:51 +0200
commit61c5729cb91ea66aa55bf0941717e526e7fde68d (patch)
tree6fc29330cc3f0da6ec5b7bb23ecb2c3e21434e29
parenta18e080534a2778f37cb8ff9d501959fe6cc7acd (diff)
ghc 7.8.2 compatibility
-rw-r--r--.travis.yml1
-rw-r--r--haddock-api/haddock-api.cabal2
-rw-r--r--src/Haddock/Convert.hs11
-rw-r--r--src/Haddock/Interface/Create.hs10
4 files changed, 21 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml
index 98720920..1b2fb90a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
language: haskell
env:
+ - GHCVER=7.8.2
- GHCVER=7.8.3
before_install:
diff --git a/haddock-api/haddock-api.cabal b/haddock-api/haddock-api.cabal
index 71bf11f9..171412dc 100644
--- a/haddock-api/haddock-api.cabal
+++ b/haddock-api/haddock-api.cabal
@@ -45,7 +45,7 @@ library
, array
, xhtml >= 3000.2 && < 3000.3
, Cabal >= 1.10
- , ghc == 7.8.3
+ , ghc >= 7.8.2 && < 7.8.4
, ghc-paths
, haddock-library == 1.1.0.*
diff --git a/src/Haddock/Convert.hs b/src/Haddock/Convert.hs
index 405bf204..73ff3f1a 100644
--- a/src/Haddock/Convert.hs
+++ b/src/Haddock/Convert.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE PatternGuards #-}
+{-# LANGUAGE CPP, PatternGuards #-}
-----------------------------------------------------------------------------
-- |
-- Module : Haddock.Convert
@@ -94,10 +94,19 @@ tyThingToLHsDecl t = noLoc $ case t of
(synifyType ImplicitizeForAll (dataConUserType dc)))
AConLike (PatSynCon ps) ->
+#if MIN_VERSION_ghc(7,8,3)
let (_, _, req_theta, prov_theta, _, res_ty) = patSynSig ps
+#else
+ let (_, _, (req_theta, prov_theta)) = patSynSig ps
+#endif
in SigD $ PatSynSig (synifyName ps)
+#if MIN_VERSION_ghc(7,8,3)
(fmap (synifyType WithinType) (patSynTyDetails ps))
(synifyType WithinType res_ty)
+#else
+ (fmap (synifyType WithinType) (patSynTyDetails ps))
+ (synifyType WithinType (patSynType ps))
+#endif
(synifyCtx req_theta)
(synifyCtx prov_theta)
diff --git a/src/Haddock/Interface/Create.hs b/src/Haddock/Interface/Create.hs
index cf7ed841..b66773ae 100644
--- a/src/Haddock/Interface/Create.hs
+++ b/src/Haddock/Interface/Create.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TupleSections, BangPatterns, LambdaCase #-}
+{-# LANGUAGE CPP, TupleSections, BangPatterns, LambdaCase #-}
{-# OPTIONS_GHC -Wwarn #-}
-----------------------------------------------------------------------------
-- |
@@ -366,7 +366,11 @@ classDecls class_ = filterDecls . collectDocs . sortByLoc $ decls
where
decls = docs ++ defs ++ sigs ++ ats
docs = mkDecls tcdDocs DocD class_
+#if MIN_VERSION_ghc(7,8,3)
defs = mkDecls (bagToList . tcdMeths) ValD class_
+#else
+ defs = mkDecls (map snd . bagToList . tcdMeths) ValD class_
+#endif
sigs = mkDecls tcdSigs SigD class_
ats = mkDecls tcdATs (TyClD . FamDecl) class_
@@ -392,7 +396,11 @@ ungroup group_ =
mkDecls hs_docs DocD group_ ++
mkDecls hs_instds InstD group_ ++
mkDecls (typesigs . hs_valds) SigD group_ ++
+#if MIN_VERSION_ghc(7,8,3)
mkDecls (valbinds . hs_valds) ValD group_
+#else
+ mkDecls (map snd . valbinds . hs_valds) ValD group_
+#endif
where
typesigs (ValBindsOut _ sigs) = filter isVanillaLSig sigs
typesigs _ = error "expected ValBindsOut"