diff options
| author | Simon Marlow <marlowsd@gmail.com> | 2008-06-17 15:15:30 +0000 |
|---|---|---|
| committer | Simon Marlow <marlowsd@gmail.com> | 2008-06-17 15:15:30 +0000 |
| commit | ab060043dd58a0e05ae3d084236e12fd6f07295a (patch) | |
| tree | ccc3799bea3b435099ecf83d952c22c159979939 | |
| parent | dad784757de1cbe15a78b580ba6e1ac4b6326317 (diff) | |
| download | haskell-ab060043dd58a0e05ae3d084236e12fd6f07295a.tar.gz | |
Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
| -rw-r--r-- | compiler/iface/IfaceSyn.lhs | 14 |
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 |
