-\begin{code}
-globalDupNamesErr rdr rns sty
- = ppAboves (message : map pp_dup rns)
- where
- message = ppBesides [ppStr "multiple declarations of `", pprNonSym sty rdr, ppStr "'"]
-
- pp_dup rn = addShortErrLocLine (get_loc rn) (\ sty ->
- ppBesides [pp_descrip rn, pprNonSym sty rn]) sty
-
- get_loc rn = case getImpLocs rn of
- [] -> getSrcLoc rn
- locs -> head locs
-
- pp_descrip (RnName _) = ppStr "a value"
- pp_descrip (RnSyn _) = ppStr "a type synonym"
- pp_descrip (RnData _ _ _) = ppStr "a data type"
- pp_descrip (RnConstr _ _) = ppStr "a data constructor"
- pp_descrip (RnField _ _) = ppStr "a record field"
- pp_descrip (RnClass _ _) = ppStr "a class"
- pp_descrip (RnClassOp _ _) = ppStr "a class method"
- pp_descrip _ = ppNil
-
-dupImportWarn (ImportDecl m1 _ _ _ locn1 : dup_imps) sty
- = ppAboves (item1 : map dup_item dup_imps)
- where
- item1 = addShortErrLocLine locn1 (\ sty ->
- ppCat [ppStr "multiple imports from module", ppPStr m1]) sty
-
- dup_item (ImportDecl m _ _ _ locn)
- = addShortErrLocLine locn (\ sty ->
- ppCat [ppStr "here was another import from module", ppPStr m]) sty
-
-qualPreludeImportWarn (ImportDecl m _ _ _ locn)
- = addShortErrLocLine locn (\ sty ->
- ppCat [ppStr "qualified import of prelude module", ppPStr m])
-
-unknownImpSpecErr ie imp_mod locn
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "module ", ppPStr imp_mod, ppStr " does not export `", ppr sty (ie_name ie), ppStr "'"])
-
-duplicateImpSpecErr ie imp_mod locn
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "`", ppr sty (ie_name ie), ppStr "' already seen in import list"])
-
-allWhenSynImpSpecWarn n imp_mod locn
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "type synonym `", ppr sty n, ppStr "' should not be imported with (..)"])
-
-allWhenAbsImpSpecErr n imp_mod locn
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "module ", ppPStr imp_mod, ppStr " only exports `", ppr sty n, ppStr "' abstractly"])
-
-withWhenAbsImpSpecErr n imp_mod locn
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "module ", ppPStr imp_mod, ppStr " only exports `", ppr sty n, ppStr "' abstractly"])
-
-withImpSpecErr str n has ns imp_mod locn
- = addErrLoc locn "" (\ sty ->
- ppAboves [ ppBesides [ppStr "inconsistent list of", ppStr str, ppStr "in import list for `", ppr sty n, ppStr "'"],
- ppCat [ppStr " expected:", ppInterleave ppComma (map (ppr sty) has)],
- ppCat [ppStr " found: ", ppInterleave ppComma (map (ppr sty) ns)] ])
-
-dupFieldErr con locn (dup:rest)
- = addShortErrLocLine locn (\ sty ->
- ppBesides [ppStr "record field `", ppr sty dup, ppStr "declared multiple times in `", ppr sty con, ppStr "'"])