From 21a542ddc3d02e0d3a8be28e0aa00796970adb9e Mon Sep 17 00:00:00 2001 From: simonpj Date: Tue, 27 Mar 2001 14:05:09 +0000 Subject: [PATCH] [project @ 2001-03-27 14:05:09 by simonpj] Print minimal import operators correctly --- ghc/compiler/hsSyn/HsExpr.lhs | 11 ++--------- ghc/compiler/hsSyn/HsImpExp.lhs | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/ghc/compiler/hsSyn/HsExpr.lhs b/ghc/compiler/hsSyn/HsExpr.lhs index cf3a5f3..a2b703f 100644 --- a/ghc/compiler/hsSyn/HsExpr.lhs +++ b/ghc/compiler/hsSyn/HsExpr.lhs @@ -13,9 +13,10 @@ import HsBinds ( HsBinds(..), nullBinds ) import HsLit ( HsLit, HsOverLit ) import BasicTypes ( Fixity(..) ) import HsTypes ( HsType ) +import HsImpExp ( isOperator ) -- others: -import Name ( Name, isLexSym ) +import Name ( Name ) import Outputable import PprType ( pprParendType ) import Type ( Type ) @@ -388,14 +389,6 @@ pprParendExpr expr _ -> parens pp_as_was \end{code} -\begin{code} -isOperator :: Outputable a => a -> Bool -isOperator v = isLexSym (_PK_ (showSDocUnqual (ppr v))) - -- We use (showSDoc (ppr v)), rather than isSymOcc (getOccName v) simply so - -- that we don't need NamedThing in the context of all these functions. - -- Gruesome, but simple. -\end{code} - %************************************************************************ %* * \subsection{Record binds} diff --git a/ghc/compiler/hsSyn/HsImpExp.lhs b/ghc/compiler/hsSyn/HsImpExp.lhs index b47abf4..e483914 100644 --- a/ghc/compiler/hsSyn/HsImpExp.lhs +++ b/ghc/compiler/hsSyn/HsImpExp.lhs @@ -8,6 +8,7 @@ module HsImpExp where #include "HsVersions.h" +import Name ( isLexSym ) import Module ( ModuleName, WhereFrom ) import Outputable import SrcLoc ( SrcLoc ) @@ -84,12 +85,23 @@ ieNames (IEModuleContents _ ) = [] \begin{code} instance (Outputable name) => Outputable (IE name) where - ppr (IEVar var) = ppr var + ppr (IEVar var) = ppr_var var ppr (IEThingAbs thing) = ppr thing ppr (IEThingAll thing) = hcat [ppr thing, text "(..)"] ppr (IEThingWith thing withs) - = ppr thing <> parens (fsep (punctuate comma (map ppr withs))) + = ppr thing <> parens (fsep (punctuate comma (map ppr_var withs))) ppr (IEModuleContents mod) = ptext SLIT("module") <+> ppr mod + +ppr_var v | isOperator v = parens (ppr v) + | otherwise = ppr v +\end{code} + +\begin{code} +isOperator :: Outputable a => a -> Bool +isOperator v = isLexSym (_PK_ (showSDocUnqual (ppr v))) + -- We use (showSDoc (ppr v)), rather than isSymOcc (getOccName v) simply so + -- that we don't need NamedThing in the context of all these functions. + -- Gruesome, but simple. \end{code} -- 1.7.10.4