[arch-commits] Commit in haskell-brittany/repos/community-x86_64 (3 files)
Felix Yan
felixonmars at archlinux.org
Tue Dec 15 17:51:15 UTC 2020
Date: Tuesday, December 15, 2020 @ 17:51:15
Author: felixonmars
Revision: 776011
archrelease: copy trunk to community-x86_64
Added:
haskell-brittany/repos/community-x86_64/PKGBUILD
(from rev 776010, haskell-brittany/trunk/PKGBUILD)
Deleted:
haskell-brittany/repos/community-x86_64/PKGBUILD
haskell-brittany/repos/community-x86_64/ghc-8.10.patch
----------------+
PKGBUILD | 115 -
ghc-8.10.patch | 3558 -------------------------------------------------------
2 files changed, 56 insertions(+), 3617 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2020-12-15 17:51:04 UTC (rev 776010)
+++ PKGBUILD 2020-12-15 17:51:15 UTC (rev 776011)
@@ -1,59 +0,0 @@
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-
-_hkgname=brittany
-pkgname=haskell-brittany
-pkgver=0.12.2.0
-pkgrel=6
-pkgdesc="Haskell source code formatter"
-url="https://github.com/lspitzner/brittany/"
-license=("AGPL")
-arch=('x86_64')
-depends=('ghc-libs' 'haskell-aeson' 'haskell-butcher' 'haskell-cmdargs' 'haskell-czipwith'
- 'haskell-data-tree-print' 'haskell-extra' 'haskell-ghc-exactprint' 'haskell-ghc-paths'
- 'haskell-monad-memo' 'haskell-multistate' 'haskell-random' 'haskell-safe'
- 'haskell-strict' 'haskell-syb' 'haskell-uniplate' 'haskell-unsafe' 'haskell-yaml')
-makedepends=('ghc' 'uusi' 'haskell-hspec')
-source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz"
- ghc-8.10.patch)
-sha256sums=('f437edc73106185213abdbfdc3d34a2f449c341cebd738b51ed39d683ca4670f'
- 'e0b4617fe2cb67f4ab035fe0ac333d506c4acfd7451b134ec76ee1eca6ee2b64')
-
-prepare() {
- cd $_hkgname-$pkgver
- patch -p1 -i ../ghc-8.10.patch
- uusi -r semigroups:Cabal -u random $_hkgname.cabal
-
- # Hack to use Cabal's compatibility layer of semigroups
- sed -i 's/import Data.Semigroup.Generic/import Distribution.Compat.Semigroup/' src/Language/Haskell/Brittany/Internal/Config/Types.hs
-}
-
-build() {
- cd $_hkgname-$pkgver
-
- runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
- --prefix=/usr --docdir=/usr/share/doc/$pkgname --enable-tests \
- --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
- --ghc-option=-optl-Wl\,-z\,relro\,-z\,now \
- --ghc-option='-pie'
-
- runhaskell Setup build $MAKEFLAGS
- runhaskell Setup register --gen-script
- runhaskell Setup unregister --gen-script
- sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
- sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
-}
-
-check() {
- cd $_hkgname-$pkgver
- runhaskell Setup test
-}
-
-package() {
- cd $_hkgname-$pkgver
-
- install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh
- install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh
- runhaskell Setup copy --destdir="$pkgdir"
- install -D -m644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
- rm -f "$pkgdir"/usr/share/doc/$pkgname/LICENSE
-}
Copied: haskell-brittany/repos/community-x86_64/PKGBUILD (from rev 776010, haskell-brittany/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2020-12-15 17:51:15 UTC (rev 776011)
@@ -0,0 +1,56 @@
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+
+_hkgname=brittany
+pkgname=haskell-brittany
+pkgver=0.13.0.0
+pkgrel=1
+pkgdesc="Haskell source code formatter"
+url="https://github.com/lspitzner/brittany/"
+license=("AGPL")
+arch=('x86_64')
+depends=('ghc-libs' 'haskell-aeson' 'haskell-butcher' 'haskell-cmdargs' 'haskell-czipwith'
+ 'haskell-data-tree-print' 'haskell-extra' 'haskell-ghc-exactprint' 'haskell-ghc-paths'
+ 'haskell-monad-memo' 'haskell-multistate' 'haskell-random' 'haskell-safe'
+ 'haskell-strict' 'haskell-syb' 'haskell-uniplate' 'haskell-unsafe' 'haskell-yaml')
+makedepends=('ghc' 'uusi' 'haskell-hspec')
+source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz")
+sha512sums=('8ea2f0b323bb8005797ca7365dc0bfe0aae5f69e44d1f445bd28f6124a9dba6698c3b05f5886b2723166d462d76b3a8785a4bcd592892e240a24e2df93c72e69')
+
+prepare() {
+ cd $_hkgname-$pkgver
+ uusi -r semigroups:Cabal -u random $_hkgname.cabal
+
+ # Hack to use Cabal's compatibility layer of semigroups
+ sed -i 's/import Data.Semigroup.Generic/import Distribution.Compat.Semigroup/' src/Language/Haskell/Brittany/Internal/Config/Types.hs
+}
+
+build() {
+ cd $_hkgname-$pkgver
+
+ runhaskell Setup configure -O --enable-shared --enable-executable-dynamic --disable-library-vanilla \
+ --prefix=/usr --docdir=/usr/share/doc/$pkgname --enable-tests \
+ --dynlibdir=/usr/lib --libsubdir=\$compiler/site-local/\$pkgid \
+ --ghc-option=-optl-Wl\,-z\,relro\,-z\,now \
+ --ghc-option='-pie'
+
+ runhaskell Setup build $MAKEFLAGS
+ runhaskell Setup register --gen-script
+ runhaskell Setup unregister --gen-script
+ sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
+ sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+check() {
+ cd $_hkgname-$pkgver
+ runhaskell Setup test
+}
+
+package() {
+ cd $_hkgname-$pkgver
+
+ install -D -m744 register.sh "$pkgdir"/usr/share/haskell/register/$pkgname.sh
+ install -D -m744 unregister.sh "$pkgdir"/usr/share/haskell/unregister/$pkgname.sh
+ runhaskell Setup copy --destdir="$pkgdir"
+ install -D -m644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+ rm -f "$pkgdir"/usr/share/doc/$pkgname/LICENSE
+}
Deleted: ghc-8.10.patch
===================================================================
--- ghc-8.10.patch 2020-12-15 17:51:04 UTC (rev 776010)
+++ ghc-8.10.patch 2020-12-15 17:51:15 UTC (rev 776011)
@@ -1,3558 +0,0 @@
-From 17d07edb0a687053fbeb39e0bdf07415ee35a278 Mon Sep 17 00:00:00 2001
-From: jneira <atreyu.bbb at gmail.com>
-Date: Wed, 13 May 2020 10:44:37 +0200
-Subject: [PATCH 02/17] Relax upper bounds to include updated packages
-
----
- brittany.cabal | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/brittany.cabal b/brittany.cabal
-index 818e818..590373f 100644
---- a/brittany.cabal
-+++ b/brittany.cabal
-@@ -91,10 +91,10 @@ library {
- -fno-warn-redundant-constraints
- }
- build-depends:
-- { base >=4.9 && <4.14
-- , ghc >=8.0.1 && <8.9
-+ { base >=4.9 && <4.15
-+ , ghc >=8.0.1 && <8.11
- , ghc-paths >=0.1.0.9 && <0.2
-- , ghc-exactprint >=0.5.8 && <0.6.3
-+ , ghc-exactprint >=0.5.8 && <0.6.4
- , transformers >=0.5.2.0 && <0.6
- , containers >=0.5.7.1 && <0.7
- , mtl >=2.2.1 && <2.3
-@@ -118,7 +118,7 @@ library {
- , semigroups >=0.18.2 && <0.20
- , cmdargs >=0.10.14 && <0.11
- , czipwith >=1.0.1.0 && <1.1
-- , ghc-boot-th >=8.0.1 && <8.9
-+ , ghc-boot-th >=8.0.1 && <8.11
- , filepath >=1.4.1.0 && <1.5
- , random >= 1.1 && <1.2
- }
-
-From b69a8f983c070564b41b6fdec160af6d8aff730b Mon Sep 17 00:00:00 2001
-From: jneira <atreyu.bbb at gmail.com>
-Date: Wed, 13 May 2020 10:45:14 +0200
-Subject: [PATCH 03/17] Adapt to new GHC modules organization
-
----
- .../Haskell/Brittany/Internal/ExactPrintUtils.hs | 6 ++++++
- src/Language/Haskell/Brittany/Internal/Prelude.hs | 8 ++++++--
- src/Language/Haskell/Brittany/Internal/Utils.hs | 15 ++++++++++++---
- 3 files changed, 24 insertions(+), 5 deletions(-)
-
-diff --git a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-index 0273d85..5dcf840 100644
---- a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-@@ -33,7 +33,13 @@ import qualified Lexer as GHC
- import qualified StringBuffer as GHC
- import qualified Outputable as GHC
- import qualified CmdLineParser as GHC
-+
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
-+
- import SrcLoc ( SrcSpan, Located )
-
-
-diff --git a/src/Language/Haskell/Brittany/Internal/Prelude.hs b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-index 453f076..a0757d8 100644
---- a/src/Language/Haskell/Brittany/Internal/Prelude.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-@@ -13,9 +13,13 @@ where
-
- -- rather project-specific stuff:
- ---------------------------------
--#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs.Extension as E ( GhcPs )
-+#else
-+# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- import HsExtension as E ( GhcPs )
--#endif
-+# endif /* ghc-8.4 */
-+#endif /* ghc-8.10.1 */
-
- import RdrName as E ( RdrName )
- #if MIN_VERSION_ghc(8,8,0)
-diff --git a/src/Language/Haskell/Brittany/Internal/Utils.hs b/src/Language/Haskell/Brittany/Internal/Utils.hs
-index 435ad96..9edcb7e 100644
---- a/src/Language/Haskell/Brittany/Internal/Utils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Utils.hs
-@@ -59,9 +59,13 @@ import Language.Haskell.Brittany.Internal.Config.Types
- import Language.Haskell.Brittany.Internal.Types
-
- import qualified Data.Generics.Uniplate.Direct as Uniplate
--#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import qualified GHC.Hs.Extension as HsExtension
-+#else
-+# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- import qualified HsExtension
--#endif
-+# endif /* ghc-8.4 */
-+#endif /* ghc-8.10.1 */
-
-
-
-@@ -299,6 +303,10 @@ lines' s = case break (== '\n') s of
- (s1, [_]) -> [s1, ""]
- (s1, (_:r)) -> s1 : lines' r
-
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+absurdExt :: HsExtension.NoExtField -> a
-+absurdExt = error "cannot construct NoExtField"
-+#else
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- -- | A method to dismiss NoExt patterns for total matches
- absurdExt :: HsExtension.NoExt -> a
-@@ -306,4 +314,5 @@ absurdExt = error "cannot construct NoExt"
- #else
- absurdExt :: ()
- absurdExt = ()
--#endif
-+#endif /* ghc-8.6 */
-+#endif /* ghc-8.10.1 */
-
-From adb642353d6c3166eea4f52dc3ba83382dcaef04 Mon Sep 17 00:00:00 2001
-From: Ximin Luo <infinity0 at pwned.gg>
-Date: Fri, 29 May 2020 23:26:51 +0100
-Subject: [PATCH 05/17] more GHC 8.10.1 fixes
-
----
- src/Language/Haskell/Brittany/Internal.hs | 9 +++++++
- .../Brittany/Internal/ExactPrintUtils.hs | 11 +++++++-
- .../Brittany/Internal/Layouters/DataDecl.hs | 4 +++
- .../Brittany/Internal/Layouters/Decl.hs | 15 ++++++++---
- .../Brittany/Internal/Layouters/Expr.hs | 25 ++++++++++++++++++-
- .../Brittany/Internal/Layouters/Expr.hs-boot | 4 +++
- .../Haskell/Brittany/Internal/Layouters/IE.hs | 7 +++++-
- .../Brittany/Internal/Layouters/Import.hs | 12 +++++++++
- .../Brittany/Internal/Layouters/Module.hs | 7 +++++-
- .../Brittany/Internal/Layouters/Pattern.hs | 12 +++++++++
- .../Brittany/Internal/Layouters/Stmt.hs | 4 +++
- .../Brittany/Internal/Layouters/Stmt.hs-boot | 4 +++
- .../Brittany/Internal/Layouters/Type.hs | 12 +++++++--
- .../Haskell/Brittany/Internal/Utils.hs | 10 +++-----
- 14 files changed, 121 insertions(+), 15 deletions(-)
-
-diff --git a/src/Language/Haskell/Brittany/Internal.hs b/src/Language/Haskell/Brittany/Internal.hs
-index 1d9266f..1fc3e12 100644
---- a/src/Language/Haskell/Brittany/Internal.hs
-+++ b/src/Language/Haskell/Brittany/Internal.hs
-@@ -61,7 +61,12 @@ import GHC ( Located
- )
- import RdrName ( RdrName(..) )
- import SrcLoc ( SrcSpan )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+import Bag
-+#else
- import HsSyn
-+#endif
- import qualified DynFlags as GHC
- import qualified GHC.LanguageExtensions.Type as GHC
-
-@@ -380,7 +385,11 @@ parsePrintModuleTests conf filename input = do
- let inputStr = Text.unpack input
- parseResult <- ExactPrint.Parsers.parseModuleFromString filename inputStr
- case parseResult of
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ Left err -> return $ Left $ "parsing error: " ++ show (bagToList (show <$> err))
-+#else
- Left (_ , s ) -> return $ Left $ "parsing error: " ++ s
-+#endif
- Right (anns, parsedModule) -> runExceptT $ do
- (inlineConf, perItemConf) <-
- case extractCommentConfigs anns (getTopLevelDeclNameMap parsedModule) of
-diff --git a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-index 5dcf840..6115f52 100644
---- a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-@@ -36,6 +36,7 @@ import qualified CmdLineParser as GHC
-
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- import GHC.Hs
-+import Bag
- #else
- import HsSyn
- #endif
-@@ -96,7 +97,11 @@ parseModuleWithCpp cpp opts args fp dynCheck =
- ++ show (warnings <&> warnExtractorCompat)
- x <- ExceptT.ExceptT $ liftIO $ dynCheck dflags2
- res <- lift $ ExactPrint.parseModuleApiAnnsWithCppInternal cpp dflags2 fp
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ either (\err -> ExceptT.throwE $ "transform error: " ++ show (bagToList (show <$> err)))
-+#else
- either (\(span, err) -> ExceptT.throwE $ show span ++ ": " ++ err)
-+#endif
- (\(a, m) -> pure (a, m, x))
- $ ExactPrint.postParseTransform res opts
-
-@@ -129,7 +134,11 @@ parseModuleFromString args fp dynCheck str =
- dynCheckRes <- ExceptT.ExceptT $ liftIO $ dynCheck dflags1
- let res = ExactPrint.parseModuleFromStringInternal dflags1 fp str
- case res of
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ Left err -> ExceptT.throwE $ "parse error: " ++ show (bagToList (show <$> err))
-+#else
- Left (span, err) -> ExceptT.throwE $ showOutputable span ++ ": " ++ err
-+#endif
- Right (a , m ) -> pure (a, m, dynCheckRes)
-
-
-@@ -193,7 +202,7 @@ commentAnnFixTransformGlob ast = do
- , ExactPrint.annsDP = assocs'
- }
- ExactPrint.modifyAnnsT $ \anns -> Map.insert annKey1 ann1' anns
--
-+
-
-
- commentAnnFixTransform :: GHC.ParsedSource -> ExactPrint.Transform ()
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-index 00453b3..4d2b93a 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-@@ -19,7 +19,11 @@ import Language.Haskell.Brittany.Internal.Config.Types
- import RdrName ( RdrName(..) )
- import GHC ( Located, runGhc, GenLocated(L), moduleNameString )
- import qualified GHC
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import BasicTypes
- import Language.Haskell.GHC.ExactPrint.Types ( mkAnnKey )
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-index f33b511..8ec8d74 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-@@ -37,8 +37,10 @@ import GHC ( runGhc
- )
- import SrcLoc ( SrcSpan, noSrcSpan, Located , getLoc, unLoc )
- import qualified FastString
--import HsSyn
--#if MIN_VERSION_ghc(8,6,0)
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+import GHC.Hs.Extension (NoExtField (..))
-+#elif MIN_VERSION_ghc(8,6,0)
- import HsExtension (NoExt (..))
- #endif
- import Name
-@@ -1040,7 +1042,14 @@ layoutClsInst lcid@(L _ cid) = docLines
- ]
- where
- layoutInstanceHead :: ToBriDocM BriDocNumbered
--#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ layoutInstanceHead =
-+ briDocByExactNoComment
-+ $ InstD NoExtField
-+ . ClsInstD NoExtField
-+ . removeChildren
-+ <$> lcid
-+#elif MIN_VERSION_ghc(8,6,0) /* 8.6 */
- layoutInstanceHead =
- briDocByExactNoComment
- $ InstD NoExt
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-index 660355c..d7c9a2b 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-@@ -19,7 +19,11 @@ import Language.Haskell.Brittany.Internal.Config.Types
- import qualified Language.Haskell.GHC.ExactPrint.Types as ExactPrint.Types
-
- import GHC ( runGhc, GenLocated(L), SrcSpan, moduleNameString, AnnKeywordId(..), RdrName(..) )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import qualified FastString
- import BasicTypes
-@@ -521,7 +525,12 @@ layoutExpr lexpr@(L _ expr) = do
- #else
- ExplicitTuple args boxity -> do
- #endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ let argExprs = args <&> \arg -> case arg of
-+ (L _ (Present _ e)) -> (arg, Just e);
-+ (L _ (Missing NoExtField)) -> (arg, Nothing)
-+ (L _ XTupArg{}) -> error "brittany internal error: XTupArg"
-+#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let argExprs = args <&> \arg -> case arg of
- (L _ (Present _ e)) -> (arg, Just e);
- (L _ (Missing NoExt)) -> (arg, Nothing)
-@@ -984,10 +993,18 @@ layoutExpr lexpr@(L _ expr) = do
- else Just <$> docSharedWrapper layoutExpr rFExpr
- return $ (lfield, lrdrNameToText lnameF, rFExpDoc)
- recordExpression False indentPolicy lexpr nameDoc rFs
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ HsRecFields [] (Just (L _ 0)) -> do
-+#else
- HsRecFields [] (Just 0) -> do
-+#endif
- let t = lrdrNameToText lname
- docWrapNode lname $ docLit $ t <> Text.pack " { .. }"
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ HsRecFields fs@(_:_) (Just (L _ dotdoti)) | dotdoti == length fs -> do
-+#else
- HsRecFields fs@(_:_) (Just dotdoti) | dotdoti == length fs -> do
-+#endif
- let nameDoc = docWrapNode lname $ docLit $ lrdrNameToText lname
- fieldDocs <- fs `forM` \fieldl@(L _ (HsRecField (L _ fieldOcc) fExpr pun)) -> do
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-@@ -1137,12 +1154,15 @@ layoutExpr lexpr@(L _ expr) = do
- HsStatic{} -> do
- -- TODO
- briDocByExactInlineOnly "HsStatic{}" lexpr
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+#else
- HsArrApp{} -> do
- -- TODO
- briDocByExactInlineOnly "HsArrApp{}" lexpr
- HsArrForm{} -> do
- -- TODO
- briDocByExactInlineOnly "HsArrForm{}" lexpr
-+#endif
- HsTick{} -> do
- -- TODO
- briDocByExactInlineOnly "HsTick{}" lexpr
-@@ -1152,6 +1172,8 @@ layoutExpr lexpr@(L _ expr) = do
- HsTickPragma{} -> do
- -- TODO
- briDocByExactInlineOnly "HsTickPragma{}" lexpr
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+#else
- EWildPat{} -> do
- docLit $ Text.pack "_"
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-@@ -1169,6 +1191,7 @@ layoutExpr lexpr@(L _ expr) = do
- ELazyPat{} -> do
- -- TODO
- briDocByExactInlineOnly "ELazyPat{}" lexpr
-+#endif
- HsWrap{} -> do
- -- TODO
- briDocByExactInlineOnly "HsWrap{}" lexpr
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-index 1f76032..733ac90 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-@@ -15,7 +15,11 @@ import Language.Haskell.Brittany.Internal.Types
- import Language.Haskell.Brittany.Internal.LayouterBasics
-
- import GHC ( runGhc, GenLocated(L), moduleNameString )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
-
-
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-index f2c36de..bfe2679 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-@@ -18,9 +18,14 @@ import GHC ( unLoc
- , AnnKeywordId(..)
- , Located
- )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+import GHC.Hs.ImpExp
-+#else
- import HsSyn
--import Name
- import HsImpExp
-+#endif
-+import Name
- import FieldLabel
- import qualified FastString
- import BasicTypes
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-index bcce106..d5bf0dd 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-@@ -12,7 +12,11 @@ import GHC ( unLoc
- , moduleNameString
- , Located
- )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import FieldLabel
- import qualified FastString
-@@ -59,7 +63,11 @@ layoutImport limportD@(L _ importD) = docWrapNode limportD $ case importD of
- hiding = maybe False fst mllies
- minQLength = length "import qualified "
- qLengthReal =
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ let qualifiedPart = if q /= NotQualified then length "qualified " else 0
-+#else
- let qualifiedPart = if q then length "qualified " else 0
-+#endif
- safePart = if safe then length "safe " else 0
- pkgPart = maybe 0 ((+ 1) . Text.length) pkgNameT
- srcPart = if src then length "{-# SOURCE #-} " else 0
-@@ -73,7 +81,11 @@ layoutImport limportD@(L _ importD) = docWrapNode limportD $ case importD of
- [ appSep $ docLit $ Text.pack "import"
- , if src then appSep $ docLit $ Text.pack "{-# SOURCE #-}" else docEmpty
- , if safe then appSep $ docLit $ Text.pack "safe" else docEmpty
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ , if q /= NotQualified then appSep $ docLit $ Text.pack "qualified" else docEmpty
-+#else
- , if q then appSep $ docLit $ Text.pack "qualified" else docEmpty
-+#endif
- , maybe docEmpty (appSep . docLit) pkgNameT
- ]
- indentName =
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Module.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Module.hs
-index f899e08..3839ecd 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Module.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Module.hs
-@@ -9,9 +9,14 @@ import Language.Haskell.Brittany.Internal.Layouters.Import
- import Language.Haskell.Brittany.Internal.Config.Types
-
- import GHC (unLoc, runGhc, GenLocated(L), moduleNameString, AnnKeywordId(..))
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+import GHC.Hs.ImpExp
-+#else
- import HsSyn
--import Name
- import HsImpExp
-+#endif
-+import Name
- import FieldLabel
- import qualified FastString
- import BasicTypes
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-index cd1b31e..de943b7 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-@@ -21,7 +21,11 @@ import GHC ( Located
- , ol_val
- )
- import qualified GHC
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import BasicTypes
-
-@@ -136,14 +140,22 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- , docSeparator
- , docLit $ Text.pack "}"
- ]
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ ConPatIn lname (RecCon (HsRecFields [] (Just (L _ 0)))) -> do
-+#else
- ConPatIn lname (RecCon (HsRecFields [] (Just 0))) -> do
-+#endif
- -- Abc { .. } -> expr
- let t = lrdrNameToText lname
- Seq.singleton <$> docSeq
- [ appSep $ docLit t
- , docLit $ Text.pack "{..}"
- ]
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+ ConPatIn lname (RecCon (HsRecFields fs@(_:_) (Just (L _ dotdoti)))) | dotdoti == length fs -> do
-+#else
- ConPatIn lname (RecCon (HsRecFields fs@(_:_) (Just dotdoti))) | dotdoti == length fs -> do
-+#endif
- -- Abc { a = locA, .. }
- let t = lrdrNameToText lname
- fds <- fs `forM` \(L _ (HsRecField (L _ fieldOcc) fPat pun)) -> do
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-index 3aa3b5c..60ba54b 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-@@ -17,7 +17,11 @@ import GHC ( runGhc
- , GenLocated(L)
- , moduleNameString
- )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import qualified FastString
- import BasicTypes
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot
-index faf583a..1fab3c5 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs-boot
-@@ -13,7 +13,11 @@ import Language.Haskell.Brittany.Internal.Types
- import Language.Haskell.Brittany.Internal.LayouterBasics
-
- import GHC ( runGhc, GenLocated(L), moduleNameString )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import qualified FastString
- import BasicTypes
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-index 940eac7..7a1fee4 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-@@ -25,7 +25,11 @@ import GHC ( runGhc
- , AnnKeywordId (..)
- )
- import Language.Haskell.GHC.ExactPrint.Types ( mkAnnKey )
-+#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
-+import GHC.Hs
-+#else
- import HsSyn
-+#endif
- import Name
- import Outputable ( ftext, showSDocUnsafe )
- import BasicTypes
-@@ -61,7 +65,9 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
- docWrapNode name $ docLit t
- #endif
--#if MIN_VERSION_ghc(8,6,0)
-+#if MIN_VERSION_ghc(8,10,1)
-+ HsForAllTy _ _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
-+#elif MIN_VERSION_ghc(8,6,0)
- HsForAllTy _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
- #else
- HsForAllTy bndrs (L _ (HsQualTy (L _ cntxts) typ2)) -> do
-@@ -151,7 +157,9 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- )
- ]
--#if MIN_VERSION_ghc(8,6,0)
-+#if MIN_VERSION_ghc(8,10,1)
-+ HsForAllTy _ _ bndrs typ2 -> do
-+#elif MIN_VERSION_ghc(8,6,0)
- HsForAllTy _ bndrs typ2 -> do
- #else
- HsForAllTy bndrs typ2 -> do
-diff --git a/src/Language/Haskell/Brittany/Internal/Utils.hs b/src/Language/Haskell/Brittany/Internal/Utils.hs
-index 9edcb7e..0a0d31f 100644
---- a/src/Language/Haskell/Brittany/Internal/Utils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Utils.hs
-@@ -304,15 +304,13 @@ lines' s = case break (== '\n') s of
- (s1, (_:r)) -> s1 : lines' r
-
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
--absurdExt :: HsExtension.NoExtField -> a
--absurdExt = error "cannot construct NoExtField"
--#else
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+absurdExt :: HsExtension.NoExtCon -> a
-+absurdExt = HsExtension.noExtCon
-+#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- -- | A method to dismiss NoExt patterns for total matches
- absurdExt :: HsExtension.NoExt -> a
- absurdExt = error "cannot construct NoExt"
- #else
- absurdExt :: ()
- absurdExt = ()
--#endif /* ghc-8.6 */
--#endif /* ghc-8.10.1 */
-+#endif
-
-From 1e118a44ca9880b5e96f85a6f8c12d756f08fa8b Mon Sep 17 00:00:00 2001
-From: Luke Lau <luke_lau at icloud.com>
-Date: Thu, 6 Aug 2020 18:50:10 +0100
-Subject: [PATCH 06/17] Fix build on GHC 8.8 and below
-
----
- src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-index 8ec8d74..e512b9a 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-@@ -41,6 +41,7 @@ import qualified FastString
- import GHC.Hs
- import GHC.Hs.Extension (NoExtField (..))
- #elif MIN_VERSION_ghc(8,6,0)
-+import HsSyn
- import HsExtension (NoExt (..))
- #endif
- import Name
-
-From cf3bc5daf46220b609a7ffac6cd26a717c62edb7 Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Wed, 28 Oct 2020 08:45:29 -0400
-Subject: [PATCH 07/17] Allow strict 0.4
-
----
- brittany.cabal | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/brittany.cabal b/brittany.cabal
-index 590373f..704d505 100644
---- a/brittany.cabal
-+++ b/brittany.cabal
-@@ -110,7 +110,7 @@ library {
- , aeson >=1.0.1.0 && <1.6
- , extra >=1.4.10 && <1.8
- , uniplate >=1.6.12 && <1.7
-- , strict >=0.3.2 && <0.4
-+ , strict >=0.3.2 && <0.5
- , monad-memo >=0.4.1 && <0.6
- , unsafe >=0.0 && <0.1
- , safe >=0.3.9 && <0.4
-
-From 096c438b2351288cbf237da652bad1ceca1d8cdb Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Sun, 15 Nov 2020 11:10:06 -0500
-Subject: [PATCH 10/17] Drop support for GHC 8.0
-
----
- .github/workflows/ci.yaml | 3 --
- .travis.yml | 12 ++---
- Makefile | 7 +--
- README.md | 10 ++--
- brittany.cabal | 6 +--
- .../Haskell/Brittany/Internal/Config/Types.hs | 4 --
- .../Brittany/Internal/ExactPrintUtils.hs | 2 +-
- .../Brittany/Internal/Layouters/DataDecl.hs | 26 +--------
- .../Brittany/Internal/Layouters/Decl.hs | 46 ++++------------
- .../Brittany/Internal/Layouters/Expr.hs | 54 ++++---------------
- .../Brittany/Internal/Layouters/Expr.hs-boot | 2 +-
- .../Haskell/Brittany/Internal/Layouters/IE.hs | 16 ------
- .../Brittany/Internal/Layouters/Import.hs | 10 ----
- .../Brittany/Internal/Layouters/Pattern.hs | 15 ++----
- .../Brittany/Internal/Layouters/Type.hs | 21 +-------
- .../Haskell/Brittany/Internal/Prelude.hs | 6 +--
- .../Haskell/Brittany/Internal/Types.hs | 2 -
- stack-8.0.2.yaml | 12 -----
- stack-8.0.2.yaml.lock | 54 -------------------
- 19 files changed, 43 insertions(+), 265 deletions(-)
- delete mode 100644 stack-8.0.2.yaml
- delete mode 100644 stack-8.0.2.yaml.lock
-
-diff --git a/README.md b/README.md
-index 6fe5976..b009a37 100644
---- a/README.md
-+++ b/README.md
-@@ -1,4 +1,4 @@
--# brittany [](https://hackage.haskell.org/package/brittany) [](https://www.stackage.org/package/brittany) [](http://travis-ci.org/lspitzner/brittany)
-+# brittany [](https://hackage.haskell.org/package/brittany) [](https://www.stackage.org/package/brittany) [](http://travis-ci.org/lspitzner/brittany)
- haskell source code formatter
-
- 
-@@ -31,7 +31,7 @@ require fixing:
- other module elements (data-decls, classes, instances, etc.)
- are not transformed in any way; this extends to e.g. **bindings inside class
- instance definitions** - they **won't be touched** (yet).
--- By using `ghc-exactprint` as the parser, brittany supports full GHC
-+- By using `ghc-exactprint` as the parser, brittany supports full GHC
- including extensions, but **some of the less common syntactic elements
- (even of 2010 haskell) are not handled**.
- - **There are some known issues regarding handling of in-source comments.**
-@@ -48,7 +48,7 @@ log the size of the input, but _not_ the full input/output of requests.)
-
- # Other usage notes
-
--- Supports GHC versions `8.0`, `8.2`, `8.4`, `8.6`, `8.8`.
-+- Supports GHC versions `8.2`, `8.4`, `8.6`, `8.8`.
- - included in stackage with lts>=10.0 (or nightlies dating to >=2017-11-15)
- - config (file) documentation is lacking.
- - some config values can not be configured via commandline yet.
-@@ -127,13 +127,13 @@ log the size of the input, but _not_ the full input/output of requests.)
- - Default mode of operation: Transform a single module, from `stdin` to `stdout`.
- Can pass one or multiple files as input, and there is a flag to override them
- in place instead of using `stdout` (since 0.9.0.0). So:
--
-+
- ~~~~ .sh
- brittany # stdin -> stdout
- brittany mysource.hs # ./mysource.hs -> stdout
- brittany --write-mode=inplace *.hs # apply formatting to all ./*.hs inplace
- ~~~~
--
-+
- - For stdin/stdout usage it makes sense to enable certain syntactic extensions
- by default, i.e. to add something like this to your
- `~/.config/brittany/config.yaml` (execute `brittany` once to create default):
-diff --git a/brittany.cabal b/brittany.cabal
-index 704d505..0c3ed7c 100644
---- a/brittany.cabal
-+++ b/brittany.cabal
-@@ -91,8 +91,8 @@ library {
- -fno-warn-redundant-constraints
- }
- build-depends:
-- { base >=4.9 && <4.15
-- , ghc >=8.0.1 && <8.11
-+ { base >=4.10 && <4.15
-+ , ghc >=8.2.1 && <8.11
- , ghc-paths >=0.1.0.9 && <0.2
- , ghc-exactprint >=0.5.8 && <0.6.4
- , transformers >=0.5.2.0 && <0.6
-@@ -118,7 +118,7 @@ library {
- , semigroups >=0.18.2 && <0.20
- , cmdargs >=0.10.14 && <0.11
- , czipwith >=1.0.1.0 && <1.1
-- , ghc-boot-th >=8.0.1 && <8.11
-+ , ghc-boot-th >=8.2.1 && <8.11
- , filepath >=1.4.1.0 && <1.5
- , random >= 1.1 && <1.2
- }
-diff --git a/src/Language/Haskell/Brittany/Internal/Config/Types.hs b/src/Language/Haskell/Brittany/Internal/Config/Types.hs
-index 32da0ac..c5d8eb0 100644
---- a/src/Language/Haskell/Brittany/Internal/Config/Types.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Config/Types.hs
-@@ -229,15 +229,12 @@ deriving instance Data (CForwardOptions Identity)
- deriving instance Data (CPreProcessorConfig Identity)
- deriving instance Data (CConfig Identity)
-
--#if MIN_VERSION_ghc(8,2,0)
---- these instances break on earlier ghcs
- deriving instance Data (CDebugConfig Option)
- deriving instance Data (CLayoutConfig Option)
- deriving instance Data (CErrorHandlingConfig Option)
- deriving instance Data (CForwardOptions Option)
- deriving instance Data (CPreProcessorConfig Option)
- deriving instance Data (CConfig Option)
--#endif
-
- instance Semigroup.Semigroup (CDebugConfig Option) where
- (<>) = gmappend
-@@ -356,4 +353,3 @@ deriveCZipWith ''CErrorHandlingConfig
- deriveCZipWith ''CForwardOptions
- deriveCZipWith ''CPreProcessorConfig
- deriveCZipWith ''CConfig
--
-diff --git a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-index 6115f52..7c06f69 100644
---- a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-@@ -323,7 +323,7 @@ withTransformedAnns ast m = MultiRWSS.mGetRawR >>= \case
- #if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- warnExtractorCompat :: GHC.Warn -> String
- warnExtractorCompat (GHC.Warn _ (L _ s)) = s
--#else /* ghc-8.0 && ghc-8.2 */
-+#else /* ghc-8.2 */
- warnExtractorCompat :: GenLocated l String -> String
- warnExtractorCompat (L _ s) = s
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-index 4d2b93a..74b6d53 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-@@ -297,7 +297,6 @@ createDerivingPar
- :: HsDeriving GhcPs -> ToBriDocM BriDocNumbered -> ToBriDocM BriDocNumbered
- createDerivingPar derivs mainDoc = do
- case derivs of
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- (L _ []) -> mainDoc
- (L _ types) ->
- docPar mainDoc
-@@ -306,26 +305,13 @@ createDerivingPar derivs mainDoc = do
- $ docWrapNode derivs
- $ derivingClauseDoc
- <$> types
--#else
-- Nothing -> mainDoc
-- Just types ->
-- docPar mainDoc
-- $ docEnsureIndent BrIndentRegular
-- $ derivingClauseDoc types
--#endif
-
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- derivingClauseDoc :: LHsDerivingClause GhcPs -> ToBriDocM BriDocNumbered
--#else
--derivingClauseDoc :: Located [LHsSigType GhcPs] -> ToBriDocM BriDocNumbered
--#endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- derivingClauseDoc (L _ (XHsDerivingClause ext)) = absurdExt ext
- derivingClauseDoc (L _ (HsDerivingClause _ext mStrategy types)) = case types of
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
--derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
- #else
--derivingClauseDoc types = case types of
-+derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
- #endif
- (L _ []) -> docSeq []
- (L _ ts) ->
-@@ -333,11 +319,7 @@ derivingClauseDoc types = case types of
- tsLength = length ts
- whenMoreThan1Type val =
- if tsLength > 1 then docLitS val else docLitS ""
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- (lhsStrategy, rhsStrategy) = maybe (docEmpty, docEmpty) strategyLeftRight mStrategy
--#else
-- (lhsStrategy, rhsStrategy) = (docEmpty, docEmpty)
--#endif
- in
- docSeq
- [ docDeriving
-@@ -351,15 +333,12 @@ derivingClauseDoc types = case types of
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIB _ t -> layoutType t
- XHsImplicitBndrs x -> absurdExt x
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
-- HsIB _ t _ -> layoutType t
- #else
-- HsIB _ t -> layoutType t
-+ HsIB _ t _ -> layoutType t
- #endif
- , whenMoreThan1Type ")"
- , rhsStrategy
- ]
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.6 */
- where
- strategyLeftRight = \case
- (L _ StockStrategy ) -> (docLitS " stock", docEmpty)
-@@ -377,7 +356,6 @@ derivingClauseDoc types = case types of
- XHsImplicitBndrs ext -> absurdExt ext
- )
- #endif
--#endif
-
- docDeriving :: ToBriDocM BriDocNumbered
- docDeriving = docLitS "deriving"
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-index e512b9a..4a86954 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-@@ -49,9 +49,7 @@ import BasicTypes ( InlinePragma(..)
- , Activation(..)
- , InlineSpec(..)
- , RuleMatchInfo(..)
--#if MIN_VERSION_ghc(8,2,0)
- , LexicalFixity(..)
--#endif
- )
- import Language.Haskell.GHC.ExactPrint.Types ( mkAnnKey )
-
-@@ -100,10 +98,8 @@ layoutSig :: ToBriDoc Sig
- layoutSig lsig@(L _loc sig) = case sig of
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- TypeSig _ names (HsWC _ (HsIB _ typ)) -> layoutNamesAndType Nothing names typ
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- TypeSig names (HsWC _ (HsIB _ typ _)) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.0 */
-- TypeSig names (HsIB _ (HsWC _ _ typ)) -> layoutNamesAndType Nothing names typ
- #endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- InlineSig _ name (InlinePragma _ spec _arity phaseAct conlike) ->
-@@ -128,17 +124,13 @@ layoutSig lsig@(L _loc sig) = case sig of
- <> Text.pack " #-}"
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ClassOpSig _ False names (HsIB _ typ) -> layoutNamesAndType Nothing names typ
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- ClassOpSig False names (HsIB _ typ _) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.0 */
-- ClassOpSig False names (HsIB _ typ) -> layoutNamesAndType Nothing names typ
- #endif
- #if MIN_VERSION_ghc(8,6,0)
- PatSynSig _ names (HsIB _ typ) -> layoutNamesAndType (Just "pattern") names typ
--#elif MIN_VERSION_ghc(8,2,0)
-- PatSynSig names (HsIB _ typ _) -> layoutNamesAndType (Just "pattern") names typ
- #else
-- PatSynSig name (HsIB _ typ) -> layoutNamesAndType (Just "pattern") [name] typ
-+ PatSynSig names (HsIB _ typ _) -> layoutNamesAndType (Just "pattern") names typ
- #endif
- _ -> briDocByExactNoComment lsig -- TODO
- where
-@@ -359,10 +351,8 @@ layoutPatternBind funId binderDoc lmatch@(L _ match) = do
- Match _ (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
- #elif MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.4 */
-- Match (FunRhs matchId _ _) _ _ _ -> Just <$> lrdrNameToTextAnn matchId
- #else
-- Match (FunBindMatch matchId _) _ _ _ -> Just <$> lrdrNameToTextAnn matchId
-+ Match (FunRhs matchId _ _) _ _ _ -> Just <$> lrdrNameToTextAnn matchId
- #endif
- _ -> pure Nothing
- let mIdStr' = fixPatternBindIdentifier match <$> mIdStr
-@@ -406,7 +396,6 @@ layoutPatternBind funId binderDoc lmatch@(L _ match) = do
- mWhereArg
- hasComments
-
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 && ghc-8.4 */
- fixPatternBindIdentifier
- :: Match GhcPs (LHsExpr GhcPs) -> Text -> Text
- fixPatternBindIdentifier match idStr = go $ m_ctxt match
-@@ -424,10 +413,6 @@ fixPatternBindIdentifier match idStr = go $ m_ctxt match
- (ParStmtCtxt ctx1) -> goInner ctx1
- (TransStmtCtxt ctx1) -> goInner ctx1
- _ -> idStr
--#else /* ghc-8.0 */
--fixPatternBindIdentifier :: Match GhcPs (LHsExpr GhcPs) -> Text -> Text
--fixPatternBindIdentifier _ x = x
--#endif
-
- layoutPatternBindFinal
- :: Maybe Text
-@@ -842,18 +827,11 @@ layoutTyCl ltycl@(L _loc tycl) = case tycl of
- let isInfix = case fixity of
- Prefix -> False
- Infix -> True
--#elif MIN_VERSION_ghc(8,2,0)
-+#else
- SynDecl name vars fixity typ _ -> do
- let isInfix = case fixity of
- Prefix -> False
- Infix -> True
--#else
-- SynDecl name vars typ _ -> do
-- nameStr <- lrdrNameToTextAnn name
-- let isInfixTypeOp = case Text.uncons nameStr of
-- Nothing -> False
-- Just (c, _) -> not (c == '(' || isUpper c)
-- isInfix <- (isInfixTypeOp ||) <$> hasAnnKeyword name AnnBackquote
- #endif
- -- hasTrailingParen <- hasAnnKeywordComment ltycl AnnCloseP
- -- let parenWrapper = if hasTrailingParen
-@@ -864,10 +842,8 @@ layoutTyCl ltycl@(L _loc tycl) = case tycl of
- $ layoutSynDecl isInfix wrapNodeRest name (hsq_explicit vars) typ
- #if MIN_VERSION_ghc(8,6,0)
- DataDecl _ext name tyVars _ dataDefn ->
--#elif MIN_VERSION_ghc(8,2,0)
-- DataDecl name tyVars _ dataDefn _ _ ->
- #else
-- DataDecl name tyVars dataDefn _ _ ->
-+ DataDecl name tyVars _ dataDefn _ _ ->
- #endif
- layoutDataDecl ltycl name tyVars dataDefn
- _ -> briDocByExactNoComment ltycl
-@@ -919,14 +895,14 @@ layoutTyVarBndr needsSep lbndr@(L _ bndr) = do
- #if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- XTyVarBndr{} -> error "brittany internal error: XTyVarBndr"
- UserTyVar _ name -> do
--#else /* 8.0 8.2 8.4 */
-+#else /* 8.2 8.4 */
- UserTyVar name -> do
- #endif
- nameStr <- lrdrNameToTextAnn name
- docSeq $ [docSeparator | needsSep] ++ [docLit nameStr]
- #if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- KindedTyVar _ name kind -> do
--#else /* 8.0 8.2 8.4 */
-+#else /* 8.2 8.4 */
- KindedTyVar name kind -> do
- #endif
- nameStr <- lrdrNameToTextAnn name
-@@ -967,12 +943,8 @@ layoutTyFamInstDecl inClass outerNode tfid = do
- FamEqn name pats _fixity typ = hsib_body $ tfid_eqn tfid
- bndrsMay = Nothing
- innerNode = outerNode
--#elif MIN_VERSION_ghc(8,2,0)
-- innerNode@(L _ (TyFamEqn name boundPats _fixity typ)) = tfid_eqn tfid
-- bndrsMay = Nothing
-- pats = hsib_body boundPats
- #else
-- innerNode@(L _ (TyFamEqn name boundPats typ)) = tfid_eqn tfid
-+ innerNode@(L _ (TyFamEqn name boundPats _fixity typ)) = tfid_eqn tfid
- bndrsMay = Nothing
- pats = hsib_body boundPats
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-index d7c9a2b..534496d 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-@@ -62,10 +62,8 @@ layoutExpr lexpr@(L _ expr) = do
- briDocByExactInlineOnly "HsRecFld" lexpr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsOverLabel _ext _reboundFromLabel name ->
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- HsOverLabel _reboundFromLabel name ->
--#else /* ghc-8.0 */
-- HsOverLabel name ->
- #endif
- let label = FastString.unpackFS name
- in docLit . Text.pack $ '#' : label
-@@ -176,19 +174,15 @@ layoutExpr lexpr@(L _ expr) = do
- #endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ (L _ []) _) -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4*/
-+#else /* ghc-8.2 */
- HsLamCase (MG (L _ []) _ _ _) -> do
--#else /* ghc-8.0 */
-- HsLamCase _ (MG (L _ []) _ _ _) -> do
- #endif
- docSetParSpacing $ docAddBaseY BrIndentRegular $
- (docLit $ Text.pack "\\case {}")
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4*/
-+#else /* ghc-8.2 */
- HsLamCase (MG lmatches@(L _ matches) _ _ _) -> do
--#else /* ghc-8.0 */
-- HsLamCase _ (MG lmatches@(L _ matches) _ _ _) -> do
- #endif
- binderDoc <- docLit $ Text.pack "->"
- funcPatDocs <- docWrapNode lmatches
-@@ -311,10 +305,8 @@ layoutExpr lexpr@(L _ expr) = do
- HsAppType XHsWildCardBndrs{} _ ->
- error "brittany internal error: HsAppType XHsWildCardBndrs"
- HsAppType (HsWC _ ty1) exp1 -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- HsAppType exp1 (HsWC _ ty1) -> do
--#else /* ghc-8.0 */
-- HsAppType exp1 (HsWC _ _ ty1) -> do
- #endif
- t <- docSharedWrapper layoutType ty1
- e <- docSharedWrapper layoutExpr exp1
-@@ -329,7 +321,7 @@ layoutExpr lexpr@(L _ expr) = do
- e
- (docSeq [docLit $ Text.pack "@", t ])
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.0 8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
- HsAppTypeOut{} -> do
- -- TODO
- briDocByExactInlineOnly "HsAppTypeOut{}" lexpr
-@@ -968,7 +960,7 @@ layoutExpr lexpr@(L _ expr) = do
- in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN] ++ [end]
- ExplicitList _ _ [] ->
- docLit $ Text.pack "[]"
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.0 8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
- ExplicitPArr{} -> do
- -- TODO
- briDocByExactInlineOnly "ExplicitPArr{}" lexpr
-@@ -1052,10 +1044,8 @@ layoutExpr lexpr@(L _ expr) = do
- ExprWithTySig XHsWildCardBndrs{} _ ->
- error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
- ExprWithTySig (HsWC _ (HsIB _ typ1)) exp1 -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8,4 */
-+#else /* ghc-8.2 */
- ExprWithTySig exp1 (HsWC _ (HsIB _ typ1 _)) -> do
--#else /* ghc-8.0 */
-- ExprWithTySig exp1 (HsIB _ (HsWC _ _ typ1)) -> do
- #endif
- expDoc <- docSharedWrapper layoutExpr exp1
- typDoc <- docSharedWrapper layoutType typ1
-@@ -1064,7 +1054,7 @@ layoutExpr lexpr@(L _ expr) = do
- , appSep $ docLit $ Text.pack "::"
- , typDoc
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.0 8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
- ExprWithTySigOut{} -> do
- -- TODO
- briDocByExactInlineOnly "ExprWithTySigOut{}" lexpr
-@@ -1113,7 +1103,7 @@ layoutExpr lexpr@(L _ expr) = do
- ]
- ArithSeq{} ->
- briDocByExactInlineOnly "ArithSeq" lexpr
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.0 8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
- PArrSeq{} -> do
- -- TODO
- briDocByExactInlineOnly "PArrSeq{}" lexpr
-@@ -1195,14 +1185,12 @@ layoutExpr lexpr@(L _ expr) = do
- HsWrap{} -> do
- -- TODO
- briDocByExactInlineOnly "HsWrap{}" lexpr
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- HsConLikeOut{} -> do
- -- TODO
- briDocByExactInlineOnly "HsWrap{}" lexpr
- ExplicitSum{} -> do
- -- TODO
- briDocByExactInlineOnly "ExplicitSum{}" lexpr
--#endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- XExpr{} -> error "brittany internal error: XExpr"
- #endif
-@@ -1367,7 +1355,7 @@ overLitValBriDoc = \case
- HsFractional (FL (SourceText t) _ _) -> BDFLit $ Text.pack t
- HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
- _ -> error "overLitValBriDoc: literal with no SourceText"
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
-+#else /* ghc-8.2 */
- litBriDoc :: HsLit -> BriDocFInt
- litBriDoc = \case
- HsChar (SourceText t) _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-@@ -1391,26 +1379,4 @@ overLitValBriDoc = \case
- HsFractional (FL t _) -> BDFLit $ Text.pack t
- HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
- _ -> error "overLitValBriDoc: literal with no SourceText"
--#else /* ghc-8.0 */
--litBriDoc :: HsLit -> BriDocFInt
--litBriDoc = \case
-- HsChar t _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-- HsCharPrim t _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-- HsString t _fastString -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ FastString.unpackFS fastString
-- HsStringPrim t _byteString -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ Data.ByteString.Char8.unpack byteString
-- HsInt t _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsIntPrim t _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsWordPrim t _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsInt64Prim t _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsWord64Prim t _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsInteger t _i _type -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsRat (FL t _) _type -> BDFLit $ Text.pack t
-- HsFloatPrim (FL t _) -> BDFLit $ Text.pack t
-- HsDoublePrim (FL t _) -> BDFLit $ Text.pack t
--
--overLitValBriDoc :: OverLitVal -> BriDocFInt
--overLitValBriDoc = \case
-- HsIntegral t _ -> BDFLit $ Text.pack t
-- HsFractional (FL t _) -> BDFLit $ Text.pack t
-- HsIsString t _ -> BDFLit $ Text.pack t
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-index 733ac90..606790b 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-@@ -30,7 +30,7 @@ layoutExpr :: ToBriDoc HsExpr
-
- #if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- litBriDoc :: HsLit GhcPs -> BriDocFInt
--#else /* ghc-8.0 && ghc-8.2 */
-+#else /* ghc-8.2 */
- litBriDoc :: HsLit -> BriDocFInt
- #endif
-
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-index bfe2679..739d138 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-@@ -34,13 +34,8 @@ import Language.Haskell.Brittany.Internal.Utils
-
-
-
--#if MIN_VERSION_ghc(8,2,0)
- prepareName :: LIEWrappedName name -> Located name
- prepareName = ieLWrappedName
--#else
--prepareName :: Located name -> Located name
--prepareName = id
--#endif
-
- layoutIE :: ToBriDoc IE
- layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
-@@ -111,7 +106,6 @@ layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
- ]
- _ -> docEmpty
- where
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2, 8.4, .. */
- layoutWrapped _ = \case
- L _ (IEName n) -> docLit =<< lrdrNameToTextAnn n
- L _ (IEPattern n) -> do
-@@ -120,16 +114,6 @@ layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
- L _ (IEType n) -> do
- name <- lrdrNameToTextAnn n
- docLit $ Text.pack "type " <> name
--#else /* ghc-8.0 */
-- layoutWrapped outer n = do
-- name <- lrdrNameToTextAnn n
-- hasType <- hasAnnKeyword n AnnType
-- hasPattern <- hasAnnKeyword outer AnnPattern
-- docLit $ if
-- | hasType -> Text.pack "type (" <> name <> Text.pack ")"
-- | hasPattern -> Text.pack "pattern " <> name
-- | otherwise -> name
--#endif
-
- -- Helper function to deal with Located lists of LIEs.
- -- In particular this will also associate documentation
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-index d5bf0dd..ac29eda 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-@@ -26,24 +26,14 @@ import Language.Haskell.Brittany.Internal.Utils
-
-
-
--#if MIN_VERSION_ghc(8,2,0)
- prepPkg :: SourceText -> String
- prepPkg rawN = case rawN of
- SourceText n -> n
- -- This would be odd to encounter and the
- -- result will most certainly be wrong
- NoSourceText -> ""
--#else
--prepPkg :: String -> String
--prepPkg = id
--#endif
--#if MIN_VERSION_ghc(8,2,0)
- prepModName :: Located e -> e
- prepModName = unLoc
--#else
--prepModName :: e -> e
--prepModName = id
--#endif
-
- layoutImport :: ToBriDoc ImportDecl
- layoutImport limportD@(L _ importD) = docWrapNode limportD $ case importD of
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-index de943b7..b0b13f2 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-@@ -50,14 +50,14 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- -- _ -> expr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- VarPat _ n ->
--#else /* ghc-8.0 8.2 8.4 */
-+#else /* ghc-8.2 8.4 */
- VarPat n ->
- #endif
- fmap Seq.singleton $ docLit $ lrdrNameToText n
- -- abc -> expr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LitPat _ lit ->
--#else /* ghc-8.0 8.2 8.4 */
-+#else /* ghc-8.2 8.4 */
- LitPat lit ->
- #endif
- fmap Seq.singleton $ allocateNode $ litBriDoc lit
-@@ -66,7 +66,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- ParPat _ inner -> do
- #elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ParPat _ inner -> do
--#else /* ghc-8.0 8.2 8.4 */
-+#else /* ghc-8.2 8.4 */
- ParPat inner -> do
- #endif
- -- (nestedpat) -> expr
-@@ -202,10 +202,8 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- SigPat _ pat1 (HsWC _ (HsIB _ ty1)) -> do
- #elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- SigPat (HsWC _ (HsIB _ ty1)) pat1 -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- SigPatIn pat1 (HsWC _ (HsIB _ ty1 _)) -> do
--#else /* ghc-8.0 */
-- SigPatIn pat1 (HsIB _ (HsWC _ _ ty1)) -> do
- #endif
- -- i :: Int -> expr
- patDocs <- layoutPat pat1
-@@ -260,11 +258,6 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- Just{} -> Seq.fromList [negDoc, litDoc]
- Nothing -> Seq.singleton litDoc
-
---- if MIN_VERSION_ghc(8,0,0)
---- VarPat n -> return $ stringLayouter lpat $ lrdrNameToText n
---- else
---- VarPat n -> return $ stringLayouter lpat $ rdrNameToText n
---- endif
- _ -> return <$> briDocByExactInlineOnly "some unknown pattern" (ghcDL lpat)
-
- colsWrapPat :: Seq BriDocNumbered -> ToBriDocM BriDocNumbered
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-index 7a1fee4..2060904 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-@@ -42,7 +42,6 @@ import DataTreePrint
- layoutType :: ToBriDoc HsType
- layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- _ | traceShow (ExactPrint.Types.mkAnnKey ltype) False -> error "impossible"
--#if MIN_VERSION_ghc(8,2,0)
- #if MIN_VERSION_ghc(8,6,0)
- HsTyVar _ promoted name -> do
- #else /* ghc-8.2 ghc-8.4 */
-@@ -60,11 +59,6 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- , docWrapNode name $ docLit t
- ]
- NotPromoted -> docWrapNode name $ docLit t
--#else /* ghc-8.0 */
-- HsTyVar name -> do
-- t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
-- docWrapNode name $ docLit t
--#endif
- #if MIN_VERSION_ghc(8,10,1)
- HsForAllTy _ _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
- #elif MIN_VERSION_ghc(8,6,0)
-@@ -547,10 +541,8 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- }
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIParamTy _ (L _ (HsIPName ipName)) typ1 -> do
--#elif MIN_VERSION_ghc(8,2,0) /* ghc-8.2 8.4 */
-+#else /* ghc-8.2 */
- HsIParamTy (L _ (HsIPName ipName)) typ1 -> do
--#else /* ghc-8.0 */
-- HsIParamTy (HsIPName ipName) typ1 -> do
- #endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- docAlt
-@@ -699,11 +691,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- briDocByExactInlineOnly "HsDocTy{}" ltype
- HsRecTy{} -> -- TODO
- briDocByExactInlineOnly "HsRecTy{}" ltype
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- HsExplicitListTy _ _ typs -> do
--#else /* ghc-8.0 */
-- HsExplicitListTy _ typs -> do
--#endif
- typDocs <- docSharedWrapper layoutType `mapM` typs
- hasComments <- hasAnyCommentsBelow ltype
- let specialCommaSep = appSep $ docLit $ Text.pack " ,"
-@@ -755,27 +743,20 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- #else
- HsTyLit lit -> case lit of
- #endif
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- HsNumTy (SourceText srctext) _ -> docLit $ Text.pack srctext
- HsNumTy NoSourceText _ ->
- error "overLitValBriDoc: literal with no SourceText"
- HsStrTy (SourceText srctext) _ -> docLit $ Text.pack srctext
- HsStrTy NoSourceText _ ->
- error "overLitValBriDoc: literal with no SourceText"
--#else /* ghc-8.0 */
-- HsNumTy srctext _ -> docLit $ Text.pack srctext
-- HsStrTy srctext _ -> docLit $ Text.pack srctext
--#endif
- #if !MIN_VERSION_ghc(8,6,0)
- HsCoreTy{} -> -- TODO
- briDocByExactInlineOnly "HsCoreTy{}" ltype
- #endif
- HsWildCardTy _ ->
- docLit $ Text.pack "_"
--#if MIN_VERSION_ghc(8,2,0) /* ghc-8.2 */
- HsSumTy{} -> -- TODO
- briDocByExactInlineOnly "HsSumTy{}" ltype
--#endif
- #if MIN_VERSION_ghc(8,6,0)
- HsStarTy _ isUnicode -> do
- if isUnicode
-diff --git a/src/Language/Haskell/Brittany/Internal/Prelude.hs b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-index a0757d8..79e2975 100644
---- a/src/Language/Haskell/Brittany/Internal/Prelude.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-@@ -1,4 +1,4 @@
--#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.0, ghc-8.2 */
-+#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.2 */
- {-# LANGUAGE TypeFamilies #-}
- #endif
-
-@@ -411,7 +411,7 @@ todo :: a
- todo = error "todo"
-
-
--#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.0, ghc-8.2 */
-+#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.2 */
- type family IdP p
- type instance IdP GhcPs = RdrName
-
-@@ -422,7 +422,7 @@ type GhcPs = RdrName
- #if MIN_VERSION_ghc(8,8,0)
- ghcDL :: GHC.HasSrcSpan a => a -> GHC.Located (GHC.SrcSpanLess a)
- ghcDL = GHC.dL
--#else /* ghc-8.0 8.2 8.4 8.6 */
-+#else /* ghc-8.2 8.4 8.6 */
- ghcDL :: GHC.Located a -> GHC.Located a
- ghcDL x = x
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Types.hs b/src/Language/Haskell/Brittany/Internal/Types.hs
-index 620a39b..f402e56 100644
---- a/src/Language/Haskell/Brittany/Internal/Types.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Types.hs
-@@ -32,9 +32,7 @@ data PerItemConfig = PerItemConfig
- { _icd_perBinding :: Map String (CConfig Option)
- , _icd_perKey :: Map ExactPrint.Types.AnnKey (CConfig Option)
- }
--#if MIN_VERSION_ghc(8,2,0)
- deriving Data.Data.Data
--#endif
-
- type PPM = MultiRWSS.MultiRWS
- '[Map ExactPrint.AnnKey ExactPrint.Anns, PerItemConfig, Config, ExactPrint.Anns]
-
-From 259c949211448eee97d5cb8e9db97e42e113235f Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Sun, 15 Nov 2020 11:32:34 -0500
-Subject: [PATCH 11/17] Drop support for GHC 8.2
-
----
- .github/workflows/ci.yaml | 3 --
- .travis.yml | 20 ---------
- Makefile | 7 +--
- README.md | 2 +-
- brittany.cabal | 6 +--
- .../Brittany/Internal/ExactPrintUtils.hs | 5 ---
- .../Brittany/Internal/Layouters/Decl.hs | 38 +++-------------
- .../Brittany/Internal/Layouters/Expr.hs | 44 ++++---------------
- .../Brittany/Internal/Layouters/Expr.hs-boot | 4 --
- .../Brittany/Internal/Layouters/Pattern.hs | 8 ++--
- .../Brittany/Internal/Layouters/Type.hs | 6 +--
- .../Haskell/Brittany/Internal/Prelude.hs | 17 +------
- .../Haskell/Brittany/Internal/Utils.hs | 2 -
- stack-8.2.2.yaml | 9 ----
- stack-8.2.2.yaml.lock | 33 --------------
- 15 files changed, 28 insertions(+), 176 deletions(-)
- delete mode 100644 stack-8.2.2.yaml
- delete mode 100644 stack-8.2.2.yaml.lock
-
-diff --git a/README.md b/README.md
-index b009a37..56f42f0 100644
---- a/README.md
-+++ b/README.md
-@@ -48,7 +48,7 @@ log the size of the input, but _not_ the full input/output of requests.)
-
- # Other usage notes
-
--- Supports GHC versions `8.2`, `8.4`, `8.6`, `8.8`.
-+- Supports GHC versions `8.4`, `8.6`, `8.8`.
- - included in stackage with lts>=10.0 (or nightlies dating to >=2017-11-15)
- - config (file) documentation is lacking.
- - some config values can not be configured via commandline yet.
-diff --git a/brittany.cabal b/brittany.cabal
-index 0c3ed7c..ffeb0f2 100644
---- a/brittany.cabal
-+++ b/brittany.cabal
-@@ -91,8 +91,8 @@ library {
- -fno-warn-redundant-constraints
- }
- build-depends:
-- { base >=4.10 && <4.15
-- , ghc >=8.2.1 && <8.11
-+ { base >=4.11 && <4.15
-+ , ghc >=8.4.1 && <8.11
- , ghc-paths >=0.1.0.9 && <0.2
- , ghc-exactprint >=0.5.8 && <0.6.4
- , transformers >=0.5.2.0 && <0.6
-@@ -118,7 +118,7 @@ library {
- , semigroups >=0.18.2 && <0.20
- , cmdargs >=0.10.14 && <0.11
- , czipwith >=1.0.1.0 && <1.1
-- , ghc-boot-th >=8.2.1 && <8.11
-+ , ghc-boot-th >=8.4.1 && <8.11
- , filepath >=1.4.1.0 && <1.5
- , random >= 1.1 && <1.2
- }
-diff --git a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-index 7c06f69..b7ac608 100644
---- a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-@@ -320,10 +320,5 @@ withTransformedAnns ast m = MultiRWSS.mGetRawR >>= \case
- in annsBalanced
-
-
--#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- warnExtractorCompat :: GHC.Warn -> String
- warnExtractorCompat (GHC.Warn _ (L _ s)) = s
--#else /* ghc-8.2 */
--warnExtractorCompat :: GenLocated l String -> String
--warnExtractorCompat (L _ s) = s
--#endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-index 4a86954..ae0b232 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-@@ -98,7 +98,7 @@ layoutSig :: ToBriDoc Sig
- layoutSig lsig@(L _loc sig) = case sig of
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- TypeSig _ names (HsWC _ (HsIB _ typ)) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- TypeSig names (HsWC _ (HsIB _ typ _)) -> layoutNamesAndType Nothing names typ
- #endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-@@ -124,7 +124,7 @@ layoutSig lsig@(L _loc sig) = case sig of
- <> Text.pack " #-}"
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ClassOpSig _ False names (HsIB _ typ) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- ClassOpSig False names (HsIB _ typ _) -> layoutNamesAndType Nothing names typ
- #endif
- #if MIN_VERSION_ghc(8,6,0)
-@@ -165,19 +165,11 @@ layoutSig lsig@(L _loc sig) = case sig of
-
- specStringCompat
- :: MonadMultiWriter [BrittanyError] m => LSig GhcPs -> InlineSpec -> m String
--#if MIN_VERSION_ghc(8,4,0)
- specStringCompat ast = \case
- NoUserInline -> mTell [ErrorUnknownNode "NoUserInline" ast] $> ""
- Inline -> pure "INLINE "
- Inlinable -> pure "INLINABLE "
- NoInline -> pure "NOINLINE "
--#else
--specStringCompat _ = \case
-- Inline -> pure "INLINE "
-- Inlinable -> pure "INLINABLE "
-- NoInline -> pure "NOINLINE "
-- EmptyInlineSpec -> pure ""
--#endif
-
- layoutGuardLStmt :: ToBriDoc' (Stmt GhcPs (LHsExpr GhcPs))
- layoutGuardLStmt lgstmt@(L _ stmtLR) = docWrapNode lgstmt $ case stmtLR of
-@@ -349,10 +341,8 @@ layoutPatternBind funId binderDoc lmatch@(L _ match) = do
- mIdStr <- case match of
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- Match _ (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
--#elif MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
-- Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
- #else
-- Match (FunRhs matchId _ _) _ _ _ -> Just <$> lrdrNameToTextAnn matchId
-+ Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
- #endif
- _ -> pure Nothing
- let mIdStr' = fixPatternBindIdentifier match <$> mIdStr
-@@ -774,28 +764,16 @@ layoutLPatSyn
- :: Located (IdP GhcPs)
- -> HsPatSynDetails (Located (IdP GhcPs))
- -> ToBriDocM BriDocNumbered
--#if MIN_VERSION_ghc(8,4,0)
- layoutLPatSyn name (PrefixCon vars) = do
--#else
--layoutLPatSyn name (PrefixPatSyn vars) = do
--#endif
- docName <- lrdrNameToTextAnn name
- names <- mapM lrdrNameToTextAnn vars
- docSeq . fmap appSep $ docLit docName : (docLit <$> names)
--#if MIN_VERSION_ghc(8,4,0)
- layoutLPatSyn name (InfixCon left right) = do
--#else
--layoutLPatSyn name (InfixPatSyn left right) = do
--#endif
- leftDoc <- lrdrNameToTextAnn left
- docName <- lrdrNameToTextAnn name
- rightDoc <- lrdrNameToTextAnn right
- docSeq . fmap (appSep . docLit) $ [leftDoc, docName, rightDoc]
--#if MIN_VERSION_ghc(8,4,0)
- layoutLPatSyn name (RecCon recArgs) = do
--#else
--layoutLPatSyn name (RecordPatSyn recArgs) = do
--#endif
- docName <- lrdrNameToTextAnn name
- args <- mapM (lrdrNameToTextAnn . recordPatSynSelectorId) recArgs
- docSeq . fmap docLit
-@@ -895,14 +873,14 @@ layoutTyVarBndr needsSep lbndr@(L _ bndr) = do
- #if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- XTyVarBndr{} -> error "brittany internal error: XTyVarBndr"
- UserTyVar _ name -> do
--#else /* 8.2 8.4 */
-+#else /* 8.4 */
- UserTyVar name -> do
- #endif
- nameStr <- lrdrNameToTextAnn name
- docSeq $ [docSeparator | needsSep] ++ [docLit nameStr]
- #if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- KindedTyVar _ name kind -> do
--#else /* 8.2 8.4 */
-+#else /* 8.4 */
- KindedTyVar name kind -> do
- #endif
- nameStr <- lrdrNameToTextAnn name
-@@ -939,14 +917,10 @@ layoutTyFamInstDecl inClass outerNode tfid = do
- FamEqn _ name pats _fixity typ = hsib_body $ tfid_eqn tfid
- bndrsMay = Nothing
- innerNode = outerNode
--#elif MIN_VERSION_ghc(8,4,0)
-+#else
- FamEqn name pats _fixity typ = hsib_body $ tfid_eqn tfid
- bndrsMay = Nothing
- innerNode = outerNode
--#else
-- innerNode@(L _ (TyFamEqn name boundPats _fixity typ)) = tfid_eqn tfid
-- bndrsMay = Nothing
-- pats = hsib_body boundPats
- #endif
- docWrapNodePrior outerNode $ do
- nameStr <- lrdrNameToTextAnn name
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-index 534496d..8c089c2 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-@@ -62,7 +62,7 @@ layoutExpr lexpr@(L _ expr) = do
- briDocByExactInlineOnly "HsRecFld" lexpr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsOverLabel _ext _reboundFromLabel name ->
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- HsOverLabel _reboundFromLabel name ->
- #endif
- let label = FastString.unpackFS name
-@@ -174,14 +174,14 @@ layoutExpr lexpr@(L _ expr) = do
- #endif
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ (L _ []) _) -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- HsLamCase (MG (L _ []) _ _ _) -> do
- #endif
- docSetParSpacing $ docAddBaseY BrIndentRegular $
- (docLit $ Text.pack "\\case {}")
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- HsLamCase (MG lmatches@(L _ matches) _ _ _) -> do
- #endif
- binderDoc <- docLit $ Text.pack "->"
-@@ -305,7 +305,7 @@ layoutExpr lexpr@(L _ expr) = do
- HsAppType XHsWildCardBndrs{} _ ->
- error "brittany internal error: HsAppType XHsWildCardBndrs"
- HsAppType (HsWC _ ty1) exp1 -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- HsAppType exp1 (HsWC _ ty1) -> do
- #endif
- t <- docSharedWrapper layoutType ty1
-@@ -321,7 +321,7 @@ layoutExpr lexpr@(L _ expr) = do
- e
- (docSeq [docLit $ Text.pack "@", t ])
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
- HsAppTypeOut{} -> do
- -- TODO
- briDocByExactInlineOnly "HsAppTypeOut{}" lexpr
-@@ -960,7 +960,7 @@ layoutExpr lexpr@(L _ expr) = do
- in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN] ++ [end]
- ExplicitList _ _ [] ->
- docLit $ Text.pack "[]"
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
- ExplicitPArr{} -> do
- -- TODO
- briDocByExactInlineOnly "ExplicitPArr{}" lexpr
-@@ -1044,7 +1044,7 @@ layoutExpr lexpr@(L _ expr) = do
- ExprWithTySig XHsWildCardBndrs{} _ ->
- error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
- ExprWithTySig (HsWC _ (HsIB _ typ1)) exp1 -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- ExprWithTySig exp1 (HsWC _ (HsIB _ typ1 _)) -> do
- #endif
- expDoc <- docSharedWrapper layoutExpr exp1
-@@ -1054,7 +1054,7 @@ layoutExpr lexpr@(L _ expr) = do
- , appSep $ docLit $ Text.pack "::"
- , typDoc
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
- ExprWithTySigOut{} -> do
- -- TODO
- briDocByExactInlineOnly "ExprWithTySigOut{}" lexpr
-@@ -1103,7 +1103,7 @@ layoutExpr lexpr@(L _ expr) = do
- ]
- ArithSeq{} ->
- briDocByExactInlineOnly "ArithSeq" lexpr
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.2 8.4 */
-+#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
- PArrSeq{} -> do
- -- TODO
- briDocByExactInlineOnly "PArrSeq{}" lexpr
-@@ -1331,7 +1331,6 @@ recordExpression dotdot indentPolicy lexpr nameDoc rFs@(rF1:rFr) = do
- in [line1] ++ lineR ++ [dotdotLine, lineN]
- )
-
--#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- litBriDoc :: HsLit GhcPs -> BriDocFInt
- litBriDoc = \case
- HsChar (SourceText t) _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-@@ -1355,28 +1354,3 @@ overLitValBriDoc = \case
- HsFractional (FL (SourceText t) _ _) -> BDFLit $ Text.pack t
- HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
- _ -> error "overLitValBriDoc: literal with no SourceText"
--#else /* ghc-8.2 */
--litBriDoc :: HsLit -> BriDocFInt
--litBriDoc = \case
-- HsChar (SourceText t) _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-- HsCharPrim (SourceText t) _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
-- HsString (SourceText t) _fastString -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ FastString.unpackFS fastString
-- HsStringPrim (SourceText t) _byteString -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ Data.ByteString.Char8.unpack byteString
-- HsInt (SourceText t) _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsIntPrim (SourceText t) _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsWordPrim (SourceText t) _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsInt64Prim (SourceText t) _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsWord64Prim (SourceText t) _i -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsInteger (SourceText t) _i _type -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ show i
-- HsRat (FL t _) _type -> BDFLit $ Text.pack t
-- HsFloatPrim (FL t _) -> BDFLit $ Text.pack t
-- HsDoublePrim (FL t _) -> BDFLit $ Text.pack t
-- _ -> error "litBriDoc: literal with no SourceText"
--
--overLitValBriDoc :: OverLitVal -> BriDocFInt
--overLitValBriDoc = \case
-- HsIntegral (SourceText t) _ -> BDFLit $ Text.pack t
-- HsFractional (FL t _) -> BDFLit $ Text.pack t
-- HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
-- _ -> error "overLitValBriDoc: literal with no SourceText"
--#endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-index 606790b..e3be109 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs-boot
-@@ -28,10 +28,6 @@ layoutExpr :: ToBriDoc HsExpr
-
- -- layoutStmt :: ToBriDoc' (StmtLR GhcPs GhcPs (LHsExpr GhcPs))
-
--#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- litBriDoc :: HsLit GhcPs -> BriDocFInt
--#else /* ghc-8.2 */
--litBriDoc :: HsLit -> BriDocFInt
--#endif
-
- overLitValBriDoc :: OverLitVal -> BriDocFInt
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-index b0b13f2..fb0ba51 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-@@ -50,14 +50,14 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- -- _ -> expr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- VarPat _ n ->
--#else /* ghc-8.2 8.4 */
-+#else /* ghc-8.4 */
- VarPat n ->
- #endif
- fmap Seq.singleton $ docLit $ lrdrNameToText n
- -- abc -> expr
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LitPat _ lit ->
--#else /* ghc-8.2 8.4 */
-+#else /* ghc-8.4 */
- LitPat lit ->
- #endif
- fmap Seq.singleton $ allocateNode $ litBriDoc lit
-@@ -66,7 +66,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- ParPat _ inner -> do
- #elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ParPat _ inner -> do
--#else /* ghc-8.2 8.4 */
-+#else /* ghc-8.4 */
- ParPat inner -> do
- #endif
- -- (nestedpat) -> expr
-@@ -202,7 +202,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- SigPat _ pat1 (HsWC _ (HsIB _ ty1)) -> do
- #elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- SigPat (HsWC _ (HsIB _ ty1)) pat1 -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- SigPatIn pat1 (HsWC _ (HsIB _ ty1 _)) -> do
- #endif
- -- i :: Int -> expr
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-index 2060904..a2b55d7 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-@@ -44,14 +44,14 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- _ | traceShow (ExactPrint.Types.mkAnnKey ltype) False -> error "impossible"
- #if MIN_VERSION_ghc(8,6,0)
- HsTyVar _ promoted name -> do
--#else /* ghc-8.2 ghc-8.4 */
-+#else /* ghc-8.4 */
- HsTyVar promoted name -> do
- #endif
- t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
- case promoted of
- #if MIN_VERSION_ghc(8,8,0)
- IsPromoted -> docSeq
--#else /* ghc-8.2 8.4 8.6 */
-+#else /* ghc-8.4 8.6 */
- Promoted -> docSeq
- #endif
- [ docSeparator
-@@ -541,7 +541,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- }
- #if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIParamTy _ (L _ (HsIPName ipName)) typ1 -> do
--#else /* ghc-8.2 */
-+#else /* ghc-8.4 */
- HsIParamTy (L _ (HsIPName ipName)) typ1 -> do
- #endif
- typeDoc1 <- docSharedWrapper layoutType typ1
-diff --git a/src/Language/Haskell/Brittany/Internal/Prelude.hs b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-index 79e2975..e9a6979 100644
---- a/src/Language/Haskell/Brittany/Internal/Prelude.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-@@ -1,8 +1,3 @@
--#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.2 */
--{-# LANGUAGE TypeFamilies #-}
--#endif
--
--
- module Language.Haskell.Brittany.Internal.Prelude
- ( module E
- , module Language.Haskell.Brittany.Internal.Prelude
-@@ -16,9 +11,7 @@ where
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- import GHC.Hs.Extension as E ( GhcPs )
- #else
--# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- import HsExtension as E ( GhcPs )
--# endif /* ghc-8.4 */
- #endif /* ghc-8.10.1 */
-
- import RdrName as E ( RdrName )
-@@ -411,18 +404,10 @@ todo :: a
- todo = error "todo"
-
-
--#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.2 */
--type family IdP p
--type instance IdP GhcPs = RdrName
--
--type GhcPs = RdrName
--#endif
--
--
- #if MIN_VERSION_ghc(8,8,0)
- ghcDL :: GHC.HasSrcSpan a => a -> GHC.Located (GHC.SrcSpanLess a)
- ghcDL = GHC.dL
--#else /* ghc-8.2 8.4 8.6 */
-+#else /* ghc-8.4 8.6 */
- ghcDL :: GHC.Located a -> GHC.Located a
- ghcDL x = x
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Utils.hs b/src/Language/Haskell/Brittany/Internal/Utils.hs
-index 0a0d31f..4b4061e 100644
---- a/src/Language/Haskell/Brittany/Internal/Utils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Utils.hs
-@@ -62,9 +62,7 @@ import qualified Data.Generics.Uniplate.Direct as Uniplate
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- import qualified GHC.Hs.Extension as HsExtension
- #else
--# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
- import qualified HsExtension
--# endif /* ghc-8.4 */
- #endif /* ghc-8.10.1 */
-
-
-
-From e36d9bc465a4b1241812d5137d11b0cec3954548 Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Sun, 15 Nov 2020 11:56:19 -0500
-Subject: [PATCH 12/17] Drop support for GHC 8.4
-
----
- .github/workflows/ci.yaml | 3 -
- .travis.yml | 6 -
- Makefile | 7 +-
- README.md | 2 +-
- brittany.cabal | 6 +-
- src/Language/Haskell/Brittany/Internal.hs | 18 --
- .../Brittany/Internal/ExactPrintUtils.hs | 8 -
- .../Brittany/Internal/Layouters/DataDecl.hs | 46 ----
- .../Brittany/Internal/Layouters/Decl.hs | 123 +----------
- .../Brittany/Internal/Layouters/Expr.hs | 197 +-----------------
- .../Haskell/Brittany/Internal/Layouters/IE.hs | 24 ---
- .../Brittany/Internal/Layouters/Import.hs | 4 -
- .../Brittany/Internal/Layouters/Pattern.hs | 48 +----
- .../Brittany/Internal/Layouters/Stmt.hs | 20 --
- .../Brittany/Internal/Layouters/Type.hs | 153 +-------------
- .../Haskell/Brittany/Internal/Prelude.hs | 2 +-
- .../Haskell/Brittany/Internal/Utils.hs | 5 +-
- stack-8.4.3.yaml | 4 -
- stack-8.4.3.yaml.lock | 19 --
- 19 files changed, 19 insertions(+), 676 deletions(-)
- delete mode 100644 stack-8.4.3.yaml
- delete mode 100644 stack-8.4.3.yaml.lock
-
-diff --git a/README.md b/README.md
-index 56f42f0..eec9c4c 100644
---- a/README.md
-+++ b/README.md
-@@ -48,7 +48,7 @@ log the size of the input, but _not_ the full input/output of requests.)
-
- # Other usage notes
-
--- Supports GHC versions `8.4`, `8.6`, `8.8`.
-+- Supports GHC versions `8.6`, `8.8`.
- - included in stackage with lts>=10.0 (or nightlies dating to >=2017-11-15)
- - config (file) documentation is lacking.
- - some config values can not be configured via commandline yet.
-diff --git a/brittany.cabal b/brittany.cabal
-index ffeb0f2..cd541fb 100644
---- a/brittany.cabal
-+++ b/brittany.cabal
-@@ -91,8 +91,8 @@ library {
- -fno-warn-redundant-constraints
- }
- build-depends:
-- { base >=4.11 && <4.15
-- , ghc >=8.4.1 && <8.11
-+ { base >=4.12 && <4.15
-+ , ghc >=8.6.1 && <8.11
- , ghc-paths >=0.1.0.9 && <0.2
- , ghc-exactprint >=0.5.8 && <0.6.4
- , transformers >=0.5.2.0 && <0.6
-@@ -118,7 +118,7 @@ library {
- , semigroups >=0.18.2 && <0.20
- , cmdargs >=0.10.14 && <0.11
- , czipwith >=1.0.1.0 && <1.1
-- , ghc-boot-th >=8.4.1 && <8.11
-+ , ghc-boot-th >=8.6.1 && <8.11
- , filepath >=1.4.1.0 && <1.5
- , random >= 1.1 && <1.2
- }
-diff --git a/src/Language/Haskell/Brittany/Internal.hs b/src/Language/Haskell/Brittany/Internal.hs
-index 1fc3e12..57e6e8f 100644
---- a/src/Language/Haskell/Brittany/Internal.hs
-+++ b/src/Language/Haskell/Brittany/Internal.hs
-@@ -518,17 +518,10 @@ ppModule lmod@(L _loc _m@(HsModule _name _exports _ decls _ _)) = do
- _ -> return ()
-
- getDeclBindingNames :: LHsDecl GhcPs -> [String]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- getDeclBindingNames (L _ decl) = case decl of
- SigD _ (TypeSig _ ns _) -> ns <&> \(L _ n) -> Text.unpack (rdrNameToText n)
- ValD _ (FunBind _ (L _ n) _ _ _) -> [Text.unpack $ rdrNameToText n]
- _ -> []
--#else
--getDeclBindingNames (L _ decl) = case decl of
-- SigD (TypeSig ns _) -> ns <&> \(L _ n) -> Text.unpack (rdrNameToText n)
-- ValD (FunBind (L _ n) _ _ _ _) -> [Text.unpack $ rdrNameToText n]
-- _ -> []
--#endif
-
-
- -- Prints the information associated with the module annotation
-@@ -586,26 +579,15 @@ ppPreamble lmod@(L loc m@(HsModule _ _ _ _ _ _)) = do
-
- _sigHead :: Sig GhcPs -> String
- _sigHead = \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- TypeSig _ names _ ->
--#else
-- TypeSig names _ ->
--#endif
- "TypeSig " ++ intercalate "," (Text.unpack . lrdrNameToText <$> names)
- _ -> "unknown sig"
-
- _bindHead :: HsBind GhcPs -> String
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- _bindHead = \case
- FunBind _ fId _ _ [] -> "FunBind " ++ (Text.unpack $ lrdrNameToText $ fId)
- PatBind _ _pat _ ([], []) -> "PatBind smth"
- _ -> "unknown bind"
--#else
--_bindHead = \case
-- FunBind fId _ _ _ [] -> "FunBind " ++ (Text.unpack $ lrdrNameToText $ fId)
-- PatBind _pat _ _ _ ([], []) -> "PatBind smth"
-- _ -> "unknown bind"
--#endif
-
-
-
-diff --git a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-index b7ac608..29c126f 100644
---- a/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/ExactPrintUtils.hs
-@@ -212,17 +212,9 @@ commentAnnFixTransform modul = SYB.everything (>>) genF modul
- genF = (\_ -> return ()) `SYB.extQ` exprF
- exprF :: Located (HsExpr GhcPs) -> ExactPrint.Transform ()
- exprF lexpr@(L _ expr) = case expr of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- RecordCon _ _ (HsRecFields fs@(_:_) Nothing) ->
--#else
-- RecordCon _ _ _ (HsRecFields fs@(_:_) Nothing) ->
--#endif
- moveTrailingComments lexpr (List.last fs)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- RecordUpd _ _e fs@(_:_) ->
--#else
-- RecordUpd _e fs@(_:_) _cons _ _ _ ->
--#endif
- moveTrailingComments lexpr (List.last fs)
- _ -> return ()
-
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-index 74b6d53..22f11d4 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/DataDecl.hs
-@@ -44,20 +44,11 @@ layoutDataDecl
- -> LHsQTyVars GhcPs
- -> HsDataDefn GhcPs
- -> ToBriDocM BriDocNumbered
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- layoutDataDecl _ _ (XLHsQTyVars ext) _ = absurdExt ext
- layoutDataDecl ltycl name (HsQTvs _ bndrs) defn = case defn of
--#else
--layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
--#endif
- -- newtype MyType a b = MyType ..
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsDataDefn _ext NewType (L _ []) _ctype Nothing [cons] mDerivs -> case cons of
- (L _ (ConDeclH98 _ext consName (L _ False) _qvars (Just (L _ [])) details _conDoc)) ->
--#else
-- HsDataDefn NewType (L _ []) _ctype Nothing [cons] mDerivs -> case cons of
-- (L _ (ConDeclH98 consName Nothing (Just (L _ [])) details _conDoc)) ->
--#endif
- docWrapNode ltycl $ do
- nameStr <- lrdrNameToTextAnn name
- consNameStr <- lrdrNameToTextAnn consName
-@@ -82,11 +73,7 @@ layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
-
- -- data MyData a b
- -- (zero constructors)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [] mDerivs ->
--#else
-- HsDataDefn DataType (L _ lhsContext) _ctype Nothing [] mDerivs ->
--#endif
- docWrapNode ltycl $ do
- lhsContextDoc <- docSharedWrapper createContextDoc lhsContext
- nameStr <- lrdrNameToTextAnn name
-@@ -100,17 +87,9 @@ layoutDataDecl ltycl name (HsQTvs _ bndrs _) defn = case defn of
-
- -- data MyData = MyData ..
- -- data MyData = MyData { .. }
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsDataDefn _ext DataType (L _ lhsContext) _ctype Nothing [cons] mDerivs ->
--#else
-- HsDataDefn DataType (L _ lhsContext) _ctype Nothing [cons] mDerivs ->
--#endif
- case cons of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- (L _ (ConDeclH98 _ext consName (L _ _hasExt) qvars mRhsContext details _conDoc)) ->
--#else
-- (L _ (ConDeclH98 consName (Just (HsQTvs _ qvars _)) mRhsContext details _conDoc)) ->
--#endif
- docWrapNode ltycl $ do
- lhsContextDoc <- docSharedWrapper createContextDoc lhsContext
- nameStr <- lrdrNameToTextAnn name
-@@ -266,18 +245,11 @@ createContextDoc (t1 : tR) = do
- createBndrDoc :: [LHsTyVarBndr GhcPs] -> ToBriDocM BriDocNumbered
- createBndrDoc bs = do
- tyVarDocs <- bs `forM` \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- (L _ (UserTyVar _ext vname)) -> return $ (lrdrNameToText vname, Nothing)
- (L _ (KindedTyVar _ext lrdrName kind)) -> do
--#else
-- (L _ (UserTyVar vname)) -> return $ (lrdrNameToText vname, Nothing)
-- (L _ (KindedTyVar lrdrName kind)) -> do
--#endif
- d <- docSharedWrapper layoutType kind
- return $ (lrdrNameToText lrdrName, Just $ d)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- (L _ (XTyVarBndr ext)) -> absurdExt ext
--#endif
- docSeq
- $ List.intersperse docSeparator
- $ tyVarDocs
-@@ -307,12 +279,8 @@ createDerivingPar derivs mainDoc = do
- <$> types
-
- derivingClauseDoc :: LHsDerivingClause GhcPs -> ToBriDocM BriDocNumbered
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- derivingClauseDoc (L _ (XHsDerivingClause ext)) = absurdExt ext
- derivingClauseDoc (L _ (HsDerivingClause _ext mStrategy types)) = case types of
--#else
--derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
--#endif
- (L _ []) -> docSeq []
- (L _ ts) ->
- let
-@@ -330,12 +298,8 @@ derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
- $ docSeq
- $ List.intersperse docCommaSep
- $ ts <&> \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIB _ t -> layoutType t
- XHsImplicitBndrs x -> absurdExt x
--#else
-- HsIB _ t _ -> layoutType t
--#endif
- , whenMoreThan1Type ")"
- , rhsStrategy
- ]
-@@ -344,7 +308,6 @@ derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
- (L _ StockStrategy ) -> (docLitS " stock", docEmpty)
- (L _ AnyclassStrategy ) -> (docLitS " anyclass", docEmpty)
- (L _ NewtypeStrategy ) -> (docLitS " newtype", docEmpty)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- lVia@(L _ (ViaStrategy viaTypes) ) ->
- ( docEmpty
- , case viaTypes of
-@@ -355,7 +318,6 @@ derivingClauseDoc (L _ (HsDerivingClause mStrategy types)) = case types of
- ]
- XHsImplicitBndrs ext -> absurdExt ext
- )
--#endif
-
- docDeriving :: ToBriDocM BriDocNumbered
- docDeriving = docLitS "deriving"
-@@ -473,12 +435,8 @@ createDetailsDoc consNameStr details = case details of
- :: [LConDeclField GhcPs]
- -> [(ToBriDocM BriDocNumbered, ToBriDocM BriDocNumbered)]
- mkFieldDocs = fmap $ \lField -> case lField of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- L _ (ConDeclField _ext names t _) -> createNamesAndTypeDoc lField names t
- L _ (XConDeclField x) -> absurdExt x
--#else
-- L _ (ConDeclField names t _) -> createNamesAndTypeDoc lField names t
--#endif
-
- createForallDoc :: [LHsTyVarBndr GhcPs] -> Maybe (ToBriDocM BriDocNumbered)
- createForallDoc [] = Nothing
-@@ -497,12 +455,8 @@ createNamesAndTypeDoc lField names t =
- $ List.intersperse docCommaSep
- $ names
- <&> \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- L _ (XFieldOcc x) -> absurdExt x
- L _ (FieldOcc _ fieldName) ->
--#else
-- L _ (FieldOcc fieldName _) ->
--#endif
- docLit =<< lrdrNameToTextAnn fieldName
- ]
- , docWrapNodeRest lField $ layoutType t
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-index ae0b232..f6f59a4 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Decl.hs
-@@ -40,7 +40,7 @@ import qualified FastString
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- import GHC.Hs
- import GHC.Hs.Extension (NoExtField (..))
--#elif MIN_VERSION_ghc(8,6,0)
-+#else
- import HsSyn
- import HsExtension (NoExt (..))
- #endif
-@@ -65,7 +65,6 @@ import Data.Char (isUpper)
-
-
- layoutDecl :: ToBriDoc HsDecl
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- layoutDecl d@(L loc decl) = case decl of
- SigD _ sig -> withTransformedAnns d $ layoutSig (L loc sig)
- ValD _ bind -> withTransformedAnns d $ layoutBind (L loc bind) >>= \case
-@@ -77,18 +76,6 @@ layoutDecl d@(L loc decl) = case decl of
- InstD _ (ClsInstD _ inst) ->
- withTransformedAnns d $ layoutClsInst (L loc inst)
- _ -> briDocByExactNoComment d
--#else
--layoutDecl d@(L loc decl) = case decl of
-- SigD sig -> withTransformedAnns d $ layoutSig (L loc sig)
-- ValD bind -> withTransformedAnns d $ layoutBind (L loc bind) >>= \case
-- Left ns -> docLines $ return <$> ns
-- Right n -> return n
-- TyClD tycl -> withTransformedAnns d $ layoutTyCl (L loc tycl)
-- InstD (TyFamInstD tfid) ->
-- withTransformedAnns d $ layoutTyFamInstDecl False d tfid
-- InstD (ClsInstD inst) -> withTransformedAnns d $ layoutClsInst (L loc inst)
-- _ -> briDocByExactNoComment d
--#endif
-
- --------------------------------------------------------------------------------
- -- Sig
-@@ -96,16 +83,8 @@ layoutDecl d@(L loc decl) = case decl of
-
- layoutSig :: ToBriDoc Sig
- layoutSig lsig@(L _loc sig) = case sig of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- TypeSig _ names (HsWC _ (HsIB _ typ)) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.4 */
-- TypeSig names (HsWC _ (HsIB _ typ _)) -> layoutNamesAndType Nothing names typ
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- InlineSig _ name (InlinePragma _ spec _arity phaseAct conlike) ->
--#else
-- InlineSig name (InlinePragma _ spec _arity phaseAct conlike) ->
--#endif
- docWrapNode lsig $ do
- nameStr <- lrdrNameToTextAnn name
- specStr <- specStringCompat lsig spec
-@@ -122,16 +101,8 @@ layoutSig lsig@(L _loc sig) = case sig of
- $ Text.pack ("{-# " ++ specStr ++ conlikeStr ++ phaseStr)
- <> nameStr
- <> Text.pack " #-}"
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ClassOpSig _ False names (HsIB _ typ) -> layoutNamesAndType Nothing names typ
--#else /* ghc-8.4 */
-- ClassOpSig False names (HsIB _ typ _) -> layoutNamesAndType Nothing names typ
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- PatSynSig _ names (HsIB _ typ) -> layoutNamesAndType (Just "pattern") names typ
--#else
-- PatSynSig names (HsIB _ typ _) -> layoutNamesAndType (Just "pattern") names typ
--#endif
- _ -> briDocByExactNoComment lsig -- TODO
- where
- layoutNamesAndType mKeyword names typ = docWrapNode lsig $ do
-@@ -173,16 +144,8 @@ specStringCompat ast = \case
-
- layoutGuardLStmt :: ToBriDoc' (Stmt GhcPs (LHsExpr GhcPs))
- layoutGuardLStmt lgstmt@(L _ stmtLR) = docWrapNode lgstmt $ case stmtLR of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- BodyStmt _ body _ _ -> layoutExpr body
--#else
-- BodyStmt body _ _ _ -> layoutExpr body
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- BindStmt _ lPat expr _ _ -> do
--#else
-- BindStmt lPat expr _ _ _ -> do
--#endif
- patDoc <- docSharedWrapper layoutPat lPat
- expDoc <- docSharedWrapper layoutExpr expr
- docCols ColBindStmt
-@@ -201,11 +164,7 @@ layoutBind
- (HsBindLR GhcPs GhcPs)
- (Either [BriDocNumbered] BriDocNumbered)
- layoutBind lbind@(L _ bind) = case bind of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- FunBind _ fId (MG _ lmatches@(L _ matches) _) _ [] -> do
--#else
-- FunBind fId (MG lmatches@(L _ matches) _ _ _) _ _ [] -> do
--#endif
- idStr <- lrdrNameToTextAnn fId
- binderDoc <- docLit $ Text.pack "="
- funcPatDocs <-
-@@ -214,11 +173,7 @@ layoutBind lbind@(L _ bind) = case bind of
- $ layoutPatternBind (Just idStr) binderDoc
- `mapM` matches
- return $ Left $ funcPatDocs
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- PatBind _ pat (GRHSs _ grhss whereBinds) ([], []) -> do
--#else
-- PatBind pat (GRHSs grhss whereBinds) _ _ ([], []) -> do
--#endif
- patDocs <- colsWrapPat =<< layoutPat pat
- clauseDocs <- layoutGrhs `mapM` grhss
- mWhereDocs <- layoutLocalBinds whereBinds
-@@ -233,10 +188,8 @@ layoutBind lbind@(L _ bind) = case bind of
- hasComments
- #if MIN_VERSION_ghc(8,8,0)
- PatSynBind _ (PSB _ patID lpat rpat dir) -> do
--#elif MIN_VERSION_ghc(8,6,0)
-- PatSynBind _ (PSB _ patID lpat rpat dir) -> do
- #else
-- PatSynBind (PSB patID _ lpat rpat dir) -> do
-+ PatSynBind _ (PSB _ patID lpat rpat dir) -> do
- #endif
- fmap Right $ docWrapNode lbind $ layoutPatSynBind patID
- lpat
-@@ -245,14 +198,9 @@ layoutBind lbind@(L _ bind) = case bind of
- _ -> Right <$> unknownNodeError "" lbind
- layoutIPBind :: ToBriDoc IPBind
- layoutIPBind lipbind@(L _ bind) = case bind of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- XIPBind{} -> unknownNodeError "XIPBind" lipbind
- IPBind _ (Right _) _ -> error "brittany internal error: IPBind Right"
- IPBind _ (Left (L _ (HsIPName name))) expr -> do
--#else
-- IPBind (Right _) _ -> error "brittany internal error: IPBind Right"
-- IPBind (Left (L _ (HsIPName name))) expr -> do
--#endif
- ipName <- docLit $ Text.pack $ '?' : FastString.unpackFS name
- binderDoc <- docLit $ Text.pack "="
- exprDoc <- layoutExpr expr
-@@ -274,11 +222,7 @@ layoutLocalBinds lbinds@(L _ binds) = case binds of
- -- Just . (>>= either id return) . Data.Foldable.toList <$> mapBagM layoutBind lhsBindsLR -- TODO: fix ordering
- -- x@(HsValBinds (ValBindsIn{})) ->
- -- Just . (:[]) <$> unknownNodeError "HsValBinds (ValBindsIn _ (_:_))" x
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsValBinds _ (ValBinds _ bindlrs sigs) -> do
--#else
-- HsValBinds (ValBindsIn bindlrs sigs) -> do
--#endif
- let unordered =
- [ BagBind b | b <- Data.Foldable.toList bindlrs ]
- ++ [ BagSig s | s <- sigs ]
-@@ -287,23 +231,12 @@ layoutLocalBinds lbinds@(L _ binds) = case binds of
- BagBind b -> either id return <$> layoutBind b
- BagSig s -> return <$> layoutSig s
- return $ Just $ docs
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- -- x@(HsValBinds (ValBindsOut _binds _lsigs)) ->
- HsValBinds _ (XValBindsLR{}) -> error "brittany internal error: XValBindsLR"
- XHsLocalBindsLR{} -> error "brittany internal error: XHsLocalBindsLR"
--#else
-- x@(HsValBinds (ValBindsOut _binds _lsigs)) ->
-- -- i _think_ this case never occurs in non-processed ast
-- Just . (: []) <$> unknownNodeError "HsValBinds ValBindsOut{}"
-- (L noSrcSpan x)
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- x@(HsIPBinds _ XHsIPBinds{}) ->
- Just . (: []) <$> unknownNodeError "XHsIPBinds" (L noSrcSpan x)
- HsIPBinds _ (IPBinds _ bb) ->
--#else
-- HsIPBinds (IPBinds bb _) ->
--#endif
- Just <$> mapM layoutIPBind bb
- EmptyLocalBinds{} -> return $ Nothing
-
-@@ -312,17 +245,11 @@ layoutLocalBinds lbinds@(L _ binds) = case binds of
- layoutGrhs
- :: LGRHS GhcPs (LHsExpr GhcPs)
- -> ToBriDocM ([BriDocNumbered], BriDocNumbered, LHsExpr GhcPs)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- layoutGrhs lgrhs@(L _ (GRHS _ guards body)) = do
--#else
--layoutGrhs lgrhs@(L _ (GRHS guards body)) = do
--#endif
- guardDocs <- docWrapNode lgrhs $ layoutStmt `mapM` guards
- bodyDoc <- layoutExpr body
- return (guardDocs, bodyDoc, body)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- layoutGrhs (L _ (XGRHS{})) = error "brittany internal error: XGRHS"
--#endif
-
- layoutPatternBind
- :: Maybe Text
-@@ -331,19 +258,11 @@ layoutPatternBind
- -> ToBriDocM BriDocNumbered
- layoutPatternBind funId binderDoc lmatch@(L _ match) = do
- let pats = m_pats match
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let (GRHSs _ grhss whereBinds) = m_grhss match
--#else
-- let (GRHSs grhss whereBinds) = m_grhss match
--#endif
- patDocs <- pats `forM` \p -> fmap return $ colsWrapPat =<< layoutPat p
- let isInfix = isInfixMatch match
- mIdStr <- case match of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- Match _ (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
--#else
-- Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
--#endif
- _ -> pure Nothing
- let mIdStr' = fixPatternBindIdentifier match <$> mIdStr
- patDoc <- docWrapNodePrior lmatch $ case (mIdStr', patDocs) of
-@@ -785,11 +704,7 @@ layoutLPatSyn name (RecCon recArgs) = do
- -- pattern synonyms
- layoutPatSynWhere :: HsPatSynDir GhcPs -> ToBriDocM (Maybe [ToBriDocM BriDocNumbered])
- layoutPatSynWhere hs = case hs of
--#if MIN_VERSION_ghc(8,6,0)
- ExplicitBidirectional (MG _ (L _ lbinds) _) -> do
--#else
-- ExplicitBidirectional (MG (L _ lbinds) _ _ _) -> do
--#endif
- binderDoc <- docLit $ Text.pack "="
- Just <$> mapM (docSharedWrapper $ layoutPatternBind Nothing binderDoc) lbinds
- _ -> pure Nothing
-@@ -800,17 +715,10 @@ layoutPatSynWhere hs = case hs of
-
- layoutTyCl :: ToBriDoc TyClDecl
- layoutTyCl ltycl@(L _loc tycl) = case tycl of
--#if MIN_VERSION_ghc(8,6,0)
- SynDecl _ name vars fixity typ -> do
- let isInfix = case fixity of
- Prefix -> False
- Infix -> True
--#else
-- SynDecl name vars fixity typ _ -> do
-- let isInfix = case fixity of
-- Prefix -> False
-- Infix -> True
--#endif
- -- hasTrailingParen <- hasAnnKeywordComment ltycl AnnCloseP
- -- let parenWrapper = if hasTrailingParen
- -- then appSep . docWrapNodeRest ltycl
-@@ -818,11 +726,7 @@ layoutTyCl ltycl@(L _loc tycl) = case tycl of
- let wrapNodeRest = docWrapNodeRest ltycl
- docWrapNodePrior ltycl
- $ layoutSynDecl isInfix wrapNodeRest name (hsq_explicit vars) typ
--#if MIN_VERSION_ghc(8,6,0)
- DataDecl _ext name tyVars _ dataDefn ->
--#else
-- DataDecl name tyVars _ dataDefn _ _ ->
--#endif
- layoutDataDecl ltycl name tyVars dataDefn
- _ -> briDocByExactNoComment ltycl
-
-@@ -870,19 +774,11 @@ layoutSynDecl isInfix wrapNodeRest name vars typ = do
- layoutTyVarBndr :: Bool -> ToBriDoc HsTyVarBndr
- layoutTyVarBndr needsSep lbndr@(L _ bndr) = do
- docWrapNodePrior lbndr $ case bndr of
--#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- XTyVarBndr{} -> error "brittany internal error: XTyVarBndr"
- UserTyVar _ name -> do
--#else /* 8.4 */
-- UserTyVar name -> do
--#endif
- nameStr <- lrdrNameToTextAnn name
- docSeq $ [docSeparator | needsSep] ++ [docLit nameStr]
--#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
- KindedTyVar _ name kind -> do
--#else /* 8.4 */
-- KindedTyVar name kind -> do
--#endif
- nameStr <- lrdrNameToTextAnn name
- docSeq
- $ [ docSeparator | needsSep ]
-@@ -913,12 +809,8 @@ layoutTyFamInstDecl inClass outerNode tfid = do
- -- bndrsMay isJust e.g. with
- -- type instance forall a . MyType (Maybe a) = Either () a
- innerNode = outerNode
--#elif MIN_VERSION_ghc(8,6,0)
-- FamEqn _ name pats _fixity typ = hsib_body $ tfid_eqn tfid
-- bndrsMay = Nothing
-- innerNode = outerNode
- #else
-- FamEqn name pats _fixity typ = hsib_body $ tfid_eqn tfid
-+ FamEqn _ name pats _fixity typ = hsib_body $ tfid_eqn tfid
- bndrsMay = Nothing
- innerNode = outerNode
- #endif
-@@ -996,20 +888,13 @@ layoutClsInst lcid@(L _ cid) = docLines
- . ClsInstD NoExtField
- . removeChildren
- <$> lcid
--#elif MIN_VERSION_ghc(8,6,0) /* 8.6 */
-+#else
- layoutInstanceHead =
- briDocByExactNoComment
- $ InstD NoExt
- . ClsInstD NoExt
- . removeChildren
- <$> lcid
--#else
-- layoutInstanceHead =
-- briDocByExactNoComment
-- $ InstD
-- . ClsInstD
-- . removeChildren
-- <$> lcid
- #endif
-
- removeChildren :: ClsInstDecl p -> ClsInstDecl p
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-index 8c089c2..ae514f1 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs
-@@ -44,65 +44,29 @@ layoutExpr lexpr@(L _ expr) = do
- .> confUnpack
- let allowFreeIndent = indentPolicy == IndentPolicyFree
- docWrapNode lexpr $ case expr of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsVar _ vname -> do
--#else
-- HsVar vname -> do
--#endif
- docLit =<< lrdrNameToTextAnn vname
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsUnboundVar _ var -> case var of
--#else
-- HsUnboundVar var -> case var of
--#endif
- OutOfScope oname _ -> docLit $ Text.pack $ occNameString oname
- TrueExprHole oname -> docLit $ Text.pack $ occNameString oname
- HsRecFld{} -> do
- -- TODO
- briDocByExactInlineOnly "HsRecFld" lexpr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsOverLabel _ext _reboundFromLabel name ->
--#else /* ghc-8.4 */
-- HsOverLabel _reboundFromLabel name ->
--#endif
- let label = FastString.unpackFS name
- in docLit . Text.pack $ '#' : label
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIPVar _ext (HsIPName name) ->
--#else
-- HsIPVar (HsIPName name) ->
--#endif
- let label = FastString.unpackFS name
- in docLit . Text.pack $ '?' : label
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsOverLit _ olit -> do
--#else
-- HsOverLit olit -> do
--#endif
- allocateNode $ overLitValBriDoc $ ol_val olit
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLit _ lit -> do
--#else
-- HsLit lit -> do
--#endif
- allocateNode $ litBriDoc lit
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLam _ (MG _ (L _ [lmatch@(L _ match)]) _)
--#else
-- HsLam (MG (L _ [lmatch@(L _ match)]) _ _ _)
--#endif
- | pats <- m_pats match
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- , GRHSs _ [lgrhs] llocals <- m_grhss match
--#else
-- , GRHSs [lgrhs] llocals <- m_grhss match
--#endif
- , L _ EmptyLocalBinds {} <- llocals
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- , L _ (GRHS _ [] body) <- lgrhs
--#else
-- , L _ (GRHS [] body) <- lgrhs
--#endif
- -> do
- patDocs <- zip (True : repeat False) pats `forM` \(isFirst, p) ->
- fmap return $ do
-@@ -168,48 +132,26 @@ layoutExpr lexpr@(L _ expr) = do
- ]
- HsLam{} ->
- unknownNodeError "HsLam too complex" lexpr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ XMatchGroup{} ->
- error "brittany internal error: HsLamCase XMatchGroup"
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ (L _ []) _) -> do
--#else /* ghc-8.4 */
-- HsLamCase (MG (L _ []) _ _ _) -> do
--#endif
- docSetParSpacing $ docAddBaseY BrIndentRegular $
- (docLit $ Text.pack "\\case {}")
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do
--#else /* ghc-8.4 */
-- HsLamCase (MG lmatches@(L _ matches) _ _ _) -> do
--#endif
- binderDoc <- docLit $ Text.pack "->"
- funcPatDocs <- docWrapNode lmatches
- $ layoutPatternBind Nothing binderDoc `mapM` matches
- docSetParSpacing $ docAddBaseY BrIndentRegular $ docPar
- (docLit $ Text.pack "\\case")
- (docSetBaseAndIndent $ docNonBottomSpacing $ docLines $ return <$> funcPatDocs)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsApp _ exp1@(L _ HsApp{}) exp2 -> do
--#else
-- HsApp exp1@(L _ HsApp{}) exp2 -> do
--#endif
- let gather :: [LHsExpr GhcPs] -> LHsExpr GhcPs -> (LHsExpr GhcPs, [LHsExpr GhcPs])
- gather list = \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- L _ (HsApp _ l r) -> gather (r:list) l
--#else
-- L _ (HsApp l r) -> gather (r:list) l
--#endif
- x -> (x, list)
- let (headE, paramEs) = gather [exp2] exp1
- let colsOrSequence = case headE of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- L _ (HsVar _ (L _ (Unqual occname))) ->
--#else
-- L _ (HsVar (L _ (Unqual occname))) ->
--#endif
- docCols (ColApp $ Text.pack $ occNameString occname)
- _ -> docSeq
- headDoc <- docSharedWrapper layoutExpr headE
-@@ -255,11 +197,7 @@ layoutExpr lexpr@(L _ expr) = do
- ( docNonBottomSpacing
- $ docLines paramDocs
- )
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsApp _ exp1 exp2 -> do
--#else
-- HsApp exp1 exp2 -> do
--#endif
- -- TODO: if expDoc1 is some literal, we may want to create a docCols here.
- expDoc1 <- docSharedWrapper layoutExpr exp1
- expDoc2 <- docSharedWrapper layoutExpr exp2
-@@ -301,12 +239,10 @@ layoutExpr lexpr@(L _ expr) = do
- HsAppType _ _ XHsWildCardBndrs{} ->
- error "brittany internal error: HsAppType XHsWildCardBndrs"
- HsAppType _ exp1 (HsWC _ ty1) -> do
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- HsAppType XHsWildCardBndrs{} _ ->
- error "brittany internal error: HsAppType XHsWildCardBndrs"
- HsAppType (HsWC _ ty1) exp1 -> do
--#else /* ghc-8.4 */
-- HsAppType exp1 (HsWC _ ty1) -> do
- #endif
- t <- docSharedWrapper layoutType ty1
- e <- docSharedWrapper layoutExpr exp1
-@@ -321,23 +257,10 @@ layoutExpr lexpr@(L _ expr) = do
- e
- (docSeq [docLit $ Text.pack "@", t ])
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
-- HsAppTypeOut{} -> do
-- -- TODO
-- briDocByExactInlineOnly "HsAppTypeOut{}" lexpr
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- OpApp _ expLeft@(L _ OpApp{}) expOp expRight -> do
--#else
-- OpApp expLeft@(L _ OpApp{}) expOp _ expRight -> do
--#endif
- let gather :: [(LHsExpr GhcPs, LHsExpr GhcPs)] -> LHsExpr GhcPs -> (LHsExpr GhcPs, [(LHsExpr GhcPs, LHsExpr GhcPs)])
- gather opExprList = \case
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- (L _ (OpApp _ l1 op1 r1)) -> gather ((op1, r1): opExprList) l1
--#else
-- (L _ (OpApp l1 op1 _ r1)) -> gather ((op1, r1): opExprList) l1
--#endif
- final -> (final, opExprList)
- (leftOperand, appList) = gather [] expLeft
- leftOperandDoc <- docSharedWrapper layoutExpr leftOperand
-@@ -351,19 +274,11 @@ layoutExpr lexpr@(L _ expr) = do
- hasComLeft <- hasAnyCommentsConnected expLeft
- hasComOp <- hasAnyCommentsConnected expOp
- pure $ not hasComLeft && not hasComOp
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let allowPar = case (expOp, expRight) of
- (L _ (HsVar _ (L _ (Unqual occname))), _)
- | occNameString occname == "$" -> True
- (_, L _ (HsApp _ _ (L _ HsVar{}))) -> False
- _ -> True
--#else
-- let allowPar = case (expOp, expRight) of
-- (L _ (HsVar (L _ (Unqual occname))), _)
-- | occNameString occname == "$" -> True
-- (_, L _ (HsApp _ (L _ HsVar{}))) -> False
-- _ -> True
--#endif
- runFilteredAlternative $ do
- -- > one + two + three
- -- or
-@@ -401,27 +316,15 @@ layoutExpr lexpr@(L _ expr) = do
- $ (appListDocs <&> \(od, ed) -> docCols ColOpPrefix [appSep od, docSetBaseY ed])
- ++ [docCols ColOpPrefix [appSep opLastDoc, docSetBaseY expLastDoc]]
- )
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- OpApp _ expLeft expOp expRight -> do
--#else
-- OpApp expLeft expOp _ expRight -> do
--#endif
- expDocLeft <- docSharedWrapper layoutExpr expLeft
- expDocOp <- docSharedWrapper layoutExpr expOp
- expDocRight <- docSharedWrapper layoutExpr expRight
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let allowPar = case (expOp, expRight) of
- (L _ (HsVar _ (L _ (Unqual occname))), _)
- | occNameString occname == "$" -> True
- (_, L _ (HsApp _ _ (L _ HsVar{}))) -> False
- _ -> True
--#else
-- let allowPar = case (expOp, expRight) of
-- (L _ (HsVar (L _ (Unqual occname))), _)
-- | occNameString occname == "$" -> True
-- (_, L _ (HsApp _ (L _ HsVar{}))) -> False
-- _ -> True
--#endif
- let leftIsDoBlock = case expLeft of
- L _ HsDo{} -> True
- _ -> False
-@@ -467,20 +370,12 @@ layoutExpr lexpr@(L _ expr) = do
- then docLines [expDocLeft, expDocOpAndRight]
- else docAddBaseY BrIndentRegular
- $ docPar expDocLeft expDocOpAndRight
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- NegApp _ op _ -> do
--#else
-- NegApp op _ -> do
--#endif
- opDoc <- docSharedWrapper layoutExpr op
- docSeq [ docLit $ Text.pack "-"
- , opDoc
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsPar _ innerExp -> do
--#else
-- HsPar innerExp -> do
--#endif
- innerExpDoc <- docSharedWrapper (docWrapNode lexpr . layoutExpr) innerExp
- docAlt
- [ docSeq
-@@ -496,41 +391,25 @@ layoutExpr lexpr@(L _ expr) = do
- , docLit $ Text.pack ")"
- ]
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- SectionL _ left op -> do -- TODO: add to testsuite
--#else
-- SectionL left op -> do -- TODO: add to testsuite
--#endif
- leftDoc <- docSharedWrapper layoutExpr left
- opDoc <- docSharedWrapper layoutExpr op
- docSeq [leftDoc, docSeparator, opDoc]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- SectionR _ op right -> do -- TODO: add to testsuite
--#else
-- SectionR op right -> do -- TODO: add to testsuite
--#endif
- opDoc <- docSharedWrapper layoutExpr op
- rightDoc <- docSharedWrapper layoutExpr right
- docSeq [opDoc, docSeparator, rightDoc]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ExplicitTuple _ args boxity -> do
--#else
-- ExplicitTuple args boxity -> do
--#endif
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- let argExprs = args <&> \arg -> case arg of
- (L _ (Present _ e)) -> (arg, Just e);
- (L _ (Missing NoExtField)) -> (arg, Nothing)
- (L _ XTupArg{}) -> error "brittany internal error: XTupArg"
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- let argExprs = args <&> \arg -> case arg of
- (L _ (Present _ e)) -> (arg, Just e);
- (L _ (Missing NoExt)) -> (arg, Nothing)
- (L _ XTupArg{}) -> error "brittany internal error: XTupArg"
--#else
-- let argExprs = args <&> \arg -> case arg of
-- (L _ (Present e)) -> (arg, Just e);
-- (L _ (Missing PlaceHolder)) -> (arg, Nothing)
- #endif
- argDocs <- forM argExprs
- $ docSharedWrapper
-@@ -576,15 +455,9 @@ layoutExpr lexpr@(L _ expr) = do
- lineN = docCols ColTuples [docCommaSep, docNodeAnnKW lexpr (Just AnnOpenP) eN]
- end = closeLit
- in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN, end]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsCase _ _ XMatchGroup{} ->
- error "brittany internal error: HsCase XMatchGroup"
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsCase _ cExp (MG _ (L _ []) _) -> do
--#else
-- HsCase cExp (MG (L _ []) _ _ _) -> do
--#endif
- cExpDoc <- docSharedWrapper layoutExpr cExp
- docAlt
- [ docAddBaseY BrIndentRegular
-@@ -599,11 +472,7 @@ layoutExpr lexpr@(L _ expr) = do
- )
- (docLit $ Text.pack "of {}")
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsCase _ cExp (MG _ lmatches@(L _ matches) _) -> do
--#else
-- HsCase cExp (MG lmatches@(L _ matches) _ _ _) -> do
--#endif
- cExpDoc <- docSharedWrapper layoutExpr cExp
- binderDoc <- docLit $ Text.pack "->"
- funcPatDocs <- docWrapNode lmatches
-@@ -627,11 +496,7 @@ layoutExpr lexpr@(L _ expr) = do
- (docSetBaseAndIndent $ docNonBottomSpacing $ docLines $ return <$> funcPatDocs)
- )
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIf _ _ ifExpr thenExpr elseExpr -> do
--#else
-- HsIf _ ifExpr thenExpr elseExpr -> do
--#endif
- ifExprDoc <- docSharedWrapper layoutExpr ifExpr
- thenExprDoc <- docSharedWrapper layoutExpr thenExpr
- elseExprDoc <- docSharedWrapper layoutExpr elseExpr
-@@ -751,11 +616,7 @@ layoutExpr lexpr@(L _ expr) = do
- docSetParSpacing $ docAddBaseY BrIndentRegular $ docPar
- (docLit $ Text.pack "if")
- (layoutPatternBindFinal Nothing binderDoc Nothing clauseDocs Nothing hasComments)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsLet _ binds exp1 -> do
--#else
-- HsLet binds exp1 -> do
--#endif
- expDoc1 <- docSharedWrapper layoutExpr exp1
- -- We jump through some ugly hoops here to ensure proper sharing.
- hasComments <- hasAnyCommentsBelow lexpr
-@@ -861,11 +722,7 @@ layoutExpr lexpr@(L _ expr) = do
- ]
- _ -> docSeq [appSep $ docLit $ Text.pack "let in", expDoc1]
- -- docSeq [appSep $ docLit "let in", expDoc1]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsDo _ stmtCtx (L _ stmts) -> case stmtCtx of
--#else
-- HsDo stmtCtx (L _ stmts) _ -> case stmtCtx of
--#endif
- DoExpr -> do
- stmtDocs <- docSharedWrapper layoutStmt `mapM` stmts
- docSetParSpacing
-@@ -960,26 +817,13 @@ layoutExpr lexpr@(L _ expr) = do
- in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN] ++ [end]
- ExplicitList _ _ [] ->
- docLit $ Text.pack "[]"
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
-- ExplicitPArr{} -> do
-- -- TODO
-- briDocByExactInlineOnly "ExplicitPArr{}" lexpr
--#endif
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- RecordCon _ lname fields ->
--#else
-- RecordCon lname _ _ fields ->
--#endif
- case fields of
- HsRecFields fs Nothing -> do
- let nameDoc = docWrapNode lname $ docLit $ lrdrNameToText lname
- rFs <- fs
- `forM` \lfield@(L _ (HsRecField (L _ fieldOcc) rFExpr pun)) -> do
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let FieldOcc _ lnameF = fieldOcc
--#else
-- let FieldOcc lnameF _ = fieldOcc
--#endif
- rFExpDoc <- if pun
- then return Nothing
- else Just <$> docSharedWrapper layoutExpr rFExpr
-@@ -999,22 +843,14 @@ layoutExpr lexpr@(L _ expr) = do
- #endif
- let nameDoc = docWrapNode lname $ docLit $ lrdrNameToText lname
- fieldDocs <- fs `forM` \fieldl@(L _ (HsRecField (L _ fieldOcc) fExpr pun)) -> do
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let FieldOcc _ lnameF = fieldOcc
--#else
-- let FieldOcc lnameF _ = fieldOcc
--#endif
- fExpDoc <- if pun
- then return Nothing
- else Just <$> docSharedWrapper layoutExpr fExpr
- return (fieldl, lrdrNameToText lnameF, fExpDoc)
- recordExpression True indentPolicy lexpr nameDoc fieldDocs
- _ -> unknownNodeError "RecordCon with puns" lexpr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- RecordUpd _ rExpr fields -> do
--#else
-- RecordUpd rExpr fields _ _ _ _ -> do
--#endif
- rExprDoc <- docSharedWrapper layoutExpr rExpr
- rFs <- fields
- `forM` \lfield@(L _ (HsRecField (L _ ambName) rFExpr pun)) -> do
-@@ -1022,15 +858,10 @@ layoutExpr lexpr@(L _ expr) = do
- then return Nothing
- else Just <$> docSharedWrapper layoutExpr rFExpr
- return $ case ambName of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- Unambiguous _ n -> (lfield, lrdrNameToText n, rFExpDoc)
- Ambiguous _ n -> (lfield, lrdrNameToText n, rFExpDoc)
- XAmbiguousFieldOcc{} ->
- error "brittany internal error: XAmbiguousFieldOcc"
--#else
-- Unambiguous n _ -> (lfield, lrdrNameToText n, rFExpDoc)
-- Ambiguous n _ -> (lfield, lrdrNameToText n, rFExpDoc)
--#endif
- recordExpression False indentPolicy lexpr rExprDoc rFs
- #if MIN_VERSION_ghc(8,8,0) /* ghc-8.6 */
- ExprWithTySig _ _ (HsWC _ XHsImplicitBndrs{}) ->
-@@ -1038,14 +869,12 @@ layoutExpr lexpr@(L _ expr) = do
- ExprWithTySig _ _ XHsWildCardBndrs{} ->
- error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
- ExprWithTySig _ exp1 (HsWC _ (HsIB _ typ1)) -> do
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- ExprWithTySig (HsWC _ XHsImplicitBndrs{}) _ ->
- error "brittany internal error: ExprWithTySig HsWC XHsImplicitBndrs"
- ExprWithTySig XHsWildCardBndrs{} _ ->
- error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
- ExprWithTySig (HsWC _ (HsIB _ typ1)) exp1 -> do
--#else /* ghc-8.4 */
-- ExprWithTySig exp1 (HsWC _ (HsIB _ typ1 _)) -> do
- #endif
- expDoc <- docSharedWrapper layoutExpr exp1
- typDoc <- docSharedWrapper layoutType typ1
-@@ -1054,11 +883,6 @@ layoutExpr lexpr@(L _ expr) = do
- , appSep $ docLit $ Text.pack "::"
- , typDoc
- ]
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
-- ExprWithTySigOut{} -> do
-- -- TODO
-- briDocByExactInlineOnly "ExprWithTySigOut{}" lexpr
--#endif
- ArithSeq _ Nothing info ->
- case info of
- From e1 -> do
-@@ -1103,11 +927,6 @@ layoutExpr lexpr@(L _ expr) = do
- ]
- ArithSeq{} ->
- briDocByExactInlineOnly "ArithSeq" lexpr
--#if !MIN_VERSION_ghc(8,6,0) /* ghc-8.4 */
-- PArrSeq{} -> do
-- -- TODO
-- briDocByExactInlineOnly "PArrSeq{}" lexpr
--#endif
- HsSCC{} -> do
- -- TODO
- briDocByExactInlineOnly "HsSCC{}" lexpr
-@@ -1123,11 +942,7 @@ layoutExpr lexpr@(L _ expr) = do
- HsTcBracketOut{} -> do
- -- TODO
- briDocByExactInlineOnly "HsTcBracketOut{}" lexpr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsSpliceE _ (HsQuasiQuote _ _ quoter _loc content) -> do
--#else
-- HsSpliceE (HsQuasiQuote _ quoter _loc content) -> do
--#endif
- allocateNode $ BDFPlain
- (Text.pack
- $ "["
-@@ -1166,11 +981,7 @@ layoutExpr lexpr@(L _ expr) = do
- #else
- EWildPat{} -> do
- docLit $ Text.pack "_"
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- EAsPat _ asName asExpr -> do
--#else
-- EAsPat asName asExpr -> do
--#endif
- docSeq
- [ docLit $ lrdrNameToText asName <> Text.pack "@"
- , layoutExpr asExpr
-@@ -1191,9 +1002,7 @@ layoutExpr lexpr@(L _ expr) = do
- ExplicitSum{} -> do
- -- TODO
- briDocByExactInlineOnly "ExplicitSum{}" lexpr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- XExpr{} -> error "brittany internal error: XExpr"
--#endif
-
- recordExpression
- :: (Data.Data.Data lExpr, Data.Data.Data name)
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-index 739d138..4f7ec0e 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/IE.hs
-@@ -39,32 +39,12 @@ prepareName = ieLWrappedName
-
- layoutIE :: ToBriDoc IE
- layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
--#if MIN_VERSION_ghc(8,6,0)
- IEVar _ x -> layoutWrapped lie x
--#else
-- IEVar x -> layoutWrapped lie x
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- IEThingAbs _ x -> layoutWrapped lie x
--#else
-- IEThingAbs x -> layoutWrapped lie x
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- IEThingAll _ x -> docSeq [layoutWrapped lie x, docLit $ Text.pack "(..)"]
--#else
-- IEThingAll x -> docSeq [layoutWrapped lie x, docLit $ Text.pack "(..)"]
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- IEThingWith _ x (IEWildcard _) _ _ ->
--#else
-- IEThingWith x (IEWildcard _) _ _ ->
--#endif
- docSeq [layoutWrapped lie x, docLit $ Text.pack "(..)"]
--#if MIN_VERSION_ghc(8,6,0)
- IEThingWith _ x _ ns _ -> do
--#else
-- IEThingWith x _ ns _ -> do
--#endif
- hasComments <- orM
- ( hasCommentsBetween lie AnnOpenP AnnCloseP
- : hasAnyCommentsBelow x
-@@ -95,11 +75,7 @@ layoutIE lie@(L _ ie) = docWrapNode lie $ case ie of
- $ [docSeq [docParenLSep, docWrapNode n1 $ nameDoc n1]]
- ++ map layoutItem nMs
- ++ [docSeq [docCommaSep, docNodeAnnKW lie (Just AnnOpenP) $ nameDoc nN], docParenR]
--#if MIN_VERSION_ghc(8,6,0)
- IEModuleContents _ n -> docSeq
--#else
-- IEModuleContents n -> docSeq
--#endif
- [ docLit $ Text.pack "module"
- , docSeparator
- , docLit . Text.pack . moduleNameString $ unLoc n
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-index ac29eda..cdcd8ed 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Import.hs
-@@ -37,11 +37,7 @@ prepModName = unLoc
-
- layoutImport :: ToBriDoc ImportDecl
- layoutImport limportD@(L _ importD) = docWrapNode limportD $ case importD of
--#if MIN_VERSION_ghc(8,6,0)
- ImportDecl _ _ (L _ modName) pkg src safe q False mas mllies -> do
--#else
-- ImportDecl _ (L _ modName) pkg src safe q False mas mllies -> do
--#endif
- importCol <- mAsk <&> _conf_layout .> _lconfig_importColumn .> confUnpack
- importAsCol <- mAsk <&> _conf_layout .> _lconfig_importAsColumn .> confUnpack
- indentPolicy <- mAsk <&> _conf_layout .> _lconfig_indentPolicy .> confUnpack
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-index fb0ba51..037d693 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Pattern.hs
-@@ -48,26 +48,16 @@ layoutPat :: LPat GhcPs -> ToBriDocM (Seq BriDocNumbered)
- layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- WildPat _ -> fmap Seq.singleton $ docLit $ Text.pack "_"
- -- _ -> expr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- VarPat _ n ->
--#else /* ghc-8.4 */
-- VarPat n ->
--#endif
- fmap Seq.singleton $ docLit $ lrdrNameToText n
- -- abc -> expr
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LitPat _ lit ->
--#else /* ghc-8.4 */
-- LitPat lit ->
--#endif
- fmap Seq.singleton $ allocateNode $ litBriDoc lit
- -- 0 -> expr
- #if MIN_VERSION_ghc(8,8,0) /* ghc-8.8 */
- ParPat _ inner -> do
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- ParPat _ inner -> do
--#else /* ghc-8.4 */
-- ParPat inner -> do
- #endif
- -- (nestedpat) -> expr
- left <- docLit $ Text.pack "("
-@@ -117,11 +107,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- -- Abc { a, b, c } -> expr2
- let t = lrdrNameToText lname
- fds <- fs `forM` \(L _ (HsRecField (L _ fieldOcc) fPat pun)) -> do
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let FieldOcc _ lnameF = fieldOcc
--#else
-- let FieldOcc lnameF _ = fieldOcc
--#endif
- fExpDoc <- if pun
- then return Nothing
- else Just <$> docSharedWrapper layoutPat fPat
-@@ -159,11 +145,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- -- Abc { a = locA, .. }
- let t = lrdrNameToText lname
- fds <- fs `forM` \(L _ (HsRecField (L _ fieldOcc) fPat pun)) -> do
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- let FieldOcc _ lnameF = fieldOcc
--#else
-- let FieldOcc lnameF _ = fieldOcc
--#endif
- fExpDoc <- if pun
- then return Nothing
- else Just <$> docSharedWrapper layoutPat fPat
-@@ -181,29 +163,19 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- (fieldName, Nothing) -> [docLit fieldName, docCommaSep]
- , docLit $ Text.pack "..}"
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- TuplePat _ args boxity -> do
--#else
-- TuplePat args boxity _ -> do
--#endif
- -- (nestedpat1, nestedpat2, nestedpat3) -> expr
- -- (#nestedpat1, nestedpat2, nestedpat3#) -> expr
- case boxity of
- Boxed -> wrapPatListy args "()" docParenL docParenR
- Unboxed -> wrapPatListy args "(##)" docParenHashLSep docParenHashRSep
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- AsPat _ asName asPat -> do
--#else
-- AsPat asName asPat -> do
--#endif
- -- bind at nestedpat -> expr
- wrapPatPrepend asPat (docLit $ lrdrNameToText asName <> Text.pack "@")
- #if MIN_VERSION_ghc(8,8,0) /* ghc-8.8 */
- SigPat _ pat1 (HsWC _ (HsIB _ ty1)) -> do
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- SigPat (HsWC _ (HsIB _ ty1)) pat1 -> do
--#else /* ghc-8.4 */
-- SigPatIn pat1 (HsWC _ (HsIB _ ty1 _)) -> do
- #endif
- -- i :: Int -> expr
- patDocs <- layoutPat pat1
-@@ -224,33 +196,17 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
- , docForceSingleline tyDoc
- ]
- return $ xR Seq.|> xN'
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- ListPat _ elems ->
--#else
-- ListPat elems _ _ ->
--#endif
- -- [] -> expr1
- -- [nestedpat1, nestedpat2, nestedpat3] -> expr2
- wrapPatListy elems "[]" docBracketL docBracketR
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- BangPat _ pat1 -> do
--#else
-- BangPat pat1 -> do
--#endif
- -- !nestedpat -> expr
- wrapPatPrepend pat1 (docLit $ Text.pack "!")
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LazyPat _ pat1 -> do
--#else
-- LazyPat pat1 -> do
--#endif
- -- ~nestedpat -> expr
- wrapPatPrepend pat1 (docLit $ Text.pack "~")
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- NPat _ llit@(L _ ol) mNegative _ -> do
--#else
-- NPat llit@(L _ ol) mNegative _ _ -> do
--#endif
- -- -13 -> expr
- litDoc <- docWrapNode llit $ allocateNode $ overLitValBriDoc $ GHC.ol_val ol
- negDoc <- docLit $ Text.pack "-"
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-index 60ba54b..5427d7a 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Stmt.hs
-@@ -38,17 +38,9 @@ layoutStmt lstmt@(L _ stmt) = do
- indentAmount :: Int <-
- mAsk <&> _conf_layout .> _lconfig_indentAmount .> confUnpack
- docWrapNode lstmt $ case stmt of
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LastStmt _ body False _ -> do
--#else
-- LastStmt body False _ -> do
--#endif
- layoutExpr body
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- BindStmt _ lPat expr _ _ -> do
--#else
-- BindStmt lPat expr _ _ _ -> do
--#endif
- patDoc <- fmap return $ colsWrapPat =<< layoutPat lPat
- expDoc <- docSharedWrapper layoutExpr expr
- docAlt
-@@ -67,11 +59,7 @@ layoutStmt lstmt@(L _ stmt) = do
- $ docPar (docLit $ Text.pack "<-") (expDoc)
- ]
- ]
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- LetStmt _ binds -> do
--#else
-- LetStmt binds -> do
--#endif
- let isFree = indentPolicy == IndentPolicyFree
- let indentFourPlus = indentAmount >= 4
- layoutLocalBinds binds >>= \case
-@@ -116,11 +104,7 @@ layoutStmt lstmt@(L _ stmt) = do
- $ docAddBaseY BrIndentRegular
- $ docPar (docLit $ Text.pack "let")
- (docSetBaseAndIndent $ docLines $ return <$> bindDocs)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- RecStmt _ stmts _ _ _ _ _ -> runFilteredAlternative $ do
--#else
-- RecStmt stmts _ _ _ _ _ _ _ _ _ -> runFilteredAlternative $ do
--#endif
- -- rec stmt1
- -- stmt2
- -- stmt3
-@@ -136,11 +120,7 @@ layoutStmt lstmt@(L _ stmt) = do
- addAlternative $ docAddBaseY BrIndentRegular $ docPar
- (docLit (Text.pack "rec"))
- (docLines $ layoutStmt <$> stmts)
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- BodyStmt _ expr _ _ -> do
--#else
-- BodyStmt expr _ _ _ -> do
--#endif
- expDoc <- docSharedWrapper layoutExpr expr
- docAddBaseY BrIndentRegular $ expDoc
- _ -> briDocByExactInlineOnly "some unknown statement" lstmt
-diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-index a2b55d7..3437fcd 100644
---- a/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Layouters/Type.hs
-@@ -42,16 +42,12 @@ import DataTreePrint
- layoutType :: ToBriDoc HsType
- layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- _ | traceShow (ExactPrint.Types.mkAnnKey ltype) False -> error "impossible"
--#if MIN_VERSION_ghc(8,6,0)
- HsTyVar _ promoted name -> do
--#else /* ghc-8.4 */
-- HsTyVar promoted name -> do
--#endif
- t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
- case promoted of
- #if MIN_VERSION_ghc(8,8,0)
- IsPromoted -> docSeq
--#else /* ghc-8.4 8.6 */
-+#else /* ghc-8.6 */
- Promoted -> docSeq
- #endif
- [ docSeparator
-@@ -61,10 +57,8 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- NotPromoted -> docWrapNode name $ docLit t
- #if MIN_VERSION_ghc(8,10,1)
- HsForAllTy _ _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
--#elif MIN_VERSION_ghc(8,6,0)
-- HsForAllTy _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
- #else
-- HsForAllTy bndrs (L _ (HsQualTy (L _ cntxts) typ2)) -> do
-+ HsForAllTy _ bndrs (L _ (HsQualTy _ (L _ cntxts) typ2)) -> do
- #endif
- typeDoc <- docSharedWrapper layoutType typ2
- tyVarDocs <- layoutTyVarBndrs bndrs
-@@ -153,10 +147,8 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- #if MIN_VERSION_ghc(8,10,1)
- HsForAllTy _ _ bndrs typ2 -> do
--#elif MIN_VERSION_ghc(8,6,0)
-- HsForAllTy _ bndrs typ2 -> do
- #else
-- HsForAllTy bndrs typ2 -> do
-+ HsForAllTy _ bndrs typ2 -> do
- #endif
- typeDoc <- layoutType typ2
- tyVarDocs <- layoutTyVarBndrs bndrs
-@@ -212,11 +204,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- )
- ]
--#if MIN_VERSION_ghc(8,6,0)
- HsQualTy _ lcntxts@(L _ cntxts) typ1 -> do
--#else
-- HsQualTy lcntxts@(L _ cntxts) typ1 -> do
--#endif
- typeDoc <- docSharedWrapper layoutType typ1
- cntxtDocs <- cntxts `forM` docSharedWrapper layoutType
- let
-@@ -266,11 +254,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- )
- ]
--#if MIN_VERSION_ghc(8,6,0)
- HsFunTy _ typ1 typ2 -> do
--#else
-- HsFunTy typ1 typ2 -> do
--#endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- typeDoc2 <- docSharedWrapper layoutType typ2
- let maybeForceML = case typ2 of
-@@ -294,11 +278,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- )
- ]
--#if MIN_VERSION_ghc(8,6,0)
- HsParTy _ typ1 -> do
--#else
-- HsParTy typ1 -> do
--#endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- docAlt
- [ docSeq
-@@ -313,7 +293,6 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ])
- (docLit $ Text.pack ")")
- ]
--#if MIN_VERSION_ghc(8,6,0)
- HsAppTy _ typ1@(L _ HsAppTy{}) typ2 -> do
- let gather :: [LHsType GhcPs] -> LHsType GhcPs -> (LHsType GhcPs, [LHsType GhcPs])
- gather list = \case
-@@ -341,65 +320,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- typeDoc1
- (docEnsureIndent BrIndentRegular typeDoc2)
- ]
--#else
-- HsAppTy typ1 typ2 -> do
-- typeDoc1 <- docSharedWrapper layoutType typ1
-- typeDoc2 <- docSharedWrapper layoutType typ2
-- docAlt
-- [ docSeq
-- [ docForceSingleline typeDoc1
-- , docSeparator
-- , docForceSingleline typeDoc2
-- ]
-- , docPar
-- typeDoc1
-- (docEnsureIndent BrIndentRegular typeDoc2)
-- ]
-- HsAppsTy [] -> error "HsAppsTy []"
-- HsAppsTy [L _ (HsAppPrefix typ1)] -> do
-- typeDoc1 <- docSharedWrapper layoutType typ1
-- typeDoc1
-- HsAppsTy [lname@(L _ (HsAppInfix name))] -> do
-- -- this redirection is somewhat hacky, but whatever.
-- -- TODO: a general problem when doing deep inspections on
-- -- the type (and this is not the only instance)
-- -- is that we potentially omit annotations on some of
-- -- the middle constructors. i have no idea under which
-- -- circumstances exactly important annotations (comments)
-- -- would be assigned to such constructors.
-- typeDoc1 <- -- docSharedWrapper layoutType $ (L l $ HsTyVar name)
-- lrdrNameToTextAnnTypeEqualityIsSpecialAndRespectTick lname name
-- docLit typeDoc1
-- HsAppsTy (L _ (HsAppPrefix typHead):typRestA)
-- | Just typRest <- mapM (\case L _ (HsAppPrefix t) -> Just t
-- _ -> Nothing) typRestA -> do
-- docHead <- docSharedWrapper layoutType typHead
-- docRest <- docSharedWrapper layoutType `mapM` typRest
-- docAlt
-- [ docSeq
-- $ docForceSingleline docHead : (docRest >>= \d ->
-- [ docSeparator, docForceSingleline d ])
-- , docPar docHead (docLines $ docEnsureIndent BrIndentRegular <$> docRest)
-- ]
-- HsAppsTy (typHead:typRest) -> do
-- docHead <- docSharedWrapper layoutAppType typHead
-- docRest <- docSharedWrapper layoutAppType `mapM` typRest
-- docAlt
-- [ docSeq
-- $ docForceSingleline docHead : (docRest >>= \d ->
-- [ docSeparator, docForceSingleline d ])
-- , docPar docHead (docLines $ docEnsureIndent BrIndentRegular <$> docRest)
-- ]
-- where
-- layoutAppType (L _ (HsAppPrefix t)) = layoutType t
-- layoutAppType lt@(L _ (HsAppInfix t)) =
-- docLit =<< lrdrNameToTextAnnTypeEqualityIsSpecialAndRespectTick lt t
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- HsListTy _ typ1 -> do
--#else
-- HsListTy typ1 -> do
--#endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- docAlt
- [ docSeq
-@@ -414,29 +335,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ])
- (docLit $ Text.pack "]")
- ]
--#if MIN_VERSION_ghc(8,6,0)
--#else
-- HsPArrTy typ1 -> do
-- typeDoc1 <- docSharedWrapper layoutType typ1
-- docAlt
-- [ docSeq
-- [ docWrapNodeRest ltype $ docLit $ Text.pack "[:"
-- , docForceSingleline typeDoc1
-- , docLit $ Text.pack ":]"
-- ]
-- , docPar
-- ( docCols ColTyOpPrefix
-- [ docWrapNodeRest ltype $ docLit $ Text.pack "[:"
-- , docAddBaseY (BrIndentSpecial 2) $ typeDoc1
-- ])
-- (docLit $ Text.pack ":]")
-- ]
--#endif
--#if MIN_VERSION_ghc(8,6,0)
- HsTupleTy _ tupleSort typs -> case tupleSort of
--#else
-- HsTupleTy tupleSort typs -> case tupleSort of
--#endif
- HsUnboxedTuple -> unboxed
- HsBoxedTuple -> simple
- HsConstraintTuple -> simple
-@@ -539,11 +438,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- -- }
- -- , _layouter_ast = ltype
- -- }
--#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
- HsIParamTy _ (L _ (HsIPName ipName)) typ1 -> do
--#else /* ghc-8.4 */
-- HsIParamTy (L _ (HsIPName ipName)) typ1 -> do
--#endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- docAlt
- [ docSeq
-@@ -562,33 +457,8 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- , docAddBaseY (BrIndentSpecial 2) typeDoc1
- ])
- ]
--#if MIN_VERSION_ghc(8,6,0)
--#else
-- HsEqTy typ1 typ2 -> do
-- typeDoc1 <- docSharedWrapper layoutType typ1
-- typeDoc2 <- docSharedWrapper layoutType typ2
-- docAlt
-- [ docSeq
-- [ docForceSingleline typeDoc1
-- , docWrapNodeRest ltype
-- $ docLit $ Text.pack " ~ "
-- , docForceSingleline typeDoc2
-- ]
-- , docPar
-- typeDoc1
-- ( docCols ColTyOpPrefix
-- [ docWrapNodeRest ltype
-- $ docLit $ Text.pack "~ "
-- , docAddBaseY (BrIndentSpecial 2) typeDoc2
-- ])
-- ]
--#endif
- -- TODO: test KindSig
--#if MIN_VERSION_ghc(8,6,0)
- HsKindSig _ typ1 kind1 -> do
--#else
-- HsKindSig typ1 kind1 -> do
--#endif
- typeDoc1 <- docSharedWrapper layoutType typ1
- kindDoc1 <- docSharedWrapper layoutType kind1
- hasParens <- hasAnnKeyword ltype AnnOpenP
-@@ -738,32 +608,22 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
- ]
- HsExplicitTupleTy{} -> -- TODO
- briDocByExactInlineOnly "HsExplicitTupleTy{}" ltype
--#if MIN_VERSION_ghc(8,6,0)
- HsTyLit _ lit -> case lit of
--#else
-- HsTyLit lit -> case lit of
--#endif
- HsNumTy (SourceText srctext) _ -> docLit $ Text.pack srctext
- HsNumTy NoSourceText _ ->
- error "overLitValBriDoc: literal with no SourceText"
- HsStrTy (SourceText srctext) _ -> docLit $ Text.pack srctext
- HsStrTy NoSourceText _ ->
- error "overLitValBriDoc: literal with no SourceText"
--#if !MIN_VERSION_ghc(8,6,0)
-- HsCoreTy{} -> -- TODO
-- briDocByExactInlineOnly "HsCoreTy{}" ltype
--#endif
- HsWildCardTy _ ->
- docLit $ Text.pack "_"
- HsSumTy{} -> -- TODO
- briDocByExactInlineOnly "HsSumTy{}" ltype
--#if MIN_VERSION_ghc(8,6,0)
- HsStarTy _ isUnicode -> do
- if isUnicode
- then docLit $ Text.pack "\x2605" -- Unicode star
- else docLit $ Text.pack "*"
- XHsType{} -> error "brittany internal error: XHsType"
--#endif
- #if MIN_VERSION_ghc(8,8,0)
- HsAppKindTy _ ty kind -> do
- t <- docSharedWrapper layoutType ty
-@@ -785,18 +645,11 @@ layoutTyVarBndrs
- :: [LHsTyVarBndr GhcPs]
- -> ToBriDocM [(Text, Maybe (ToBriDocM BriDocNumbered))]
- layoutTyVarBndrs = mapM $ \case
--#if MIN_VERSION_ghc(8,6,0)
- (L _ (UserTyVar _ name)) -> return $ (lrdrNameToText name, Nothing)
- (L _ (KindedTyVar _ lrdrName kind)) -> do
- d <- docSharedWrapper layoutType kind
- return $ (lrdrNameToText lrdrName, Just $ d)
- (L _ (XTyVarBndr{})) -> error "brittany internal error: XTyVarBndr"
--#else
-- (L _ (UserTyVar name)) -> return $ (lrdrNameToText name, Nothing)
-- (L _ (KindedTyVar lrdrName kind)) -> do
-- d <- docSharedWrapper layoutType kind
-- return $ (lrdrNameToText lrdrName, Just $ d)
--#endif
-
- -- there is no specific reason this returns a list instead of a single
- -- BriDoc node.
-diff --git a/src/Language/Haskell/Brittany/Internal/Prelude.hs b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-index e9a6979..b33e339 100644
---- a/src/Language/Haskell/Brittany/Internal/Prelude.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Prelude.hs
-@@ -407,7 +407,7 @@ todo = error "todo"
- #if MIN_VERSION_ghc(8,8,0)
- ghcDL :: GHC.HasSrcSpan a => a -> GHC.Located (GHC.SrcSpanLess a)
- ghcDL = GHC.dL
--#else /* ghc-8.4 8.6 */
-+#else /* ghc-8.6 */
- ghcDL :: GHC.Located a -> GHC.Located a
- ghcDL x = x
- #endif
-diff --git a/src/Language/Haskell/Brittany/Internal/Utils.hs b/src/Language/Haskell/Brittany/Internal/Utils.hs
-index 4b4061e..5ee7ed2 100644
---- a/src/Language/Haskell/Brittany/Internal/Utils.hs
-+++ b/src/Language/Haskell/Brittany/Internal/Utils.hs
-@@ -304,11 +304,8 @@ lines' s = case break (== '\n') s of
- #if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
- absurdExt :: HsExtension.NoExtCon -> a
- absurdExt = HsExtension.noExtCon
--#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
-+#else
- -- | A method to dismiss NoExt patterns for total matches
- absurdExt :: HsExtension.NoExt -> a
- absurdExt = error "cannot construct NoExt"
--#else
--absurdExt :: ()
--absurdExt = ()
- #endif
-
-From 71e7f5201435840047ee065d90a29b3c6a345ad1 Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Fri, 20 Nov 2020 08:52:28 -0500
-Subject: [PATCH 14/17] Remove broken test case
-
----
- src-literatetests/15-regressions.blt | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/src-literatetests/15-regressions.blt b/src-literatetests/15-regressions.blt
-index b4a98ab..e288114 100644
---- a/src-literatetests/15-regressions.blt
-+++ b/src-literatetests/15-regressions.blt
-@@ -473,13 +473,6 @@ foo n = case n of
- bar n = case n of
- (-2, -2) -> (-2, -2)
-
--#test issue 48 a
--
--foo =
-- let a = b at 1
-- cccc = ()
-- in foo
--
- #test issue 48 b
-
- {-# LANGUAGE TypeApplications #-}
-
-From d00387d15694c1db0d1d78ef105af74902dfeaea Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Fri, 20 Nov 2020 08:53:08 -0500
-Subject: [PATCH 15/17] Remove broken test case
-
----
- src-literatetests/30-tests-context-free.blt | 8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/src-literatetests/30-tests-context-free.blt b/src-literatetests/30-tests-context-free.blt
-index 18649a1..e439ecf 100644
---- a/src-literatetests/30-tests-context-free.blt
-+++ b/src-literatetests/30-tests-context-free.blt
-@@ -1409,14 +1409,6 @@ foo n = case n of
- bar n = case n of
- (-2, -2) -> (-2, -2)
-
--#test issue 48 a
--
--foo =
-- let
-- a = b at 1
-- cccc = ()
-- in foo
--
- #test issue 48 b
-
- {-# LANGUAGE TypeApplications #-}
-
-From c4b6a81b317870501a84ab84d7214fc51844562f Mon Sep 17 00:00:00 2001
-From: Taylor Fausak <taylor at fausak.me>
-Date: Mon, 23 Nov 2020 08:07:21 -0500
-Subject: [PATCH 16/17] List 8.10 support
-
----
- README.md | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/README.md b/README.md
-index eec9c4c..7828fd2 100644
---- a/README.md
-+++ b/README.md
-@@ -48,7 +48,7 @@ log the size of the input, but _not_ the full input/output of requests.)
-
- # Other usage notes
-
--- Supports GHC versions `8.6`, `8.8`.
-+- Supports GHC versions `8.6`, `8.8`, `8.10`.
- - included in stackage with lts>=10.0 (or nightlies dating to >=2017-11-15)
- - config (file) documentation is lacking.
- - some config values can not be configured via commandline yet.
More information about the arch-commits
mailing list