Skip to content

Commit 6f7a753

Browse files
Upgrade to ghc 9.12
1 parent ce15c5a commit 6f7a753

File tree

13 files changed

+48
-45
lines changed

13 files changed

+48
-45
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
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.8.3", "9.10", "9.12"]
1313

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

lib/Language/Haskell/Stylish/Comments.hs

Lines changed: 1 addition & 1 deletion
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

lib/Language/Haskell/Stylish/GHC.hs

Lines changed: 1 addition & 1 deletion
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

lib/Language/Haskell/Stylish/Module.hs

Lines changed: 1 addition & 1 deletion
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 .

lib/Language/Haskell/Stylish/Printer.hs

Lines changed: 11 additions & 9 deletions
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)

lib/Language/Haskell/Stylish/Step/Data.hs

Lines changed: 2 additions & 0 deletions
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]

lib/Language/Haskell/Stylish/Step/Imports.hs

Lines changed: 1 addition & 1 deletion
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

lib/Language/Haskell/Stylish/Step/LanguagePragmas.hs

Lines changed: 2 additions & 2 deletions
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+
_ -> []

lib/Language/Haskell/Stylish/Step/ModuleHeader.hs

Lines changed: 8 additions & 8 deletions
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

lib/Language/Haskell/Stylish/Step/SimpleAlign.hs

Lines changed: 2 additions & 2 deletions
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

0 commit comments

Comments
 (0)