diff --git a/src-literatetests/15-regressions.blt b/src-literatetests/15-regressions.blt index 3a0b19d..91038fc 100644 --- a/src-literatetests/15-regressions.blt +++ b/src-literatetests/15-regressions.blt @@ -373,6 +373,16 @@ runBrittany tabSize text = do } parsePrintModule config text +#test issue 37 + +foo = + ( a + , -- comment1 + b + -- comment2 + , c + ) + #test issue 38 {-# LANGUAGE TypeApplications #-} diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs index 4aca92f..d144b80 100644 --- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs @@ -346,8 +346,12 @@ layoutExpr lexpr@(L _ expr) = do rightDoc <- docSharedWrapper layoutExpr right docSeq [opDoc, docSeparator, rightDoc] ExplicitTuple args boxity -> do - let argExprs = fmap (\case (L _ (Present e)) -> Just e; (L _ (Missing PlaceHolder)) -> Nothing) args - argDocs <- docSharedWrapper (maybe docEmpty layoutExpr) `mapM` argExprs + let argExprs = args <&> \arg -> case arg of + (L _ (Present e)) -> (arg, Just e); + (L _ (Missing PlaceHolder)) -> (arg, Nothing) + argDocs <- forM argExprs + $ docSharedWrapper + $ \(arg, exprM) -> docWrapNode arg $ maybe docEmpty layoutExpr exprM hasComments <- hasAnyCommentsBelow lexpr let (openLit, closeLit) = case boxity of Boxed -> (docLit $ Text.pack "(", docLit $ Text.pack ")")