From d5f1deaa3ddfaf504ed8f095c4afaa97db2e52b6 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Mon, 26 Jun 2023 17:47:50 +0200 Subject: [PATCH] Stop duplicating commas for splices inside list --- .../Haskell/Brittany/Internal/ToBriDoc/Expr.hs | 8 ++++++-- .../Haskell/Brittany/Internal/ToBriDocTools.hs | 12 +++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs index 11fba6c..8aa7323 100644 --- a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs +++ b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs @@ -942,9 +942,13 @@ layoutExpr lexpr@(L _ expr) = do ++ showOutputable content ++ "|]" ) - HsSpliceE{} -> do + splice@HsSpliceE{} -> do -- TODO - briDocByExactInlineOnly "HsSpliceE{}" lexpr + let epAnnWithoutCommas = case GHC.getLoc lexpr of + SrcSpanAnn (EpAnn anch (AnnListItem _) comms) srcLoc -> do + SrcSpanAnn (EpAnn anch (AnnListItem []) comms) srcLoc + x@(SrcSpanAnn EpAnnNotUsed _) -> x + briDocByExactInlineOnly "HsSpliceE{}" (L epAnnWithoutCommas splice) HsProc{} -> do -- TODO briDocByExactInlineOnly "HsProc{}" lexpr diff --git a/source/library/Language/Haskell/Brittany/Internal/ToBriDocTools.hs b/source/library/Language/Haskell/Brittany/Internal/ToBriDocTools.hs index 1058c54..91229ce 100644 --- a/source/library/Language/Haskell/Brittany/Internal/ToBriDocTools.hs +++ b/source/library/Language/Haskell/Brittany/Internal/ToBriDocTools.hs @@ -81,14 +81,20 @@ briDocByExactNoComment ast = do -- not contain any newlines. If this property is not met, the semantics -- depend on the @econf_AllowRiskyExactPrintUse@ config flag. briDocByExactInlineOnly - :: ( ExactPrint.ExactPrint (GHC.XRec GhcPs a) - , Data (GHC.XRec GhcPs a) + -- :: ( ExactPrint.ExactPrint (GHC.XRec GhcPs a) + -- , Data (GHC.XRec GhcPs a) + -- , Data a + -- , Data (GHC.Anno a) + -- , Outputable (GHC.Anno a) + -- ) + :: ( GHC.Anno a ~ GHC.SrcSpanAnn' (EpAnn ann) + , ExactPrint.ExactPrint (GenLocated (GHC.SrcSpanAnn' (EpAnn ann)) a) , Data a , Data (GHC.Anno a) , Outputable (GHC.Anno a) ) => String - -> GHC.XRec GhcPs a + -> GenLocated (GHC.SrcSpanAnn' (EpAnn ann)) a -> ToBriDocM (BriDocNumbered) briDocByExactInlineOnly infoStr ast = do traceIfDumpConf "ast"