Skip to content

Commit 8e3334b

Browse files
Upgrade to ghc 9.12
1 parent ce15c5a commit 8e3334b

File tree

13 files changed

+48
-45
lines changed

13 files changed

+48
-45
lines changed

Diff for: .github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
strategy:
1010
matrix:
1111
os: [ubuntu-latest, macOS-latest]
12-
ghc: ["9.6.6", "9.8", "9.10"]
12+
ghc: ["9.10", "9.12"]
1313

1414
steps:
1515
- uses: actions/checkout@v4

Diff for: lib/Language/Haskell/Stylish/Comments.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ commentGroups getSpan allItems allComments =
6161
commentsWithLines :: [(LineBlock, GHC.LEpaComment)]
6262
commentsWithLines = do
6363
comment <- allComments
64-
let s = GHC.anchor $ GHC.getLoc comment
64+
let s = GHC.epaLocationRealSrcSpan $ GHC.getLoc comment
6565
pure (realSrcSpanToLineBlock s, comment)
6666

6767
work

Diff for: lib/Language/Haskell/Stylish/GHC.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,6 @@ deepAnnComments :: (Data a, Typeable a) => a -> [GHC.LEpaComment]
8686
deepAnnComments = everything (++) (mkQ [] priorAndFollowing)
8787

8888
priorAndFollowing :: GHC.EpAnnComments -> [GHC.LEpaComment]
89-
priorAndFollowing = sortOn (GHC.anchor . GHC.getLoc) . \case
89+
priorAndFollowing = sortOn (GHC.epaLocationRealSrcSpan . GHC.getLoc) . \case
9090
GHC.EpaComments {..} -> priorComments
9191
GHC.EpaCommentsBalanced {..} -> priorComments ++ followingComments

Diff for: lib/Language/Haskell/Stylish/Module.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ moduleLanguagePragmas =
141141
prag comment = case GHC.ac_tok (GHC.unLoc comment) of
142142
GHC.EpaBlockComment str
143143
| lang : p1 : ps <- tokenize str, map toLower lang == "language" ->
144-
pure (GHC.anchor (GHC.getLoc comment), p1 :| ps)
144+
pure (GHC.epaLocationRealSrcSpan (GHC.getLoc comment), p1 :| ps)
145145
_ -> Nothing
146146

147147
tokenize = words .

Diff for: lib/Language/Haskell/Stylish/Printer.hs

+11-9
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import GHC.Hs.Extension (GhcPs)
5353
import GHC.Types.Name.Reader (RdrName (..))
5454
import GHC.Types.SrcLoc (GenLocated (..))
5555
import qualified GHC.Types.SrcLoc as GHC
56+
import GHC.TypeLits (symbolVal)
5657
import GHC.Utils.Outputable (Outputable)
5758

5859
--------------------------------------------------------------------------------
@@ -160,18 +161,19 @@ putRdrName rdrName = case GHC.unLoc rdrName of
160161

161162
nameAnnAdornment :: GHC.NameAnn -> (String, String)
162163
nameAnnAdornment = \case
163-
GHC.NameAnn {..} -> fromAdornment nann_adornment
164-
GHC.NameAnnCommas {..} -> fromAdornment nann_adornment
165-
GHC.NameAnnBars {..} -> fromAdornment nann_adornment
166-
GHC.NameAnnOnly {..} -> fromAdornment nann_adornment
164+
GHC.NameAnn {GHC.nann_adornment = na} -> fromAdornment na
165+
GHC.NameAnnCommas {GHC.nann_adornment = na} -> fromAdornment na
166+
GHC.NameAnnBars {GHC.nann_parensh = (o, c)} -> fromAdornment (GHC.NameParensHash o c)
167+
GHC.NameAnnOnly {GHC.nann_adornment = na} -> fromAdornment na
167168
GHC.NameAnnRArrow {} -> (mempty, mempty)
168169
GHC.NameAnnQuote {} -> ("'", mempty)
169170
GHC.NameAnnTrailing {} -> (mempty, mempty)
170171
where
171-
fromAdornment GHC.NameParens = ("(", ")")
172-
fromAdornment GHC.NameBackquotes = ("`", "`")
173-
fromAdornment GHC.NameParensHash = ("#(", "#)")
174-
fromAdornment GHC.NameSquare = ("[", "]")
172+
fromAdornment (GHC.NameParens l r) = (symbolVal l, symbolVal r)
173+
fromAdornment (GHC.NameBackquotes l r) = (symbolVal l, symbolVal r)
174+
fromAdornment (GHC.NameParensHash l r) = (symbolVal l, symbolVal r)
175+
fromAdornment (GHC.NameSquare l r) = (symbolVal l, symbolVal r)
176+
fromAdornment GHC.NameNoAdornment = (mempty, mempty)
175177

