projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c91cb5a
)
[project @ 2001-12-12 10:46:59 by simonpj]
author
simonpj
<unknown>
Wed, 12 Dec 2001 10:46:59 +0000
(10:46 +0000)
committer
simonpj
<unknown>
Wed, 12 Dec 2001 10:46:59 +0000
(10:46 +0000)
Wibble
ghc/compiler/rename/RnNames.lhs
patch
|
blob
|
history
diff --git
a/ghc/compiler/rename/RnNames.lhs
b/ghc/compiler/rename/RnNames.lhs
index
e5ce969
..
508c224
100644
(file)
--- a/
ghc/compiler/rename/RnNames.lhs
+++ b/
ghc/compiler/rename/RnNames.lhs
@@
-307,6
+307,11
@@
filterImports mod from (Just (want_hiding, import_items)) total_avails
returnRn []
get_item :: RdrNameIE -> RnMG [(AvailInfo, [Name])]
returnRn []
get_item :: RdrNameIE -> RnMG [(AvailInfo, [Name])]
+ -- Empty list for a bad item.
+ -- Singleton is typical case.
+ -- Can have two when we are hiding, and mention C which might be
+ -- both a class and a data constructor.
+ -- The [Name] is the list of explicitly-mentioned names
get_item item@(IEModuleContents _) = bale_out item
get_item item@(IEThingAll _)
get_item item@(IEModuleContents _) = bale_out item
get_item item@(IEThingAll _)
@@
-391,7
+396,12
@@
mkExportAvails mod_name unqual_imp gbl_env avails
unqual_avails | not unqual_imp = [] -- Short cut when no unqualified imports
| otherwise = pruneAvails (unQualInScope gbl_env) avails
unqual_avails | not unqual_imp = [] -- Short cut when no unqualified imports
| otherwise = pruneAvails (unQualInScope gbl_env) avails
- entity_avail_env = mkNameEnv [(availName avail, avail) | avail <- avails]
+ entity_avail_env = foldl insert emptyAvailEnv avails
+ insert env avail = extendNameEnv_C plusAvail env (availName avail) avail
+ -- 'avails' may have several items with the same availName
+ -- E.g import Ix( Ix(..), index )
+ -- will give Ix(Ix,index,range) and Ix(index)
+ -- We want to combine these
\end{code}
\end{code}