From c3dc3b60748d6102a6364a4e3db1c0726cca7c9e Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Tue, 2 May 2017 16:31:51 +0200 Subject: [PATCH] And one more touch to ExplicitList --- src-literatetests/tests.blt | 9 +++++++-- src/Language/Haskell/Brittany/Layouters/Expr.hs | 9 ++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src-literatetests/tests.blt b/src-literatetests/tests.blt index d3e3ad5..69bc348 100644 --- a/src-literatetests/tests.blt +++ b/src-literatetests/tests.blt @@ -761,6 +761,13 @@ autocheckCases = ) ] +#test issue 18c +func = + [ (abc, (1111, 1111)) + , (def, (2, 2)) + , foo -- comment + ] + ############################################################################### ############################################################################### @@ -770,8 +777,6 @@ autocheckCases = ############################################################################### ############################################################################### - - ## this testcase is not about idempotency, but about _how_ the output differs ## from the input; i cannot really express this yet with the current ## test-suite. diff --git a/src/Language/Haskell/Brittany/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Layouters/Expr.hs index 009001f..02809c8 100644 --- a/src/Language/Haskell/Brittany/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Layouters/Expr.hs @@ -574,6 +574,7 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of unknownNodeError "HsDo{} no comp" lexpr ExplicitList _ _ elems@(_:_) -> do elemDocs <- elems `forM` docSharedWrapper layoutExpr + hasComments <- hasAnyCommentsBelow lexpr case splitFirstLast elemDocs of FirstLastEmpty -> docSeq [ docLit $ Text.pack "[" @@ -594,12 +595,14 @@ layoutExpr lexpr@(L _ expr) = docWrapNode lexpr $ case expr of ] ] FirstLast e1 ems eN -> - docAlt - [ docSeq + docAltFilter + [ (,) (not hasComments) + $ docSeq $ [docLit $ Text.pack "["] ++ List.intersperse docCommaSep (docForceSingleline <$> (e1:ems ++ [docNodeAnnKW lexpr (Just AnnOpenS) eN])) ++ [docLit $ Text.pack "]"] - , let + , (,) True + $ let start = docCols ColList [appSep $ docLit $ Text.pack "[", e1] linesM = ems <&> \d ->