summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/main/DynFlags.hs2
-rw-r--r--compiler/rename/RnNames.lhs7
2 files changed, 9 insertions, 0 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index e5153ea33a..51abf36370 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -139,6 +139,7 @@ data DynFlag
| Opt_WarnIsError -- -Werror; makes warnings fatal
| Opt_WarnDuplicateExports
| Opt_WarnHiShadows
+ | Opt_WarnImplicitPrelude
| Opt_WarnIncompletePatterns
| Opt_WarnIncompletePatternsRecUpd
| Opt_WarnMissingFields
@@ -1024,6 +1025,7 @@ dynamic_flags = [
fFlags = [
( "warn-duplicate-exports", Opt_WarnDuplicateExports ),
( "warn-hi-shadowing", Opt_WarnHiShadows ),
+ ( "warn-implicit-prelude", Opt_WarnImplicitPrelude ),
( "warn-incomplete-patterns", Opt_WarnIncompletePatterns ),
( "warn-incomplete-record-updates", Opt_WarnIncompletePatternsRecUpd ),
( "warn-missing-fields", Opt_WarnMissingFields ),
diff --git a/compiler/rename/RnNames.lhs b/compiler/rename/RnNames.lhs
index 253d262fcf..4a880ed1fb 100644
--- a/compiler/rename/RnNames.lhs
+++ b/compiler/rename/RnNames.lhs
@@ -69,6 +69,10 @@ rnImports imports
(source, ordinary) = partition is_source_import imports
is_source_import (L _ (ImportDecl _ is_boot _ _ _)) = is_boot
+ ifOptM Opt_WarnImplicitPrelude (
+ when (notNull prel_imports) $ addWarn (implicitPreludeWarn)
+ )
+
stuff1 <- mapM (rnImportDecl this_mod) (prel_imports ++ ordinary)
stuff2 <- mapM (rnImportDecl this_mod) source
let (decls, rdr_env, imp_avails) = combine (stuff1 ++ stuff2)
@@ -1355,4 +1359,7 @@ nullModuleExport mod
moduleDeprec mod txt
= sep [ ptext SLIT("Module") <+> quotes (ppr mod) <+> ptext SLIT("is deprecated:"),
nest 4 (ppr txt) ]
+
+implicitPreludeWarn
+ = ptext SLIT("Module `Prelude' implicitly imported")
\end{code}