176178
-- | Print module name
177179
putModuleName :: GHC.ModuleName -> P ()
@@ -197,7 +199,7 @@ putType ltp = case GHC.unLoc ltp of
197199
(comma >> space)
198200
(fmap putType xs)
199201
putText "]"
200-
GHC.HsExplicitTupleTy _ xs -> do
202+
GHC.HsExplicitTupleTy _ _ xs -> do
201203
putText "'("
202204
sep
203205
(comma >> space)

Diff for: lib/Language/Haskell/Stylish/Step/Data.hs

+2
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ step cfg = makeStep "Data" \ls m -> Editor.apply (changes m) ls
103103
isAfterStart :: GHC.LEpaComment -> Bool
104104
isAfterStart (GHC.L (GHC.EpaSpan (GHC.RealSrcSpan commentSpan _)) _) =
105105
GHC.srcSpanStartLine commentSpan >= GHC.srcSpanStartLine declSpan
106+
isAfterStart (GHC.L (GHC.EpaDelta (GHC.RealSrcSpan commentSpan _) _ _) _) =
107+
GHC.srcSpanStartLine commentSpan >= GHC.srcSpanStartLine declSpan
106108
isAfterStart _ = False
107109

108110
dataDecls :: Module -> [DataDecl]

Diff for: lib/Language/Haskell/Stylish/Step/Imports.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -638,7 +638,7 @@ prepareImportList =
638638
prepareInner :: GHC.IE GHC.GhcPs -> GHC.IE GHC.GhcPs
639639
prepareInner = \case
640640
-- Simplify `A ()` to `A`.
641-
GHC.IEThingWith x n GHC.NoIEWildcard [] md -> GHC.IEThingAbs x n md
641+
GHC.IEThingWith x n GHC.NoIEWildcard [] md -> GHC.IEThingAbs (fst x) n md
642642
GHC.IEThingWith x n w ns md ->
643643
GHC.IEThingWith x n w (sortBy (compareWrappedName `on` GHC.unLoc) ns) md
644644
ie -> ie

Diff for: lib/Language/Haskell/Stylish/Step/LanguagePragmas.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -198,5 +198,5 @@ isRedundantBangPatterns modul =
198198

199199
getMatchStrict :: GHC.Match GHC.GhcPs (GHC.LHsExpr GHC.GhcPs) -> [()]
200200
getMatchStrict (GHC.Match _ ctx _ _) = case ctx of
201-
GHC.FunRhs _ _ GHC.SrcStrict -> [()]
202-
_ -> []
201+
GHC.FunRhs _ _ GHC.SrcStrict _ -> [()]
202+
_ -> []

Diff for: lib/Language/Haskell/Stylish/Step/ModuleHeader.hs

+8-8
Original file line numberDiff line numberDiff line change
@@ -81,18 +81,18 @@ printModuleHeader maxCols conf ls lmodul =
8181
loc <- GHC.getLocA <$> GHC.hsmodExports modul
8282
GHC.srcSpanEndLine <$> GHC.srcSpanToRealSrcSpan loc)
8383

84-
keywordLine kw = listToMaybe $ do
84+
keywordLine kw = do
8585
GHC.EpAnn {..} <- pure $ GHC.hsmodAnn $ GHC.hsmodExt modul
86-
GHC.AddEpAnn kw' (GHC.EpaSpan (GHC.RealSrcSpan s _)) <- GHC.am_main anns
87-
guard $ kw == kw'
88-
pure $ GHC.srcSpanEndLine s
86+
case kw anns of
87+
GHC.EpTok (GHC.EpaSpan (GHC.RealSrcSpan s _)) -> Just . GHC.srcSpanEndLine $ s
88+
_ -> Nothing
8989

90-
moduleLine = keywordLine GHC.AnnModule
91-
whereLine = keywordLine GHC.AnnWhere
90+
moduleLine = keywordLine GHC.am_mod
91+
whereLine = keywordLine GHC.am_where
9292

