X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Frename%2FRnExpr.lhs;h=5f6790e117823990b9d7eb35c5f9d698d8ed403b;hb=68afb16743cafd5b7495771d359891c6dfc5a186;hp=cfb377d52806436ae5c41b9911f6b35d5c2e43a2;hpb=4250d64191132fd493985549eda5ca05b82a663f;p=ghc-hetmet.git diff --git a/ghc/compiler/rename/RnExpr.lhs b/ghc/compiler/rename/RnExpr.lhs index cfb377d..5f6790e 100644 --- a/ghc/compiler/rename/RnExpr.lhs +++ b/ghc/compiler/rename/RnExpr.lhs @@ -28,10 +28,11 @@ import RnMonad import ErrUtils ( addErrLoc, addShortErrLocLine ) import Name ( isLocallyDefinedName, pprSym, Name, RdrName ) import Pretty -import UniqFM ( lookupUFM ) +import UniqFM ( lookupUFM, ufmToList{-ToDo:rm-} ) import UniqSet ( emptyUniqSet, unitUniqSet, unionUniqSets, unionManyUniqSets, - UniqSet(..) ) + UniqSet(..) + ) import Util ( Ord3(..), removeDups, panic ) \end{code} @@ -394,7 +395,7 @@ rnQuals (qual: quals) = rnQual qual `thenRn` \ ((qual', bs1), fvQuals1) -> extendSS2 bs1 (rnQuals quals) `thenRn` \ ((quals', bs2), fvQuals2) -> returnRn - ((qual' : quals', bs2 ++ bs1), -- The ones on the right (bs2) shadow the + ((qual' : quals', bs1 ++ bs2), -- The ones on the right (bs2) shadow the -- ones on the left (bs1) fvQuals1 `unionUniqSets` fvQuals2) @@ -485,6 +486,7 @@ precParseExpr exp@(OpApp (NegApp e1 n) (HsVar op) e2) precParseExpr exp@(OpApp (OpApp e11 (HsVar op1) e12) (HsVar op) e2) = lookupFixity op `thenRn` \ (op_fix, op_prec) -> lookupFixity op1 `thenRn` \ (op1_fix, op1_prec) -> + -- pprTrace "precParse:" (ppCat [ppr PprDebug op, ppInt op_prec, ppr PprDebug op1, ppInt op1_prec]) $ case cmp op1_prec op_prec of LT_ -> rearrange EQ_ -> case (op1_fix, op_fix) of @@ -534,6 +536,7 @@ data INFIX = INFIXL | INFIXR | INFIXN deriving Eq lookupFixity :: RnName -> RnM_Fixes s (INFIX, Int) lookupFixity op = getExtraRn `thenRn` \ fixity_fm -> + -- pprTrace "lookupFixity:" (ppAboves [ppCat [pprUnique u, ppr PprDebug i_f] | (u,i_f) <- ufmToList fixity_fm]) $ case lookupUFM fixity_fm op of Nothing -> returnRn (INFIXL, 9) Just (InfixL _ n) -> returnRn (INFIXL, n)