From: simonpj@microsoft.com Date: Mon, 4 Jan 2010 21:59:50 +0000 (+0000) Subject: Fix Trac #3792: check for qualified names in import items X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=0db1d50e627a0b5d87d67c9f236c9e03a55c962e;p=ghc-hetmet.git Fix Trac #3792: check for qualified names in import items --- diff --git a/compiler/rename/RnNames.lhs b/compiler/rename/RnNames.lhs index 7ccc7a2..7d367c7 100644 --- a/compiler/rename/RnNames.lhs +++ b/compiler/rename/RnNames.lhs @@ -580,10 +580,10 @@ filterImports iface decl_spec (Just (want_hiding, import_items)) all_avails lookup_ie opt_typeFamilies ie = let bad_ie = Failed (badImportItemErr iface decl_spec ie) - lookup_name rdrName = - case lookupOccEnv occ_env (rdrNameOcc rdrName) of - Nothing -> bad_ie - Just n -> return n + lookup_name rdr + | isQual rdr = Failed (qualImportItemErr rdr) + | Just nm <- lookupOccEnv occ_env (rdrNameOcc rdr) = return nm + | otherwise = bad_ie in case ie of IEVar n -> do @@ -1386,6 +1386,11 @@ printMinimalImports imports_w_usage %************************************************************************ \begin{code} +qualImportItemErr :: RdrName -> SDoc +qualImportItemErr rdr + = hang (ptext (sLit "Illegal qualified name in import item:")) + 2 (ppr rdr) + badImportItemErr :: ModIface -> ImpDeclSpec -> IE RdrName -> SDoc badImportItemErr iface decl_spec ie = sep [ptext (sLit "Module"), quotes (ppr (is_mod decl_spec)), source_import,