9393
commentOnLine l = listToMaybe $ do
9494
comment <- epAnnComments $ GHC.hsmodAnn $ GHC.hsmodExt modul
95-
guard $ GHC.srcSpanStartLine (GHC.anchor $ GHC.getLoc comment) == l
95+
guard $ GHC.srcSpanStartLine (GHC.epaLocationRealSrcSpan $ GHC.getLoc comment) == l
9696
pure comment
9797

9898
moduleComment = moduleLine >>= commentOnLine
@@ -152,7 +152,7 @@ printHeader conf mbName mbDeprec mbExps mbModuleComment mbWhereComment = do
152152
attachModuleComment
153153
Single | [egroup] <- exports
154154
, not (commentGroupHasComments egroup)
155-
, [(export, _)] <- (cgItems egroup) -> do
155+
, [(export, _)] <- cgItems egroup -> do
156156
printSingleLineExportList conf [export]
157157
attachModuleComment
158158
Inline | [] <- exports -> do

Diff for: lib/Language/Haskell/Stylish/Step/SimpleAlign.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ matchGroupToAlignable conf mg = cases' ++ patterns'
112112
matchToAlignable
113113
:: GHC.LocatedA (Hs.Match Hs.GhcPs (Hs.LHsExpr Hs.GhcPs))
114114
-> Maybe (Either (Alignable GHC.RealSrcSpan) (Alignable GHC.RealSrcSpan))
115-
matchToAlignable (GHC.L matchLoc m@(Hs.Match _ Hs.CaseAlt pats@(_ : _) grhss)) = do
115+
matchToAlignable (GHC.L matchLoc m@(Hs.Match _ Hs.CaseAlt (GHC.L _ pats@(_ : _)) grhss)) = do
116116
let patsLocs = map GHC.getLocA pats
117117
pat = last patsLocs
118118
guards = getGuards m
@@ -128,7 +128,7 @@ matchToAlignable (GHC.L matchLoc m@(Hs.Match _ Hs.CaseAlt pats@(_ : _) grhss)) =
128128
, aRight = rightPos
129129
, aRightLead = length "-> "
130130
}
131-
matchToAlignable (GHC.L matchLoc (Hs.Match _ (Hs.FunRhs name _ _) pats@(_ : _) grhss)) = do
131+
matchToAlignable (GHC.L matchLoc (Hs.Match _ (Hs.FunRhs name _ _ _) (GHC.L _ pats@(_ : _)) grhss)) = do
132132
body <- unguardedRhsBody grhss
133133
let patsLocs = map GHC.getLocA pats
134134
nameLoc = GHC.getLocA name

Diff for: lib/Language/Haskell/Stylish/Step/Squash.hs

