diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2020-01-06 14:02:47 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-01-07 13:14:57 -0500 |
commit | b69a3460d11cba49e861f708100801c8e25efa3e (patch) | |
tree | a075a807851b803a62d602dab40b62472d2be297 /compiler/main | |
parent | 1ca9adbc88903afe49de0d063ccd35daf43f7d9e (diff) | |
download | haskell-b69a3460d11cba49e861f708100801c8e25efa3e.tar.gz |
Monomorphize HsModule to GhcPs (#17642)
Analyzing the call sites for `HsModule` reveals that it is only ever
used with parsed code (i.e., `GhcPs`). This simplifies `HsModule` by
concretizing its `pass` parameter to always be `GhcPs`.
Fixes #17642.
Diffstat (limited to 'compiler/main')
-rw-r--r-- | compiler/main/GHC.hs | 4 | ||||
-rw-r--r-- | compiler/main/HscStats.hs | 2 | ||||
-rw-r--r-- | compiler/main/HscTypes.hs | 2 |
3 files changed, 4 insertions, 4 deletions
diff --git a/compiler/main/GHC.hs b/compiler/main/GHC.hs index 4030e87eff..38645e9b23 100644 --- a/compiler/main/GHC.hs +++ b/compiler/main/GHC.hs @@ -857,7 +857,7 @@ instance TypecheckedMod DesugaredModule where instance DesugaredMod DesugaredModule where coreModule m = dm_core_module m -type ParsedSource = Located (HsModule GhcPs) +type ParsedSource = Located HsModule type RenamedSource = (HsGroup GhcRn, [LImportDecl GhcRn], Maybe [(LIE GhcRn, Avails)], Maybe LHsDocString) type TypecheckedSource = LHsBinds GhcTc @@ -1547,7 +1547,7 @@ lookupName name = parser :: String -- ^ Haskell module source text (full Unicode is supported) -> DynFlags -- ^ the flags -> FilePath -- ^ the filename (for source locations) - -> (WarningMessages, Either ErrorMessages (Located (HsModule GhcPs))) + -> (WarningMessages, Either ErrorMessages (Located HsModule)) parser str dflags filename = let diff --git a/compiler/main/HscStats.hs b/compiler/main/HscStats.hs index a5072a7690..5c034a373f 100644 --- a/compiler/main/HscStats.hs +++ b/compiler/main/HscStats.hs @@ -21,7 +21,7 @@ import Util import Data.Char -- | Source Statistics -ppSourceStats :: Bool -> Located (HsModule GhcPs) -> SDoc +ppSourceStats :: Bool -> Located HsModule -> SDoc ppSourceStats short (L _ (HsModule _ exports imports ldecls _ _)) = (if short then hcat else vcat) (map pp_val diff --git a/compiler/main/HscTypes.hs b/compiler/main/HscTypes.hs index 5974b4ec63..85aac8c7c4 100644 --- a/compiler/main/HscTypes.hs +++ b/compiler/main/HscTypes.hs @@ -3098,7 +3098,7 @@ instance Binary IfaceTrustInfo where -} data HsParsedModule = HsParsedModule { - hpm_module :: Located (HsModule GhcPs), + hpm_module :: Located HsModule, hpm_src_files :: [FilePath], -- ^ extra source files (e.g. from #includes). The lexer collects -- these from '# <file> <line>' pragmas, which the C preprocessor |