1
1
{-# LANGUAGE BlockArguments #-}
2
- {-# LANGUAGE DeriveGeneric #-}
2
+
3
3
{-# LANGUAGE DerivingStrategies #-}
4
4
{-# LANGUAGE DoAndIfThenElse #-}
5
5
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
6
6
{-# LANGUAGE LambdaCase #-}
7
- {-# LANGUAGE RecordWildCards #-}
7
+
8
8
module Language.Haskell.Stylish.Printer
9
9
( Printer (.. )
10
10
, PrinterConfig (.. )
@@ -91,7 +91,7 @@ runPrinter cfg (Printer printer) =
91
91
let
92
92
(a, PrinterState parsedLines _ startedLine) = runReaderT printer cfg `runState` PrinterState [] 0 " "
93
93
in
94
- (a, parsedLines <> if startedLine == [] then [] else [startedLine] )
94
+ (a, parsedLines <> ([startedLine | startedLine /= [] ]) )
95
95
96
96
-- | Run printer to get printed lines only
97
97
runPrinter_ :: PrinterConfig -> Printer a -> Lines
@@ -160,18 +160,18 @@ putRdrName rdrName = case GHC.unLoc rdrName of
160
160
161
161
nameAnnAdornment :: GHC. NameAnn -> (String , String )
162
162
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
163
+ GHC. NameAnn {GHC. nann_adornment = na } -> fromAdornment na
164
+ GHC. NameAnnCommas {GHC. nann_adornment = na } -> fromAdornment na
165
+ GHC. NameAnnBars {GHC. nann_parensh = (o, c) } -> fromAdornment ( GHC. NameParensHash o c)
166
+ GHC. NameAnnOnly {GHC. nann_adornment = na } -> fromAdornment na
167
167
GHC. NameAnnRArrow {} -> (mempty , mempty )
168
168
GHC. NameAnnQuote {} -> (" '" , mempty )
169
169
GHC. NameAnnTrailing {} -> (mempty , mempty )
170
170
where
171
- fromAdornment GHC. NameParens = (" (" , " )" )
172
- fromAdornment GHC. NameBackquotes = (" `" , " `" )
173
- fromAdornment GHC. NameParensHash = (" #( " , " #)" )
174
- fromAdornment GHC. NameSquare = (" [" , " ]" )
171
+ fromAdornment ( GHC. NameParens _ _) = (" (" , " )" )
172
+ fromAdornment ( GHC. NameBackquotes _ _) = (" `" , " `" )
173
+ fromAdornment ( GHC. NameParensHash _ _) = (" (# " , " #)" )
174
+ fromAdornment ( GHC. NameSquare _ _) = (" [" , " ]" )
175
175
176
176
-- | Print module name
177
177
putModuleName :: GHC. ModuleName -> P ()
@@ -197,7 +197,7 @@ putType ltp = case GHC.unLoc ltp of
197
197
(comma >> space)
198
198
(fmap putType xs)
199
199
putText " ]"
200
- GHC. HsExplicitTupleTy _ xs -> do
200
+ GHC. HsExplicitTupleTy _ _ xs -> do
201
201
putText " '("
202
202
sep
203
203
(comma >> space)
@@ -230,23 +230,23 @@ putType ltp = case GHC.unLoc ltp of
230
230
putOutputable ltp
231
231
GHC. HsQualTy {} ->
232
232
putOutputable ltp
233
- GHC. HsAppKindTy _ _ _ ->
233
+ GHC. HsAppKindTy {} ->
234
234
putOutputable ltp
235
235
GHC. HsListTy _ _ ->
236
236
putOutputable ltp
237
237
GHC. HsSumTy _ _ ->
238
238
putOutputable ltp
239
- GHC. HsIParamTy _ _ _ ->
239
+ GHC. HsIParamTy {} ->
240
240
putOutputable ltp
241
- GHC. HsKindSig _ _ _ ->
241
+ GHC. HsKindSig {} ->
242
242
putOutputable ltp
243
243
GHC. HsStarTy _ _ ->
244
244
putOutputable ltp
245
245
GHC. HsSpliceTy _ _ ->
246
246
putOutputable ltp
247
- GHC. HsDocTy _ _ _ ->
247
+ GHC. HsDocTy {} ->
248
248
putOutputable ltp
249
- GHC. HsBangTy _ _ _ ->
249
+ GHC. HsBangTy {} ->
250
250
putOutputable ltp
251
251
GHC. HsRecTy _ _ ->
252
252
putOutputable ltp
@@ -284,7 +284,7 @@ parenthesize action = putText "(" *> action <* putText ")"
284
284
-- | Add separator between each element of the given printers
285
285
sep :: P a -> [P a ] -> P ()
286
286
sep _ [] = pure ()
287
- sep s (first : rest) = first >> forM_ rest ((>>) s )
287
+ sep s (first : rest) = first >> forM_ rest (s >> )
288
288
289
289
-- | Prefix a printer with another one
290
290
prefix :: P a -> P b -> P b
0 commit comments