X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FhsSyn%2FHsBinds.lhs;h=4763425f634c3cb71f7994a9d1a71f0d4fbaae10;hb=6cce4a58fb206f16db579fded00fd0a7090543ae;hp=dea4fafcf9721404e3e63fb002c1ae83952741de;hpb=770cf8801c6b71f77051e96705a0418e723d7244;p=ghc-hetmet.git diff --git a/ghc/compiler/hsSyn/HsBinds.lhs b/ghc/compiler/hsSyn/HsBinds.lhs index dea4faf..4763425 100644 --- a/ghc/compiler/hsSyn/HsBinds.lhs +++ b/ghc/compiler/hsSyn/HsBinds.lhs @@ -255,15 +255,18 @@ data Sig name -- current instance decl SrcLoc - | FixSig (FixitySig name) -- Fixity declaration + | FixSig (FixitySig name) -- Fixity declaration - | DeprecSig name -- DEPRECATED - DeprecTxt + | DeprecSig (Deprecation name) -- DEPRECATED SrcLoc data FixitySig name = FixitySig name Fixity SrcLoc +data Deprecation name + = DeprecMod DeprecTxt -- deprecation of a whole module + | DeprecName name DeprecTxt -- deprecation of a single name + type DeprecTxt = FAST_STRING -- reason/explanation for deprecation \end{code} @@ -272,14 +275,15 @@ sigsForMe :: (name -> Bool) -> [Sig name] -> [Sig name] sigsForMe f sigs = filter sig_for_me sigs where - sig_for_me (Sig n _ _) = f n - sig_for_me (ClassOpSig n _ _ _ _) = f n - sig_for_me (SpecSig n _ _) = f n - sig_for_me (InlineSig n _ _) = f n - sig_for_me (NoInlineSig n _ _) = f n - sig_for_me (SpecInstSig _ _) = False - sig_for_me (FixSig (FixitySig n _ _)) = f n - sig_for_me (DeprecSig n _ _) = f n + sig_for_me (Sig n _ _) = f n + sig_for_me (ClassOpSig n _ _ _ _) = f n + sig_for_me (SpecSig n _ _) = f n + sig_for_me (InlineSig n _ _) = f n + sig_for_me (NoInlineSig n _ _) = f n + sig_for_me (SpecInstSig _ _) = False + sig_for_me (FixSig (FixitySig n _ _)) = f n + sig_for_me (DeprecSig (DeprecMod _) _) = False + sig_for_me (DeprecSig (DeprecName n _) _) = f n isFixitySig :: Sig name -> Bool isFixitySig (FixSig _) = True @@ -295,7 +299,7 @@ isPragSig (SpecSig _ _ _) = True isPragSig (InlineSig _ _ _) = True isPragSig (NoInlineSig _ _ _) = True isPragSig (SpecInstSig _ _) = True -isPragSig (DeprecSig _ _ _) = True +isPragSig (DeprecSig _ _) = True isPragSig other = False \end{code} @@ -306,6 +310,11 @@ instance (Outputable name) => Outputable (Sig name) where instance Outputable name => Outputable (FixitySig name) where ppr (FixitySig name fixity loc) = sep [ppr fixity, ppr name] +instance Outputable name => Outputable (Deprecation name) where + ppr (DeprecMod txt) + = hsep [text "{-# DEPRECATED", doubleQuotes (ppr txt), text "#-}"] + ppr (DeprecName n txt) + = hsep [text "{-# DEPRECATED", ppr n, doubleQuotes (ppr txt), text "#-}"] ppr_sig (Sig var ty _) = sep [ppr var <+> dcolon, nest 4 (ppr ty)] @@ -329,8 +338,7 @@ ppr_sig (SpecInstSig ty _) ppr_sig (FixSig fix_sig) = ppr fix_sig -ppr_sig (DeprecSig n txt _) - = hsep [text "{-# DEPRECATED", ppr n, doubleQuotes(ppr txt), text "#-}"] +ppr_sig (DeprecSig deprec _) = ppr deprec ppr_phase Nothing = empty ppr_phase (Just n) = int n