summaryrefslogtreecommitdiff
path: root/compiler/GHC/Parser
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Parser')
-rw-r--r--compiler/GHC/Parser/Header.hs14
1 files changed, 9 insertions, 5 deletions
diff --git a/compiler/GHC/Parser/Header.hs b/compiler/GHC/Parser/Header.hs
index 4e2c297bea..5abb0497d4 100644
--- a/compiler/GHC/Parser/Header.hs
+++ b/compiler/GHC/Parser/Header.hs
@@ -129,11 +129,15 @@ mkPrelImports this_mod loc implicit_prelude import_decls
= []
| otherwise = [preludeImportDecl]
where
- explicit_prelude_import
- = notNull [ () | L _ (ImportDecl { ideclName = mod
- , ideclPkgQual = Nothing })
- <- import_decls
- , unLoc mod == pRELUDE_NAME ]
+ explicit_prelude_import = any is_prelude_import import_decls
+
+ is_prelude_import (L _ decl) =
+ unLoc (ideclName decl) == pRELUDE_NAME
+ -- allow explicit "base" package qualifier (#19082, #17045)
+ && case ideclPkgQual decl of
+ Nothing -> True
+ Just b -> sl_fs b == unitIdFS baseUnitId
+
preludeImportDecl :: LImportDecl GhcPs
preludeImportDecl