summaryrefslogtreecommitdiff
path: root/compiler/parser/RdrHsSyn.lhs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/parser/RdrHsSyn.lhs')
-rw-r--r--compiler/parser/RdrHsSyn.lhs11
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/parser/RdrHsSyn.lhs b/compiler/parser/RdrHsSyn.lhs
index a847f55d19..b6893cf893 100644
--- a/compiler/parser/RdrHsSyn.lhs
+++ b/compiler/parser/RdrHsSyn.lhs
@@ -49,7 +49,8 @@ module RdrHsSyn (
-- Help with processing exports
ImpExpSubSpec(..),
- mkModuleImpExp
+ mkModuleImpExp,
+ mkTypeImpExp
) where
@@ -1041,6 +1042,14 @@ mkModuleImpExp name subs =
where
nameT = setRdrNameSpace name tcClsName
+
+mkTypeImpExp :: Located RdrName -> P (Located RdrName)
+mkTypeImpExp name =
+ do allowed <- extension explicitNamespacesEnabled
+ if allowed
+ then return (fmap (`setRdrNameSpace` tcClsName) name)
+ else parseErrorSDoc (getLoc name)
+ (text "Illegal keyword 'type' (use -XExplicitNamespaces to enable)")
\end{code}
-----------------------------------------------------------------------------