From cf426f2040843a1a49c0ae0da2e46c4a8a3415e3 Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Sat, 20 May 2023 16:09:01 +0200 Subject: [PATCH] Retain comments after lambdacase and at record fields --- .../Brittany/Internal/ToBriDoc/Expr.hs | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs index a6a9b1b..a808a6f 100644 --- a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs +++ b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs @@ -124,19 +124,22 @@ layoutExpr lexpr@(L _ expr) = do docSetParSpacing $ docAddBaseY BrIndentRegular $ (docLit $ Text.pack "\\case {}") - HsLamCase _ (MG _ lmatches@(L _ matches) _) -> do + HsLamCase epAnn (MG _ lmatches@(L _ matches) _) -> do binderDoc <- docLit $ Text.pack "->" layouters <- mAsk funcPatDocs <- layout_patternBind layouters Nothing binderDoc `mapM` matches - docSetParSpacing $ docAddBaseY BrIndentRegular $ docPar - (docLit $ Text.pack "\\case") - ( docSetBaseAndIndent - $ docNonBottomSpacing - $ docHandleComms lmatches - $ docLines - $ return <$> funcPatDocs - ) + docSetParSpacing + $ docAddBaseY BrIndentRegular + $ docHandleComms epAnn + $ docPar + (docLit $ Text.pack "\\case") + ( docSetBaseAndIndent + $ docNonBottomSpacing + $ docHandleComms lmatches + $ docLines + $ return <$> funcPatDocs + ) HsApp _ exp1 _ -> do let gather :: [(EpAnnCO, LHsExpr GhcPs)] @@ -1015,7 +1018,7 @@ recordExpression dotdot wrapO wrapDD wrapC indentPolicy _lexpr nameDoc nameLayou [AddCommaAnn span] -> Just $ epaLocationRealSrcSpanStart span _ -> Nothing SrcSpanAnn EpAnnNotUsed _ -> Nothing - fnameDoc <- shareDoc $ nameLayouter nameThing + fnameDoc <- shareDoc $ docHandleComms fEpAnn $ nameLayouter nameThing if pun then pure $ Left (posStart, fnameDoc) else do