IfGblEnv(..), IfLclEnv(..),
-- Ranamer types
- ErrCtxt,
+ ErrCtxt, RecFieldEnv,
ImportAvails(..), emptyImportAvails, plusImportAvails,
WhereFrom(..), mkModDeps,
tcg_default :: Maybe [Type], -- Types used for defaulting
-- Nothing => no 'default' decl
- tcg_fix_env :: FixityEnv, -- Just for things in this module
+ tcg_fix_env :: FixityEnv, -- Just for things in this module
+ tcg_field_env :: RecFieldEnv, -- Just for things in this module
tcg_type_env :: TypeEnv, -- Global type env for the module we are compiling now
-- All TyCons and Classes (for this module) end up in here right away,
tcg_fords :: [LForeignDecl Id], -- ...Foreign import & exports
tcg_doc :: Maybe (HsDoc Name), -- Maybe Haddock documentation
- tcg_hmi :: HaddockModInfo Name -- Haddock module information
+ tcg_hmi :: HaddockModInfo Name, -- Haddock module information
+ tcg_hpc :: AnyHpcUsage -- True if any part of the prog uses hpc instrumentation.
}
+
+type RecFieldEnv = NameEnv [Name] -- Maps a constructor name *in this module*
+ -- to the fields for that constructor
+ -- This is used when dealing with ".." notation in record
+ -- construction and pattern matching.
+ -- The FieldEnv deals *only* with constructors defined in
+ -- *thie* module. For imported modules, we get the same info
+ -- from the TypeEnv
\end{code}
%************************************************************************