From 4ed3a2f53dafca7075343a9f9a76ca253ee8c69c Mon Sep 17 00:00:00 2001
From: Lennart Spitzner <hexagoxel@hexagoxel.de>
Date: Mon, 29 May 2023 22:59:16 +0200
Subject: [PATCH] Fix a missing comment case with MultiWayIf

---
 data/11-extensions/multiwayif.blt             |  7 ++++++
 .../Brittany/Internal/ToBriDoc/Expr.hs        | 23 +++++++++++--------
 2 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/data/11-extensions/multiwayif.blt b/data/11-extensions/multiwayif.blt
index 7c796d2..536cbe3 100644
--- a/data/11-extensions/multiwayif.blt
+++ b/data/11-extensions/multiwayif.blt
@@ -14,3 +14,10 @@ func = do
   bar $ if
     | cond1 -> loooooooooooooooooooooooooooooong expr1
     | cond2 -> loooooooooooooooooooooooooooooong expr2
+
+#test multiwayif comment between cases
+func = do
+  if
+    | abc -> yes
+    -- | test comment
+    | _   -> no
diff --git a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs
index f6b43e1..a21a851 100644
--- a/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs
+++ b/source/library/Language/Haskell/Brittany/Internal/ToBriDoc/Expr.hs
@@ -493,16 +493,19 @@ layoutExpr lexpr@(L _ expr) = do
             || any (\(L _ (GRHS gEpAnn _ _)) -> hasAnyCommentsBelow gEpAnn) cases
       let posIf = obtainAnnPos epAnn AnnIf
       layouters <- mAsk
-      docSetParSpacing $ docAddBaseY BrIndentRegular $ docPar
-        (docHandleComms posIf $ docLit $ Text.pack "if")
-        (layout_patternBindFinal layouters
-                                 Nothing
-                                 binderDoc
-                                 Nothing
-                                 (Right cases)
-                                 (id, Nothing)
-                                 hasComments
-        )
+      docHandleComms epAnn
+        $ docSetParSpacing
+        $ docAddBaseY BrIndentRegular
+        $ docPar
+          (docHandleComms posIf $ docLit $ Text.pack "if")
+          (layout_patternBindFinal layouters
+                                   Nothing
+                                   binderDoc
+                                   Nothing
+                                   (Right cases)
+                                   (id, Nothing)
+                                   hasComments
+          )
     HsLet epAnn binds exp1 -> docHandleComms epAnn $ do
       let AnnsLet spanLet spanIn = anns epAnn
       let hasComments            = hasAnyCommentsBelow lexpr