X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FhsSyn%2FHsSyn.lhs;h=6277f5cc3cc8f677122b4ddf6ed90488f539812f;hb=6fa448e4c21d92d50d8a87bdd3c5f61072820c98;hp=e3ffea2c4d11f4e4d7c4300418ad1bef95bfc5be;hpb=17b297d97d327620ed6bfab942f8992b2446f1bf;p=ghc-hetmet.git diff --git a/compiler/hsSyn/HsSyn.lhs b/compiler/hsSyn/HsSyn.lhs index e3ffea2..6277f5c 100644 --- a/compiler/hsSyn/HsSyn.lhs +++ b/compiler/hsSyn/HsSyn.lhs @@ -9,13 +9,6 @@ which is declared in the various \tr{Hs*} modules. This module, therefore, is almost nothing but re-exporting. \begin{code} -{-# OPTIONS_GHC -w #-} --- The above warning supression flag is a temporary kludge. --- While working on this module you are encouraged to remove it and fix --- any warnings in the module. See --- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings --- for details - module HsSyn ( module HsBinds, module HsDecls, @@ -34,8 +27,6 @@ module HsSyn ( emptyHaddockModInfo, ) where -#include "HsVersions.h" - -- friends: import HsDecls import HsBinds @@ -44,7 +35,7 @@ import HsImpExp import HsLit import HsPat import HsTypes -import BasicTypes ( Fixity, DeprecTxt ) +import BasicTypes ( Fixity, WarningTxt ) import HsUtils import HsDoc @@ -53,6 +44,7 @@ import IfaceSyn ( IfaceBinding ) import Outputable import SrcLoc ( Located(..) ) import Module ( Module, ModuleName ) +import FastString \end{code} All we actually declare here is the top-level structure for a module. @@ -69,8 +61,7 @@ data HsModule name -- info to TyDecls/etc; so this list is -- often empty, downstream. [LHsDecl name] -- Type, class, value, and interface signature decls - (Maybe DeprecTxt) -- reason/explanation for deprecation of this module - (Maybe String) -- Haddock options, declared with the {-# DOCOPTIONS ... #-} pragma + (Maybe WarningTxt) -- reason/explanation for warning/deprecation of this module (HaddockModInfo name) -- Haddock module info (Maybe (HsDoc name)) -- Haddock module description @@ -105,18 +96,18 @@ instance Outputable Char where instance (OutputableBndr name) => Outputable (HsModule name) where - ppr (HsModule Nothing _ imports decls _ _ _ mbDoc) + ppr (HsModule Nothing _ imports decls _ _ mbDoc) = pp_mb mbDoc $$ pp_nonnull imports $$ pp_nonnull decls - ppr (HsModule (Just name) exports imports decls deprec opts _ mbDoc) + ppr (HsModule (Just name) exports imports decls deprec _ mbDoc) = vcat [ pp_mb mbDoc, case exports of - Nothing -> pp_header (ptext SLIT("where")) + Nothing -> pp_header (ptext (sLit "where")) Just es -> vcat [ pp_header lparen, nest 8 (fsep (punctuate comma (map ppr es))), - nest 4 (ptext SLIT(") where")) + nest 4 (ptext (sLit ") where")) ], pp_nonnull imports, pp_nonnull decls @@ -126,11 +117,13 @@ instance (OutputableBndr name) Nothing -> pp_modname <+> rest Just d -> vcat [ pp_modname, ppr d, rest ] - pp_modname = ptext SLIT("module") <+> ppr name + pp_modname = ptext (sLit "module") <+> ppr name +pp_mb :: Outputable t => Maybe t -> SDoc pp_mb (Just x) = ppr x pp_mb Nothing = empty +pp_nonnull :: Outputable t => [t] -> SDoc pp_nonnull [] = empty pp_nonnull xs = vcat (map ppr xs) \end{code}