diff options
Diffstat (limited to 'compiler/GHC/Parser/Header.hs')
-rw-r--r-- | compiler/GHC/Parser/Header.hs | 14 |
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 |