diff options
Diffstat (limited to 'ghc/compiler/main/ErrsRn.lhs')
-rw-r--r-- | ghc/compiler/main/ErrsRn.lhs | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/ghc/compiler/main/ErrsRn.lhs b/ghc/compiler/main/ErrsRn.lhs deleted file mode 100644 index 72b7dc3a3c..0000000000 --- a/ghc/compiler/main/ErrsRn.lhs +++ /dev/null @@ -1,194 +0,0 @@ -% -% (c) The AQUA Project, Glasgow University, 1994-1995 -% -\section[ErrsRn]{Reporting errors from the renamer} - -This is an internal module---access to these functions is through -@Errors@. - -\begin{code} -#include "HsVersions.h" - -module ErrsRn where - -import AbsSyn -- we print a bunch of stuff in here -import AbsUniType ( TyVarTemplate ) -import UniType ( UniType(..) ) - -- UniType is concrete, to make some errors - -- more informative. -import ErrUtils -import Name ( cmpName ) -import Outputable -import Pretty -- to pretty-print error messages -import SrcLoc ( mkUnknownSrcLoc, SrcLoc ) -import Util -\end{code} - -\begin{code} -badClassOpErr :: Name{-class-} -> ProtoName{-op-} -> SrcLoc -> Error - -- Class op expected but something else found -badClassOpErr clas op locn - = addErrLoc locn "" ( \ sty -> - ppBesides [ppChar '`', ppr sty op, ppStr "' is not an operation of class `", - ppr sty clas, ppStr "'."] ) - ----------------------------------------------------------------- -badExportNameErr :: String -> String -> Error - -badExportNameErr name whats_wrong - = dontAddErrLoc - "Error in the export list" ( \ sty -> - ppBesides [ppChar '`', ppStr name, ppStr "' ", ppStr whats_wrong] ) - ----------------------------------------------------------------- -badImportNameErr :: String -> String -> String -> SrcLoc -> Error - -badImportNameErr mod name whats_wrong locn - = addErrLoc locn - ("Error in an import list for the module `"++mod++"'") ( \ sty -> - ppBesides [ppChar '`', ppStr name, ppStr "' ", ppStr whats_wrong] ) - ----------------------------------------------------------------- -derivingInIfaceErr :: ProtoName -> [ProtoName] -> SrcLoc -> Error - -- GHC doesn't support "deriving" in interfaces - -derivingInIfaceErr ty deriveds locn - = addErrLoc locn "Glasgow Haskell doesn't support `deriving' in interfaces" ( \ sty -> - ppBesides [ ppStr "type: ", ppr sty ty, - ppStr "; derived: ", interpp'SP sty deriveds ] ) - ----------------------------------------------------------------- -derivingNonStdClassErr :: Name -> ProtoName -> SrcLoc -> Error - -- if "deriving" specified for a non-standard class - -derivingNonStdClassErr tycon clas locn - = addErrLoc locn "Can't have a derived instance of this class" ( \ sty -> - ppBesides [ppStr "type constructor: ", ppr sty tycon, - ppStr "; class: ", ppr sty clas] ) - ----------------------------------------------------------------- -dupNamesErr :: String -> [(ProtoName,SrcLoc)] -> Error - -dupNamesErr descriptor ((first_pname,locn1) : dup_things) sty - = ppAboves (first_item : map dup_item dup_things) - where - first_item - = ppBesides [ ppr PprForUser locn1, - ppStr ": multiple declarations of a ", ppStr descriptor, ppStr ": ", - ppr sty first_pname ] - - dup_item (pname, locn) - = ppBesides [ ppr PprForUser locn, - ppStr ": here was another declaration of `", ppr sty pname, ppStr "'" ] - ----------------------------------------------------------------- -dupPreludeNameErr :: String -> (ProtoName, SrcLoc) -> Error - -dupPreludeNameErr descriptor (nm, locn) - = addShortErrLocLine locn ( \ sty -> - ppBesides [ ppStr "A conflict with a Prelude ", ppStr descriptor, - ppStr ": ", ppr sty nm ]) - ----------------------------------------------------------------- -dupSigDeclErr :: [RenamedSig] -> Error - -- Duplicate signatures in a group; the sigs have locns on them -dupSigDeclErr sigs - = let - undup_sigs = fst (removeDups cmp_sig sigs) - in - addErrLoc locn1 - ("more than one "++what_it_is++"\n\thas been given for these variables") ( \ sty -> - ppAboves (map (ppr sty) undup_sigs) ) - where - (what_it_is, locn1) - = case (head sigs) of - Sig _ _ _ loc -> ("type signature",loc) - ClassOpSig _ _ _ loc -> ("class-method type signature", loc) - SpecSig _ _ _ loc -> ("SPECIALIZE pragma",loc) - InlineSig _ _ loc -> ("INLINE pragma",loc) - MagicUnfoldingSig _ _ loc -> ("MAGIC_UNFOLDING pragma",loc) - - cmp_sig a b = get_name a `cmpName` get_name b - - get_name (Sig n _ _ _) = n - get_name (ClassOpSig n _ _ _) = n - get_name (SpecSig n _ _ _) = n - get_name (InlineSig n _ _) = n - get_name (MagicUnfoldingSig n _ _) = n - ----------------------------------------------------------------- -duplicateImportsInInterfaceErr :: String -> [ProtoName] -> Error -duplicateImportsInInterfaceErr iface dups - = panic "duplicateImportsInInterfaceErr: NOT DONE YET?" - ----------------------------------------------------------------- -inlineInRecursiveBindsErr :: [(Name, SrcLoc)] -> Error - -inlineInRecursiveBindsErr [(name, locn)] - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr "INLINE pragma for a recursive definition: ", - ppr sty name] ) -inlineInRecursiveBindsErr names_n_locns - = \ sty -> - ppHang (ppStr "INLINE pragmas for some recursive definitions:") - 4 (ppAboves [ ppBesides [ppr PprForUser locn, ppStr ": ", ppr sty n] - | (n, locn) <- names_n_locns ]) - ----------------------------------------------------------------- ---mismatchedPragmasErr :: (Annotations, SrcLoc) --- -> (Annotations, SrcLoc) --- -> Error -{- UNUSED: -mismatchedPragmasErr (anns1, _) (anns2, _) - = dontAddErrLoc "Mismatched pragmas from interfaces" ( \ sty -> - ppSep [ppr sty anns1, ppr sty anns2] ) --} - ----------------------------------------------------------------- -shadowedNameErr :: Name -> SrcLoc -> Error -shadowedNameErr shadow locn - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr "more than one value with the same name (shadowing): ", - ppr sty shadow] ) - ----------------------------------------------------------------- -unknownNameErr :: String -> ProtoName -> SrcLoc -> Error -unknownNameErr descriptor undef_thing locn - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr "undefined ", ppStr descriptor, ppStr ": ", - ppr sty undef_thing] ) - ----------------------------------------------------------------- -missingSigErr :: SrcLoc -> ProtoName -> Error - -- Top-level definition without a type signature - -- (when SigsRequired flag is in use) -missingSigErr locn var - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr "a definition but no type signature for `", - ppr sty var, - ppStr "'."]) - ----------------------------------------------------------------- -unknownSigDeclErr :: String -> ProtoName -> SrcLoc -> Error - -- Signature/Pragma given for unknown variable -unknownSigDeclErr flavor var locn - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr flavor, ppStr " but no definition for `", - ppr sty var, - ppStr "'."]) - ----------------------------------------------------------------- -weirdImportExportConstraintErr :: ProtoName -> IE -> SrcLoc -> Error - -weirdImportExportConstraintErr thing constraint locn - = addShortErrLocLine locn ( \ sty -> - ppBesides [ppStr "Illegal import/export constraint on `", - ppr sty thing, - ppStr "': ", ppr PprForUser constraint]) - ----------------------------------------------------------------- -methodBindErr :: ProtoNameMonoBinds -> SrcLoc -> Error -methodBindErr mbind locn - = addErrLoc locn "Can't handle multiple methods defined by one pattern binding" - (\ sty -> ppr sty mbind) -\end{code} |