Upgrade strategyLeftRight + smth else

mxxun/ghc-9.2
mrkun 2022-01-30 21:49:35 +03:00
parent 422f93db20
commit b575d4a574
2 changed files with 16 additions and 12 deletions

View File

@ -17,7 +17,7 @@ import qualified Data.Set as Set
import qualified Data.Text as Text import qualified Data.Text as Text
import qualified Data.Text.Lazy.Builder as Text.Builder import qualified Data.Text.Lazy.Builder as Text.Builder
import DataTreePrint import DataTreePrint
import GHC (GenLocated(L), Located, moduleName, moduleNameString) import GHC (GenLocated(L), Located, LocatedAn, moduleName, moduleNameString)
import qualified GHC.OldList as List import qualified GHC.OldList as List
import GHC.Parser.Annotation (AnnKeywordId(..)) import GHC.Parser.Annotation (AnnKeywordId(..))
import GHC.Types.Name (getOccString) import GHC.Types.Name (getOccString)
@ -639,15 +639,15 @@ docNodeMoveToKWDP ast kw shouldRestoreIndent bdm =
class DocWrapable a where class DocWrapable a where
docWrapNode :: ( Data.Data.Data ast) docWrapNode :: ( Data.Data.Data ast)
=> Located ast => LocatedAn an ast
-> a -> a
-> a -> a
docWrapNodePrior :: ( Data.Data.Data ast) docWrapNodePrior :: ( Data.Data.Data ast)
=> Located ast => LocatedAn an ast
-> a -> a
-> a -> a
docWrapNodeRest :: ( Data.Data.Data ast) docWrapNodeRest :: ( Data.Data.Data ast)
=> Located ast => LocatedAn an ast
-> a -> a
-> a -> a

View File

@ -275,19 +275,23 @@ derivingClauseDoc (L _ (HsDerivingClause _ext mStrategy types)) = case types of
$ List.intersperse docCommaSep $ List.intersperse docCommaSep
$ ts $ ts
<&> \case <&> \case
HsIB _ t -> layoutType t _ -> undefined
-- HsIB _ t -> layoutType t
, whenMoreThan1Type ")" , whenMoreThan1Type ")"
, rhsStrategy , rhsStrategy
] ]
where where
strategyLeftRight
:: GenLocated (SrcAnn ann) (DerivStrategy GhcPs)
-> (ToBriDocM BriDocNumbered, ToBriDocM BriDocNumbered)
strategyLeftRight = \case strategyLeftRight = \case
(L _ StockStrategy) -> (docLitS " stock", docEmpty) (L _ (StockStrategy _)) -> (docLitS " stock", docEmpty)
(L _ AnyclassStrategy) -> (docLitS " anyclass", docEmpty) (L _ (AnyclassStrategy _)) -> (docLitS " anyclass", docEmpty)
(L _ NewtypeStrategy) -> (docLitS " newtype", docEmpty) (L _ (NewtypeStrategy _)) -> (docLitS " newtype", docEmpty)
lVia@(L _ (ViaStrategy viaTypes)) -> lVia@(L _ (ViaStrategy viaTypes)) ->
( docEmpty ( docEmpty
, case viaTypes of , case viaTypes of
HsIB _ext t -> XViaStrategyPs _epann (L _span (HsSig _sig _bndrs t)) ->
docSeq [docWrapNode lVia $ docLitS " via", docSeparator, layoutType t] docSeq [docWrapNode lVia $ docLitS " via", docSeparator, layoutType t]
) )
@ -295,9 +299,9 @@ docDeriving :: ToBriDocM BriDocNumbered
docDeriving = docLitS "deriving" docDeriving = docLitS "deriving"
createDetailsDoc createDetailsDoc
:: Text -> HsConDeclDetails GhcPs -> (ToBriDocM BriDocNumbered) :: Text -> HsConDeclH98Details GhcPs -> (ToBriDocM BriDocNumbered)
createDetailsDoc consNameStr details = case details of createDetailsDoc consNameStr details = case details of
PrefixCon args -> do PrefixCon _ args -> do
indentPolicy <- mAsk <&> _conf_layout .> _lconfig_indentPolicy .> confUnpack indentPolicy <- mAsk <&> _conf_layout .> _lconfig_indentPolicy .> confUnpack
let let
singleLine = docSeq singleLine = docSeq