@@ -213,11 +213,8 @@ p_match' placer pretty style isInfix strictness m_pats m_grhss = do
213 unless whereIsEmpty $ do
213 unless whereIsEmpty $ do
214 breakpoint
214 breakpoint
215 inci (located grhssLocalBinds p_hsLocalBinds)
215 inci (located grhssLocalBinds p_hsLocalBinds)
217− Lambda -> placeHanging placement $
218− switchLayout [patGrhssSpan] p_body
216+ switchLayout [patGrhssSpan] $
219− _ -> switchLayout [patGrhssSpan] $
220− placeHanging placement p_body
217+ placeHanging placement p_body
222p_grhs :: GroupStyle -> GRHS GhcPs (LHsExpr GhcPs) -> R ()
219p_grhs :: GroupStyle -> GRHS GhcPs (LHsExpr GhcPs) -> R ()
223p_grhs = p_grhs' p_hsExpr
220p_grhs = p_grhs' p_hsExpr
@@ -457,7 +454,14 @@ p_hsExpr = \case
457 EWildPat NoExt -> backticks
454 EWildPat NoExt -> backticks
459 located op (opWrapper . p_hsExpr)
456 located op (opWrapper . p_hsExpr)
458+ -- NOTE If end of operator and start of second argument are on
459+ -- different lines, always use normal placement.
461+ (mkSrcSpan (srcSpanEnd (getLoc op)) (srcSpanStart (getLoc y)))
460− placeHanging (exprPlacement (unLoc y)) $
462+ then exprPlacement (unLoc y)
464+ placeHanging placement $
461 located y p_hsExpr
465 located y p_hsExpr
462 NegApp NoExt e _ -> do
466 NegApp NoExt e _ -> do
@@ -612,7 +616,8 @@ p_hsExpr = \case
612 inci (p_pat x)
616 inci (p_pat x)
613 breakpoint
617 breakpoint
615− placeHanging (cmdTopPlacement (unLoc e)) (located e p_hsCmdTop)
619+ placeHanging (cmdTopPlacement (unLoc e)) $
620+ located e p_hsCmdTop
616 HsStatic _ e -> do
621 HsStatic _ e -> do
617 txt "static"
622 txt "static"
618 breakpoint
623 breakpoint