+11-12
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
--------------------------------------------------------------------------------
2+
{-# LANGUAGE DataKinds #-}
23
{-# LANGUAGE PartialTypeSignatures #-}
34
{-# LANGUAGE PatternGuards #-}
45
{-# LANGUAGE RecordWildCards #-}
@@ -9,7 +10,6 @@ module Language.Haskell.Stylish.Step.Squash
910

1011

1112
--------------------------------------------------------------------------------
12-
import Data.Maybe (listToMaybe)
1313
import qualified GHC.Hs as GHC
1414
import qualified GHC.Types.SrcLoc as GHC
1515

@@ -45,10 +45,9 @@ squashFieldDecl _ = mempty
4545

4646

4747
--------------------------------------------------------------------------------
48-
fieldDeclSeparator :: [GHC.AddEpAnn]-> Maybe GHC.RealSrcSpan
49-
fieldDeclSeparator anns = listToMaybe $ do
50-
GHC.AddEpAnn GHC.AnnDcolon (GHC.EpaSpan (GHC.RealSrcSpan s _)) <- anns
51-
pure s
48+
fieldDeclSeparator :: GHC.EpUniToken "::" "\8759" -> Maybe GHC.RealSrcSpan
49+
fieldDeclSeparator (GHC.EpUniTok (GHC.EpaSpan (GHC.RealSrcSpan s _)) _) = Just s
50+
fieldDeclSeparator _ = Nothing
5251

5352

5453
--------------------------------------------------------------------------------
@@ -65,23 +64,23 @@ squashMatch lmatch = case GHC.m_grhss match of
6564
where
6665
match = GHC.unLoc lmatch
6766
mbLeft = case match of
68-
GHC.Match _ (GHC.FunRhs name _ _) [] _ ->
67+
GHC.Match _ (GHC.FunRhs name _ _ _ ) (GHC.L _ []) _ ->
6968
GHC.srcSpanToRealSrcSpan $ GHC.getLocA name
70-
GHC.Match _ _ pats@(_ : _) _ ->
69+
GHC.Match _ _ (GHC.L _ pats@(_ : _)) _ ->
7170
GHC.srcSpanToRealSrcSpan . GHC.getLocA $ last pats
7271
_ -> Nothing
7372

7473

7574
--------------------------------------------------------------------------------
7675
matchSeparator :: GHC.EpAnn GHC.GrhsAnn -> Maybe GHC.RealSrcSpan
77-
matchSeparator GHC.EpAnn {..}
78-
| GHC.AddEpAnn _ (GHC.EpaSpan (GHC.RealSrcSpan s _)) <- GHC.ga_sep anns = Just s
79-
matchSeparator _ = Nothing
80-
76+
matchSeparator GHC.EpAnn {..} = case GHC.ga_sep anns of
77+
Left (GHC.EpTok (GHC.EpaSpan (GHC.RealSrcSpan s _))) -> Just s
78+
Right (GHC.EpUniTok (GHC.EpaSpan (GHC.RealSrcSpan s _)) _) -> Just s
79+
_ -> Nothing
8180

8281
--------------------------------------------------------------------------------
8382
step :: Step
84-
step = makeStep "Squash" $ \ls (module') ->
83+
step = makeStep "Squash" $ \ls module' ->
8584
let changes =
8685
foldMap squashFieldDecl (everything module') <>
8786
foldMap squashMatch (everything module') in

Diff for: lib/Language/Haskell/Stylish/Step/UnicodeSyntax.hs

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ hsTyReplacements (GHC.HsFunTy _ arr _ _)
2424
Editor.replaceRealSrcSpan (GHC.epaLocationRealSrcSpan epaLoc) ""
2525
hsTyReplacements (GHC.HsQualTy _ ctx _)
2626
| Just arrow <- GHC.ac_darrow . GHC.anns $ GHC.getLoc ctx
27-
, (GHC.NormalSyntax, GHC.EpaSpan (GHC.RealSrcSpan loc _)) <- arrow =
27+
, (GHC.EpUniTok (GHC.EpaSpan (GHC.RealSrcSpan loc _)) GHC.NormalSyntax) <- arrow =
2828
Editor.replaceRealSrcSpan loc ""
2929
hsTyReplacements _ = mempty
3030

3131

3232
--------------------------------------------------------------------------------
3333
hsSigReplacements :: GHC.Sig GHC.GhcPs -> Editor.Edits
3434
hsSigReplacements (GHC.TypeSig ann _ _)
35-
| GHC.AddEpAnn GHC.AnnDcolon epaLoc <- GHC.asDcolon ann
35+
| GHC.EpUniTok epaLoc _ <- GHC.asDcolon ann
3636
, GHC.EpaSpan (GHC.RealSrcSpan loc _) <- epaLoc =
3737
Editor.replaceRealSrcSpan loc ""
3838
hsSigReplacements _ = mempty

Diff for: stylish-haskell.cabal

+5-5
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Common depends
3737

3838
Build-depends:
3939
aeson >= 0.6 && < 2.3,
40-
base >= 4.8 && < 5,
40+
base >= 4.19 && < 5,
4141
bytestring >= 0.9 && < 0.13,
4242
Cabal >= 3.14 && < 4.0,
4343
containers >= 0.3 && < 0.9,
@@ -59,17 +59,17 @@ Common depends
5959
-- and we have a new enough GHC. Note that
6060
-- this will only work if the user's
6161
-- compiler is of the matching major version!
62-
if !flag(ghc-lib) && impl(ghc >= 9.8) && impl(ghc < 9.11)
62+
if !flag(ghc-lib) && impl(ghc >= 9.8) && impl(ghc < 9.13)
6363
Build-depends:
64-
ghc >= 9.10 && < 9.11,
64+
ghc >= 9.12 && < 9.13,
6565
ghc-boot,
6666
ghc-boot-th
6767
else
6868
Build-depends:
69-
ghc-lib-parser >= 9.10 && < 9.11
69+
ghc-lib-parser >= 9.12 && < 9.13
7070

7171
Build-depends:
72-
ghc-lib-parser-ex >= 9.10 && < 9.11
72+
ghc-lib-parser-ex >= 9.12 && < 9.13
7373

7474
Library
7575
Import: depends

0 commit comments

Comments
 (0)