Drop support for GHC 8.2
parent
096c438b23
commit
259c949211
|
@ -26,9 +26,6 @@ jobs:
|
||||||
- os: ubuntu-18.04
|
- os: ubuntu-18.04
|
||||||
ghc: 8.4.4
|
ghc: 8.4.4
|
||||||
cabal: 3.2.0.0
|
cabal: 3.2.0.0
|
||||||
- os: ubuntu-18.04
|
|
||||||
ghc: 8.2.2
|
|
||||||
cabal: 3.2.0.0
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
|
20
.travis.yml
20
.travis.yml
|
@ -43,16 +43,8 @@ matrix:
|
||||||
|
|
||||||
##### OSX test via stack #####
|
##### OSX test via stack #####
|
||||||
|
|
||||||
# Build on macOS in addition to Linux
|
|
||||||
- env: BUILD=stack ARGS="--stack-yaml stack-8.2.2.yaml"
|
|
||||||
compiler: ": #stack 8.2.2 osx"
|
|
||||||
os: osx
|
|
||||||
|
|
||||||
##### CABAL #####
|
##### CABAL #####
|
||||||
|
|
||||||
- env: BUILD=cabal GHCVER=8.2.2 CABALVER=1.24 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
|
||||||
compiler: ": #cabal 8.2.2"
|
|
||||||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.2.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
|
||||||
- env: BUILD=cabal GHCVER=8.4.4 CABALVER=1.24 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
- env: BUILD=cabal GHCVER=8.4.4 CABALVER=1.24 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
||||||
compiler: ": #cabal 8.4.4"
|
compiler: ": #cabal 8.4.4"
|
||||||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.4.4,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
addons: {apt: {packages: [cabal-install-1.24,ghc-8.4.4,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
||||||
|
@ -66,17 +58,8 @@ matrix:
|
||||||
# compiler: ": #GHC HEAD"
|
# compiler: ": #GHC HEAD"
|
||||||
# addons: {apt: {packages: [cabal-install-head,ghc-head,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
# addons: {apt: {packages: [cabal-install-head,ghc-head,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
||||||
|
|
||||||
##### CABAL DIST CHECK
|
|
||||||
|
|
||||||
- env: BUILD=cabaldist GHCVER=8.2.2 CABALVER=1.24 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
|
||||||
compiler: ": #cabal 8.2.2 dist"
|
|
||||||
addons: {apt: {packages: [cabal-install-1.24,ghc-8.2.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
|
||||||
|
|
||||||
##### CANEW #####
|
##### CANEW #####
|
||||||
|
|
||||||
- env: BUILD=canew GHCVER=8.2.2 CABALVER=2.0 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
|
||||||
compiler: ": #cabal new 8.2.2"
|
|
||||||
addons: {apt: {packages: [cabal-install-2.0,ghc-8.2.2,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
|
||||||
- env: BUILD=canew GHCVER=8.8.1 CABALVER=3.0 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
- env: BUILD=canew GHCVER=8.8.1 CABALVER=3.0 HAPPYVER=1.19.5 ALEXVER=3.1.7
|
||||||
compiler: ": #cabal new 8.8.1"
|
compiler: ": #cabal new 8.8.1"
|
||||||
addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.1,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
addons: {apt: {packages: [cabal-install-3.0,ghc-8.8.1,happy-1.19.5,alex-3.1.7], sources: [hvr-ghc]}}
|
||||||
|
@ -89,9 +72,6 @@ matrix:
|
||||||
compiler: ": #stack default"
|
compiler: ": #stack default"
|
||||||
addons: {apt: {packages: [libgmp-dev]}}
|
addons: {apt: {packages: [libgmp-dev]}}
|
||||||
|
|
||||||
- env: BUILD=stack ARGS="--stack-yaml stack-8.2.2.yaml"
|
|
||||||
compiler: ": #stack 8.2.2"
|
|
||||||
addons: {apt: {packages: [libgmp-dev]}}
|
|
||||||
- env: BUILD=stack ARGS="--stack-yaml stack-8.4.3.yaml"
|
- env: BUILD=stack ARGS="--stack-yaml stack-8.4.3.yaml"
|
||||||
compiler: ": #stack 8.4.3"
|
compiler: ": #stack 8.4.3"
|
||||||
addons: {apt: {packages: [libgmp-dev]}}
|
addons: {apt: {packages: [libgmp-dev]}}
|
||||||
|
|
7
Makefile
7
Makefile
|
@ -5,7 +5,7 @@ test:
|
||||||
|
|
||||||
.PHONY: test-all
|
.PHONY: test-all
|
||||||
test-all:
|
test-all:
|
||||||
$(MAKE) test test-8.6.5 test-8.4.3 test-8.2.2
|
$(MAKE) test test-8.6.5 test-8.4.3
|
||||||
|
|
||||||
.PHONY: test-8.6.5
|
.PHONY: test-8.6.5
|
||||||
test-8.6.5:
|
test-8.6.5:
|
||||||
|
@ -16,8 +16,3 @@ test-8.6.5:
|
||||||
test-8.4.3:
|
test-8.4.3:
|
||||||
echo "test 8.4.3"
|
echo "test 8.4.3"
|
||||||
stack test --stack-yaml stack-8.4.3.yaml --work-dir .stack-work-8.4.3
|
stack test --stack-yaml stack-8.4.3.yaml --work-dir .stack-work-8.4.3
|
||||||
|
|
||||||
.PHONY: test-8.2.2
|
|
||||||
test-8.2.2:
|
|
||||||
echo "test 8.2.2"
|
|
||||||
stack test --stack-yaml stack-8.2.2.yaml --work-dir .stack-work-8.2.2
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ log the size of the input, but _not_ the full input/output of requests.)
|
||||||
|
|
||||||
# Other usage notes
|
# 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)
|
- included in stackage with lts>=10.0 (or nightlies dating to >=2017-11-15)
|
||||||
- config (file) documentation is lacking.
|
- config (file) documentation is lacking.
|
||||||
- some config values can not be configured via commandline yet.
|
- some config values can not be configured via commandline yet.
|
||||||
|
|
|
@ -91,8 +91,8 @@ library {
|
||||||
-fno-warn-redundant-constraints
|
-fno-warn-redundant-constraints
|
||||||
}
|
}
|
||||||
build-depends:
|
build-depends:
|
||||||
{ base >=4.10 && <4.15
|
{ base >=4.11 && <4.15
|
||||||
, ghc >=8.2.1 && <8.11
|
, ghc >=8.4.1 && <8.11
|
||||||
, ghc-paths >=0.1.0.9 && <0.2
|
, ghc-paths >=0.1.0.9 && <0.2
|
||||||
, ghc-exactprint >=0.5.8 && <0.6.4
|
, ghc-exactprint >=0.5.8 && <0.6.4
|
||||||
, transformers >=0.5.2.0 && <0.6
|
, transformers >=0.5.2.0 && <0.6
|
||||||
|
@ -118,7 +118,7 @@ library {
|
||||||
, semigroups >=0.18.2 && <0.20
|
, semigroups >=0.18.2 && <0.20
|
||||||
, cmdargs >=0.10.14 && <0.11
|
, cmdargs >=0.10.14 && <0.11
|
||||||
, czipwith >=1.0.1.0 && <1.1
|
, 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
|
, filepath >=1.4.1.0 && <1.5
|
||||||
, random >= 1.1 && <1.2
|
, random >= 1.1 && <1.2
|
||||||
}
|
}
|
||||||
|
|
|
@ -320,10 +320,5 @@ withTransformedAnns ast m = MultiRWSS.mGetRawR >>= \case
|
||||||
in annsBalanced
|
in annsBalanced
|
||||||
|
|
||||||
|
|
||||||
#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
warnExtractorCompat :: GHC.Warn -> String
|
warnExtractorCompat :: GHC.Warn -> String
|
||||||
warnExtractorCompat (GHC.Warn _ (L _ s)) = s
|
warnExtractorCompat (GHC.Warn _ (L _ s)) = s
|
||||||
#else /* ghc-8.2 */
|
|
||||||
warnExtractorCompat :: GenLocated l String -> String
|
|
||||||
warnExtractorCompat (L _ s) = s
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ layoutSig :: ToBriDoc Sig
|
||||||
layoutSig lsig@(L _loc sig) = case sig of
|
layoutSig lsig@(L _loc sig) = case sig of
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
TypeSig _ names (HsWC _ (HsIB _ typ)) -> layoutNamesAndType Nothing names typ
|
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
|
TypeSig names (HsWC _ (HsIB _ typ _)) -> layoutNamesAndType Nothing names typ
|
||||||
#endif
|
#endif
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
|
@ -124,7 +124,7 @@ layoutSig lsig@(L _loc sig) = case sig of
|
||||||
<> Text.pack " #-}"
|
<> Text.pack " #-}"
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
ClassOpSig _ False names (HsIB _ typ) -> layoutNamesAndType Nothing names typ
|
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
|
ClassOpSig False names (HsIB _ typ _) -> layoutNamesAndType Nothing names typ
|
||||||
#endif
|
#endif
|
||||||
#if MIN_VERSION_ghc(8,6,0)
|
#if MIN_VERSION_ghc(8,6,0)
|
||||||
|
@ -165,19 +165,11 @@ layoutSig lsig@(L _loc sig) = case sig of
|
||||||
|
|
||||||
specStringCompat
|
specStringCompat
|
||||||
:: MonadMultiWriter [BrittanyError] m => LSig GhcPs -> InlineSpec -> m String
|
:: MonadMultiWriter [BrittanyError] m => LSig GhcPs -> InlineSpec -> m String
|
||||||
#if MIN_VERSION_ghc(8,4,0)
|
|
||||||
specStringCompat ast = \case
|
specStringCompat ast = \case
|
||||||
NoUserInline -> mTell [ErrorUnknownNode "NoUserInline" ast] $> ""
|
NoUserInline -> mTell [ErrorUnknownNode "NoUserInline" ast] $> ""
|
||||||
Inline -> pure "INLINE "
|
Inline -> pure "INLINE "
|
||||||
Inlinable -> pure "INLINABLE "
|
Inlinable -> pure "INLINABLE "
|
||||||
NoInline -> pure "NOINLINE "
|
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 :: ToBriDoc' (Stmt GhcPs (LHsExpr GhcPs))
|
||||||
layoutGuardLStmt lgstmt@(L _ stmtLR) = docWrapNode lgstmt $ case stmtLR of
|
layoutGuardLStmt lgstmt@(L _ stmtLR) = docWrapNode lgstmt $ case stmtLR of
|
||||||
|
@ -349,10 +341,8 @@ layoutPatternBind funId binderDoc lmatch@(L _ match) = do
|
||||||
mIdStr <- case match of
|
mIdStr <- case match of
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
Match _ (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
|
Match _ (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
|
||||||
#elif MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
|
|
||||||
#else
|
#else
|
||||||
Match (FunRhs matchId _ _) _ _ _ -> Just <$> lrdrNameToTextAnn matchId
|
Match (FunRhs matchId _ _) _ _ -> Just <$> lrdrNameToTextAnn matchId
|
||||||
#endif
|
#endif
|
||||||
_ -> pure Nothing
|
_ -> pure Nothing
|
||||||
let mIdStr' = fixPatternBindIdentifier match <$> mIdStr
|
let mIdStr' = fixPatternBindIdentifier match <$> mIdStr
|
||||||
|
@ -774,28 +764,16 @@ layoutLPatSyn
|
||||||
:: Located (IdP GhcPs)
|
:: Located (IdP GhcPs)
|
||||||
-> HsPatSynDetails (Located (IdP GhcPs))
|
-> HsPatSynDetails (Located (IdP GhcPs))
|
||||||
-> ToBriDocM BriDocNumbered
|
-> ToBriDocM BriDocNumbered
|
||||||
#if MIN_VERSION_ghc(8,4,0)
|
|
||||||
layoutLPatSyn name (PrefixCon vars) = do
|
layoutLPatSyn name (PrefixCon vars) = do
|
||||||
#else
|
|
||||||
layoutLPatSyn name (PrefixPatSyn vars) = do
|
|
||||||
#endif
|
|
||||||
docName <- lrdrNameToTextAnn name
|
docName <- lrdrNameToTextAnn name
|
||||||
names <- mapM lrdrNameToTextAnn vars
|
names <- mapM lrdrNameToTextAnn vars
|
||||||
docSeq . fmap appSep $ docLit docName : (docLit <$> names)
|
docSeq . fmap appSep $ docLit docName : (docLit <$> names)
|
||||||
#if MIN_VERSION_ghc(8,4,0)
|
|
||||||
layoutLPatSyn name (InfixCon left right) = do
|
layoutLPatSyn name (InfixCon left right) = do
|
||||||
#else
|
|
||||||
layoutLPatSyn name (InfixPatSyn left right) = do
|
|
||||||
#endif
|
|
||||||
leftDoc <- lrdrNameToTextAnn left
|
leftDoc <- lrdrNameToTextAnn left
|
||||||
docName <- lrdrNameToTextAnn name
|
docName <- lrdrNameToTextAnn name
|
||||||
rightDoc <- lrdrNameToTextAnn right
|
rightDoc <- lrdrNameToTextAnn right
|
||||||
docSeq . fmap (appSep . docLit) $ [leftDoc, docName, rightDoc]
|
docSeq . fmap (appSep . docLit) $ [leftDoc, docName, rightDoc]
|
||||||
#if MIN_VERSION_ghc(8,4,0)
|
|
||||||
layoutLPatSyn name (RecCon recArgs) = do
|
layoutLPatSyn name (RecCon recArgs) = do
|
||||||
#else
|
|
||||||
layoutLPatSyn name (RecordPatSyn recArgs) = do
|
|
||||||
#endif
|
|
||||||
docName <- lrdrNameToTextAnn name
|
docName <- lrdrNameToTextAnn name
|
||||||
args <- mapM (lrdrNameToTextAnn . recordPatSynSelectorId) recArgs
|
args <- mapM (lrdrNameToTextAnn . recordPatSynSelectorId) recArgs
|
||||||
docSeq . fmap docLit
|
docSeq . fmap docLit
|
||||||
|
@ -895,14 +873,14 @@ layoutTyVarBndr needsSep lbndr@(L _ bndr) = do
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
|
||||||
XTyVarBndr{} -> error "brittany internal error: XTyVarBndr"
|
XTyVarBndr{} -> error "brittany internal error: XTyVarBndr"
|
||||||
UserTyVar _ name -> do
|
UserTyVar _ name -> do
|
||||||
#else /* 8.2 8.4 */
|
#else /* 8.4 */
|
||||||
UserTyVar name -> do
|
UserTyVar name -> do
|
||||||
#endif
|
#endif
|
||||||
nameStr <- lrdrNameToTextAnn name
|
nameStr <- lrdrNameToTextAnn name
|
||||||
docSeq $ [docSeparator | needsSep] ++ [docLit nameStr]
|
docSeq $ [docSeparator | needsSep] ++ [docLit nameStr]
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* 8.6 */
|
||||||
KindedTyVar _ name kind -> do
|
KindedTyVar _ name kind -> do
|
||||||
#else /* 8.2 8.4 */
|
#else /* 8.4 */
|
||||||
KindedTyVar name kind -> do
|
KindedTyVar name kind -> do
|
||||||
#endif
|
#endif
|
||||||
nameStr <- lrdrNameToTextAnn name
|
nameStr <- lrdrNameToTextAnn name
|
||||||
|
@ -939,14 +917,10 @@ layoutTyFamInstDecl inClass outerNode tfid = do
|
||||||
FamEqn _ name pats _fixity typ = hsib_body $ tfid_eqn tfid
|
FamEqn _ name pats _fixity typ = hsib_body $ tfid_eqn tfid
|
||||||
bndrsMay = Nothing
|
bndrsMay = Nothing
|
||||||
innerNode = outerNode
|
innerNode = outerNode
|
||||||
#elif MIN_VERSION_ghc(8,4,0)
|
#else
|
||||||
FamEqn name pats _fixity typ = hsib_body $ tfid_eqn tfid
|
FamEqn name pats _fixity typ = hsib_body $ tfid_eqn tfid
|
||||||
bndrsMay = Nothing
|
bndrsMay = Nothing
|
||||||
innerNode = outerNode
|
innerNode = outerNode
|
||||||
#else
|
|
||||||
innerNode@(L _ (TyFamEqn name boundPats _fixity typ)) = tfid_eqn tfid
|
|
||||||
bndrsMay = Nothing
|
|
||||||
pats = hsib_body boundPats
|
|
||||||
#endif
|
#endif
|
||||||
docWrapNodePrior outerNode $ do
|
docWrapNodePrior outerNode $ do
|
||||||
nameStr <- lrdrNameToTextAnn name
|
nameStr <- lrdrNameToTextAnn name
|
||||||
|
|
|
@ -62,7 +62,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
briDocByExactInlineOnly "HsRecFld" lexpr
|
briDocByExactInlineOnly "HsRecFld" lexpr
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
HsOverLabel _ext _reboundFromLabel name ->
|
HsOverLabel _ext _reboundFromLabel name ->
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
HsOverLabel _reboundFromLabel name ->
|
HsOverLabel _reboundFromLabel name ->
|
||||||
#endif
|
#endif
|
||||||
let label = FastString.unpackFS name
|
let label = FastString.unpackFS name
|
||||||
|
@ -174,14 +174,14 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
#endif
|
#endif
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
HsLamCase _ (MG _ (L _ []) _) -> do
|
HsLamCase _ (MG _ (L _ []) _) -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
HsLamCase (MG (L _ []) _ _ _) -> do
|
HsLamCase (MG (L _ []) _ _ _) -> do
|
||||||
#endif
|
#endif
|
||||||
docSetParSpacing $ docAddBaseY BrIndentRegular $
|
docSetParSpacing $ docAddBaseY BrIndentRegular $
|
||||||
(docLit $ Text.pack "\\case {}")
|
(docLit $ Text.pack "\\case {}")
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do
|
HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
HsLamCase (MG lmatches@(L _ matches) _ _ _) -> do
|
HsLamCase (MG lmatches@(L _ matches) _ _ _) -> do
|
||||||
#endif
|
#endif
|
||||||
binderDoc <- docLit $ Text.pack "->"
|
binderDoc <- docLit $ Text.pack "->"
|
||||||
|
@ -305,7 +305,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
HsAppType XHsWildCardBndrs{} _ ->
|
HsAppType XHsWildCardBndrs{} _ ->
|
||||||
error "brittany internal error: HsAppType XHsWildCardBndrs"
|
error "brittany internal error: HsAppType XHsWildCardBndrs"
|
||||||
HsAppType (HsWC _ ty1) exp1 -> do
|
HsAppType (HsWC _ ty1) exp1 -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
HsAppType exp1 (HsWC _ ty1) -> do
|
HsAppType exp1 (HsWC _ ty1) -> do
|
||||||
#endif
|
#endif
|
||||||
t <- docSharedWrapper layoutType ty1
|
t <- docSharedWrapper layoutType ty1
|
||||||
|
@ -321,7 +321,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
e
|
e
|
||||||
(docSeq [docLit $ Text.pack "@", t ])
|
(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
|
HsAppTypeOut{} -> do
|
||||||
-- TODO
|
-- TODO
|
||||||
briDocByExactInlineOnly "HsAppTypeOut{}" lexpr
|
briDocByExactInlineOnly "HsAppTypeOut{}" lexpr
|
||||||
|
@ -960,7 +960,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN] ++ [end]
|
in docSetBaseY $ docLines $ [start] ++ linesM ++ [lineN] ++ [end]
|
||||||
ExplicitList _ _ [] ->
|
ExplicitList _ _ [] ->
|
||||||
docLit $ Text.pack "[]"
|
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
|
ExplicitPArr{} -> do
|
||||||
-- TODO
|
-- TODO
|
||||||
briDocByExactInlineOnly "ExplicitPArr{}" lexpr
|
briDocByExactInlineOnly "ExplicitPArr{}" lexpr
|
||||||
|
@ -1044,7 +1044,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
ExprWithTySig XHsWildCardBndrs{} _ ->
|
ExprWithTySig XHsWildCardBndrs{} _ ->
|
||||||
error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
|
error "brittany internal error: ExprWithTySig XHsWildCardBndrs"
|
||||||
ExprWithTySig (HsWC _ (HsIB _ typ1)) exp1 -> do
|
ExprWithTySig (HsWC _ (HsIB _ typ1)) exp1 -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
ExprWithTySig exp1 (HsWC _ (HsIB _ typ1 _)) -> do
|
ExprWithTySig exp1 (HsWC _ (HsIB _ typ1 _)) -> do
|
||||||
#endif
|
#endif
|
||||||
expDoc <- docSharedWrapper layoutExpr exp1
|
expDoc <- docSharedWrapper layoutExpr exp1
|
||||||
|
@ -1054,7 +1054,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
, appSep $ docLit $ Text.pack "::"
|
, appSep $ docLit $ Text.pack "::"
|
||||||
, typDoc
|
, 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
|
ExprWithTySigOut{} -> do
|
||||||
-- TODO
|
-- TODO
|
||||||
briDocByExactInlineOnly "ExprWithTySigOut{}" lexpr
|
briDocByExactInlineOnly "ExprWithTySigOut{}" lexpr
|
||||||
|
@ -1103,7 +1103,7 @@ layoutExpr lexpr@(L _ expr) = do
|
||||||
]
|
]
|
||||||
ArithSeq{} ->
|
ArithSeq{} ->
|
||||||
briDocByExactInlineOnly "ArithSeq" lexpr
|
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
|
PArrSeq{} -> do
|
||||||
-- TODO
|
-- TODO
|
||||||
briDocByExactInlineOnly "PArrSeq{}" lexpr
|
briDocByExactInlineOnly "PArrSeq{}" lexpr
|
||||||
|
@ -1331,7 +1331,6 @@ recordExpression dotdot indentPolicy lexpr nameDoc rFs@(rF1:rFr) = do
|
||||||
in [line1] ++ lineR ++ [dotdotLine, lineN]
|
in [line1] ++ lineR ++ [dotdotLine, lineN]
|
||||||
)
|
)
|
||||||
|
|
||||||
#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
litBriDoc :: HsLit GhcPs -> BriDocFInt
|
litBriDoc :: HsLit GhcPs -> BriDocFInt
|
||||||
litBriDoc = \case
|
litBriDoc = \case
|
||||||
HsChar (SourceText t) _c -> BDFLit $ Text.pack t -- BDFLit $ Text.pack $ ['\'', c, '\'']
|
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
|
HsFractional (FL (SourceText t) _ _) -> BDFLit $ Text.pack t
|
||||||
HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
|
HsIsString (SourceText t) _ -> BDFLit $ Text.pack t
|
||||||
_ -> error "overLitValBriDoc: literal with no SourceText"
|
_ -> 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
|
|
||||||
|
|
|
@ -28,10 +28,6 @@ layoutExpr :: ToBriDoc HsExpr
|
||||||
|
|
||||||
-- layoutStmt :: ToBriDoc' (StmtLR GhcPs GhcPs (LHsExpr GhcPs))
|
-- layoutStmt :: ToBriDoc' (StmtLR GhcPs GhcPs (LHsExpr GhcPs))
|
||||||
|
|
||||||
#if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
litBriDoc :: HsLit GhcPs -> BriDocFInt
|
litBriDoc :: HsLit GhcPs -> BriDocFInt
|
||||||
#else /* ghc-8.2 */
|
|
||||||
litBriDoc :: HsLit -> BriDocFInt
|
|
||||||
#endif
|
|
||||||
|
|
||||||
overLitValBriDoc :: OverLitVal -> BriDocFInt
|
overLitValBriDoc :: OverLitVal -> BriDocFInt
|
||||||
|
|
|
@ -50,14 +50,14 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
|
||||||
-- _ -> expr
|
-- _ -> expr
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
VarPat _ n ->
|
VarPat _ n ->
|
||||||
#else /* ghc-8.2 8.4 */
|
#else /* ghc-8.4 */
|
||||||
VarPat n ->
|
VarPat n ->
|
||||||
#endif
|
#endif
|
||||||
fmap Seq.singleton $ docLit $ lrdrNameToText n
|
fmap Seq.singleton $ docLit $ lrdrNameToText n
|
||||||
-- abc -> expr
|
-- abc -> expr
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
LitPat _ lit ->
|
LitPat _ lit ->
|
||||||
#else /* ghc-8.2 8.4 */
|
#else /* ghc-8.4 */
|
||||||
LitPat lit ->
|
LitPat lit ->
|
||||||
#endif
|
#endif
|
||||||
fmap Seq.singleton $ allocateNode $ litBriDoc lit
|
fmap Seq.singleton $ allocateNode $ litBriDoc lit
|
||||||
|
@ -66,7 +66,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
|
||||||
ParPat _ inner -> do
|
ParPat _ inner -> do
|
||||||
#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
ParPat _ inner -> do
|
ParPat _ inner -> do
|
||||||
#else /* ghc-8.2 8.4 */
|
#else /* ghc-8.4 */
|
||||||
ParPat inner -> do
|
ParPat inner -> do
|
||||||
#endif
|
#endif
|
||||||
-- (nestedpat) -> expr
|
-- (nestedpat) -> expr
|
||||||
|
@ -202,7 +202,7 @@ layoutPat (ghcDL -> lpat@(L _ pat)) = docWrapNode lpat $ case pat of
|
||||||
SigPat _ pat1 (HsWC _ (HsIB _ ty1)) -> do
|
SigPat _ pat1 (HsWC _ (HsIB _ ty1)) -> do
|
||||||
#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#elif MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
SigPat (HsWC _ (HsIB _ ty1)) pat1 -> do
|
SigPat (HsWC _ (HsIB _ ty1)) pat1 -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
SigPatIn pat1 (HsWC _ (HsIB _ ty1 _)) -> do
|
SigPatIn pat1 (HsWC _ (HsIB _ ty1 _)) -> do
|
||||||
#endif
|
#endif
|
||||||
-- i :: Int -> expr
|
-- i :: Int -> expr
|
||||||
|
|
|
@ -44,14 +44,14 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
|
||||||
-- _ | traceShow (ExactPrint.Types.mkAnnKey ltype) False -> error "impossible"
|
-- _ | traceShow (ExactPrint.Types.mkAnnKey ltype) False -> error "impossible"
|
||||||
#if MIN_VERSION_ghc(8,6,0)
|
#if MIN_VERSION_ghc(8,6,0)
|
||||||
HsTyVar _ promoted name -> do
|
HsTyVar _ promoted name -> do
|
||||||
#else /* ghc-8.2 ghc-8.4 */
|
#else /* ghc-8.4 */
|
||||||
HsTyVar promoted name -> do
|
HsTyVar promoted name -> do
|
||||||
#endif
|
#endif
|
||||||
t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
|
t <- lrdrNameToTextAnnTypeEqualityIsSpecial name
|
||||||
case promoted of
|
case promoted of
|
||||||
#if MIN_VERSION_ghc(8,8,0)
|
#if MIN_VERSION_ghc(8,8,0)
|
||||||
IsPromoted -> docSeq
|
IsPromoted -> docSeq
|
||||||
#else /* ghc-8.2 8.4 8.6 */
|
#else /* ghc-8.4 8.6 */
|
||||||
Promoted -> docSeq
|
Promoted -> docSeq
|
||||||
#endif
|
#endif
|
||||||
[ docSeparator
|
[ docSeparator
|
||||||
|
@ -541,7 +541,7 @@ layoutType ltype@(L _ typ) = docWrapNode ltype $ case typ of
|
||||||
-- }
|
-- }
|
||||||
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
#if MIN_VERSION_ghc(8,6,0) /* ghc-8.6 */
|
||||||
HsIParamTy _ (L _ (HsIPName ipName)) typ1 -> do
|
HsIParamTy _ (L _ (HsIPName ipName)) typ1 -> do
|
||||||
#else /* ghc-8.2 */
|
#else /* ghc-8.4 */
|
||||||
HsIParamTy (L _ (HsIPName ipName)) typ1 -> do
|
HsIParamTy (L _ (HsIPName ipName)) typ1 -> do
|
||||||
#endif
|
#endif
|
||||||
typeDoc1 <- docSharedWrapper layoutType typ1
|
typeDoc1 <- docSharedWrapper layoutType typ1
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
#if !MIN_VERSION_ghc(8,4,0) /* ghc-8.2 */
|
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
module Language.Haskell.Brittany.Internal.Prelude
|
module Language.Haskell.Brittany.Internal.Prelude
|
||||||
( module E
|
( module E
|
||||||
, module Language.Haskell.Brittany.Internal.Prelude
|
, module Language.Haskell.Brittany.Internal.Prelude
|
||||||
|
@ -16,9 +11,7 @@ where
|
||||||
#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
|
#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
|
||||||
import GHC.Hs.Extension as E ( GhcPs )
|
import GHC.Hs.Extension as E ( GhcPs )
|
||||||
#else
|
#else
|
||||||
# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
import HsExtension as E ( GhcPs )
|
import HsExtension as E ( GhcPs )
|
||||||
# endif /* ghc-8.4 */
|
|
||||||
#endif /* ghc-8.10.1 */
|
#endif /* ghc-8.10.1 */
|
||||||
|
|
||||||
import RdrName as E ( RdrName )
|
import RdrName as E ( RdrName )
|
||||||
|
@ -411,18 +404,10 @@ todo :: a
|
||||||
todo = error "todo"
|
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)
|
#if MIN_VERSION_ghc(8,8,0)
|
||||||
ghcDL :: GHC.HasSrcSpan a => a -> GHC.Located (GHC.SrcSpanLess a)
|
ghcDL :: GHC.HasSrcSpan a => a -> GHC.Located (GHC.SrcSpanLess a)
|
||||||
ghcDL = GHC.dL
|
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 :: GHC.Located a -> GHC.Located a
|
||||||
ghcDL x = x
|
ghcDL x = x
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -62,9 +62,7 @@ import qualified Data.Generics.Uniplate.Direct as Uniplate
|
||||||
#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
|
#if MIN_VERSION_ghc(8,10,1) /* ghc-8.10.1 */
|
||||||
import qualified GHC.Hs.Extension as HsExtension
|
import qualified GHC.Hs.Extension as HsExtension
|
||||||
#else
|
#else
|
||||||
# if MIN_VERSION_ghc(8,4,0) /* ghc-8.4 */
|
|
||||||
import qualified HsExtension
|
import qualified HsExtension
|
||||||
# endif /* ghc-8.4 */
|
|
||||||
#endif /* ghc-8.10.1 */
|
#endif /* ghc-8.10.1 */
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
resolver: lts-11.1
|
|
||||||
|
|
||||||
extra-deps:
|
|
||||||
- czipwith-1.0.1.0
|
|
||||||
- butcher-1.3.1.1
|
|
||||||
- ghc-exactprint-0.5.8.0
|
|
||||||
|
|
||||||
packages:
|
|
||||||
- .
|
|
|
@ -1,33 +0,0 @@
|
||||||
# This file was autogenerated by Stack.
|
|
||||||
# You should not edit this file by hand.
|
|
||||||
# For more information, please see the documentation at:
|
|
||||||
# https://docs.haskellstack.org/en/stable/lock_files
|
|
||||||
|
|
||||||
packages:
|
|
||||||
- completed:
|
|
||||||
hackage: czipwith-1.0.1.0@sha256:30751c5a92488304863f20403cd8e9d4fee2b5def0b656a3d979aa3331a09c00,1652
|
|
||||||
pantry-tree:
|
|
||||||
size: 323
|
|
||||||
sha256: acd60968c5a1945741204751243f88d1af1c152018c2d9575f62c0805825f44f
|
|
||||||
original:
|
|
||||||
hackage: czipwith-1.0.1.0
|
|
||||||
- completed:
|
|
||||||
hackage: butcher-1.3.1.1@sha256:d5734df2e42c28c5a8419eb8251cc531e5f5e6a13794b2ae1dac04abd1c359ad,3242
|
|
||||||
pantry-tree:
|
|
||||||
size: 1197
|
|
||||||
sha256: 057b5c8aa0211951337d87cda1f3d4c6f049945314f6fc7883394eebac79be5b
|
|
||||||
original:
|
|
||||||
hackage: butcher-1.3.1.1
|
|
||||||
- completed:
|
|
||||||
hackage: ghc-exactprint-0.5.8.0@sha256:71915a08a7d442d39a63cb3b0fbd90b7dacd19bc4b05bac5c53b6e8a0d931b7b,7728
|
|
||||||
pantry-tree:
|
|
||||||
size: 83871
|
|
||||||
sha256: 3998143d33f7de29b31e8cf8d1b207c1fb4962f819fc820e209e1eecbf7e5a35
|
|
||||||
original:
|
|
||||||
hackage: ghc-exactprint-0.5.8.0
|
|
||||||
snapshots:
|
|
||||||
- completed:
|
|
||||||
size: 505335
|
|
||||||
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/11/1.yaml
|
|
||||||
sha256: 59c853f993e736f430ad20d03eb5441c715d84359c035de906f970841887a8f8
|
|
||||||
original: lts-11.1
|
|
Loading…
Reference in New Issue