-pprDsWarnings :: PprStyle -> DsWarnings -> Doc
-pprDsWarnings sty warns
- = vcat (map pp_warn (bagToList warns))
- where
- pp_warn (flavour, NoMatchContext) = sep [ptext SLIT("Warning: Some match is"),
- case flavour of
- Shadowed -> ptext SLIT("shadowed")
- Incomplete -> ptext SLIT("possibly incomplete")]
-
- pp_warn (flavour, DsMatchContext kind pats loc)
- = hang (hcat [ppr (PprForUser opt_PprUserLength) loc, ptext SLIT(": ")])
- 4 (hang msg
- 4 (pp_match kind pats))
- where
- msg = case flavour of
- Shadowed -> ptext SLIT("Warning: Pattern match(es) completely overlapped")
- Incomplete -> ptext SLIT("Warning: Possibly incomplete patterns")
-
- pp_match (FunMatch fun) pats
- = hsep [ptext SLIT("in the definition of function"), ppr sty fun]
-
- pp_match CaseMatch pats
- = hang (ptext SLIT("in a group of case alternatives beginning:"))
- 4 (ppr_pats pats)
-
- pp_match PatBindMatch pats
- = hang (ptext SLIT("in a pattern binding:"))
- 4 (ppr_pats pats)
-
- pp_match LambdaMatch pats
- = hang (ptext SLIT("in a lambda abstraction:"))
- 4 (ppr_pats pats)
-
- pp_match DoBindMatch pats
- = hang (ptext SLIT("in a `do' pattern binding:"))
- 4 (ppr_pats pats)
-
- ppr_pats pats = pprQuote sty $ \ sty ->
- sep [sep (map (ppr sty) pats), ptext SLIT("-> ...")]