summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-06-17 15:15:30 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-06-17 15:15:30 +0000
commitab060043dd58a0e05ae3d084236e12fd6f07295a (patch)
treeccc3799bea3b435099ecf83d952c22c159979939
parentdad784757de1cbe15a78b580ba6e1ac4b6326317 (diff)
downloadhaskell-ab060043dd58a0e05ae3d084236e12fd6f07295a.tar.gz
Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
-rw-r--r--compiler/iface/IfaceSyn.lhs14
1 files changed, 12 insertions, 2 deletions
diff --git a/compiler/iface/IfaceSyn.lhs b/compiler/iface/IfaceSyn.lhs
index 9bea260108..6659e8b771 100644
--- a/compiler/iface/IfaceSyn.lhs
+++ b/compiler/iface/IfaceSyn.lhs
@@ -727,10 +727,17 @@ freeNamesIfType (IfaceFunTy s t) = freeNamesIfType s &&& freeNamesIfType t
freeNamesIfTvBndrs :: [IfaceTvBndr] -> NameSet
freeNamesIfTvBndrs = fnList freeNamesIfTvBndr
+freeNamesIfBndr :: IfaceBndr -> NameSet
+freeNamesIfBndr (IfaceIdBndr b) = freeNamesIfIdBndr b
+freeNamesIfBndr (IfaceTvBndr b) = freeNamesIfTvBndr b
+
freeNamesIfTvBndr :: IfaceTvBndr -> NameSet
freeNamesIfTvBndr (_fs,k) = freeNamesIfType k
-- kinds can have Names inside, when the Kind is an equality predicate
+freeNamesIfIdBndr :: IfaceIdBndr -> NameSet
+freeNamesIfIdBndr = freeNamesIfTvBndr
+
freeNamesIfIdInfo :: IfaceIdInfo -> NameSet
freeNamesIfIdInfo NoInfo = emptyNameSet
freeNamesIfIdInfo (HasInfo i) = fnList freeNamesItem i
@@ -772,8 +779,11 @@ freeNamesIfTc (IfaceTc tc) = unitNameSet tc
freeNamesIfTc _ = emptyNameSet
freeNamesIfRule :: IfaceRule -> NameSet
-freeNamesIfRule (IfaceRule _n _a _bs f es rhs _o)
- = unitNameSet f &&& fnList freeNamesIfExpr es &&& freeNamesIfExpr rhs
+freeNamesIfRule (IfaceRule _n _a bs f es rhs _o)
+ = unitNameSet f &&&
+ fnList freeNamesIfBndr bs &&&
+ fnList freeNamesIfExpr es &&&
+ freeNamesIfExpr rhs
-- helpers
(&&&) :: NameSet -> NameSet -> NameSet