diff options
Diffstat (limited to 'compiler/GHC/Hs/Expr.hs')
-rw-r--r-- | compiler/GHC/Hs/Expr.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs index eb51021b83..a7de65843c 100644 --- a/compiler/GHC/Hs/Expr.hs +++ b/compiler/GHC/Hs/Expr.hs @@ -1276,7 +1276,11 @@ matchGroupArity (MG { mg_alts = alts }) | L _ (alt1:_) <- alts = length (hsLMatchPats alt1) | otherwise = panic "matchGroupArity" -hsLMatchPats :: LMatch (GhcPass id) body -> [LPat (GhcPass id)] +matchGroupLMatchPats :: MatchGroup (GhcPass id) body -> [LMatchPat (GhcPass id)] +matchGroupLMatchPats (MG { mg_alts = (L _ (alt : _)) }) = hsLMatchPats alt +matchGroupLMatchPats _ = panic [] + +hsLMatchPats :: LMatch (GhcPass id) body -> [LMatchPat (GhcPass id)] hsLMatchPats (L _ (Match { m_pats = pats })) = pats -- We keep the type checker happy by providing EpAnnComments. They @@ -1321,7 +1325,7 @@ pprPatBind pat grhss pprMatch :: (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc pprMatch (Match { m_pats = pats, m_ctxt = ctxt, m_grhss = grhss }) - = sep [ sep (herald : map (nest 2 . pprParendLPat appPrec) other_pats) + = sep [ sep (herald : map (nest 2 . pprParendLMatchPat appPrec) other_pats) , nest 2 (pprGRHSs ctxt grhss) ] where (herald, other_pats) @@ -1341,9 +1345,9 @@ pprMatch (Match { m_pats = pats, m_ctxt = ctxt, m_grhss = grhss }) | null rest -> (pp_infix, []) -- x &&& y = e | otherwise -> (parens pp_infix, rest) -- (x &&& y) z = e where - pp_infix = pprParendLPat opPrec p1 + pp_infix = pprParendLMatchPat opPrec p1 <+> pprInfixOcc fun - <+> pprParendLPat opPrec p2 + <+> pprParendLMatchPat opPrec p2 _ -> pprPanic "pprMatch" (ppr ctxt $$ ppr pats) LambdaExpr -> (char '\\', pats) |