summaryrefslogtreecommitdiff
path: root/compiler/basicTypes
diff options
context:
space:
mode:
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>2011-08-24 22:34:40 +1000
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>2011-08-24 22:44:09 +1000
commitfaa4b3f08f2379a14d163d5485b05bf3ab84c530 (patch)
treea9f2fa4e87e8271c076c4582637ab7cec37138a4 /compiler/basicTypes
parent82ac7ff381e0eaaf3e6e18c375b32a0d7463344a (diff)
downloadhaskell-faa4b3f08f2379a14d163d5485b05bf3ab84c530.tar.gz
Fix name generation for vectorised identifiers
Diffstat (limited to 'compiler/basicTypes')
-rw-r--r--compiler/basicTypes/Name.lhs11
1 files changed, 6 insertions, 5 deletions
diff --git a/compiler/basicTypes/Name.lhs b/compiler/basicTypes/Name.lhs
index 8bdcb9ebb6..c82a06c2f3 100644
--- a/compiler/basicTypes/Name.lhs
+++ b/compiler/basicTypes/Name.lhs
@@ -42,13 +42,13 @@ module Name (
mkFCallName, mkIPName,
mkTickBoxOpName,
mkExternalName, mkWiredInName,
- mkLocalisedOccName,
-- ** Manipulating and deconstructing 'Name's
nameUnique, setNameUnique,
nameOccName, nameModule, nameModule_maybe,
tidyNameOcc,
hashName, localiseName,
+ mkLocalisedOccName,
nameSrcLoc, nameSrcSpan, pprNameLoc,
@@ -332,11 +332,12 @@ localiseName n = n { n_sort = Internal }
--
-- If the name is external, encode the original's module name to disambiguate.
--
-mkLocalisedOccName :: (Maybe String -> OccName -> OccName) -> Name -> OccName
-mkLocalisedOccName mk_occ name = mk_occ origin (nameOccName name)
+mkLocalisedOccName :: Module -> (Maybe String -> OccName -> OccName) -> Name -> OccName
+mkLocalisedOccName this_mod mk_occ name = mk_occ origin (nameOccName name)
where
- origin | isExternalName name = Just (moduleNameColons . moduleName . nameModule $ name)
- | otherwise = Nothing
+ origin
+ | nameIsLocalOrFrom this_mod name = Nothing
+ | otherwise = Just (moduleNameColons . moduleName . nameModule $ name)
\end{code}
%************************************************************************