X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnTypes.lhs;h=7b4f85a2e1b46e1f751fb430b30473422b2486cb;hp=3d9bb60e4998bb1eab419e63558b1a4b2f866c9d;hb=61bcd16d4f3d4cf84b26bf7bb92f16f0440b7071;hpb=c4ec8f2a77894af1c6160c4e8ad5625ab62f0bea diff --git a/compiler/typecheck/TcRnTypes.lhs b/compiler/typecheck/TcRnTypes.lhs index 3d9bb60..7b4f85a 100644 --- a/compiler/typecheck/TcRnTypes.lhs +++ b/compiler/typecheck/TcRnTypes.lhs @@ -13,7 +13,7 @@ module TcRnTypes( IfGblEnv(..), IfLclEnv(..), -- Ranamer types - ErrCtxt, RecFieldEnv, + ErrCtxt, RecFieldEnv(..), ImportAvails(..), emptyImportAvails, plusImportAvails, WhereFrom(..), mkModDeps, @@ -208,11 +208,6 @@ data TcGblEnv -- The binds, rules and foreign-decl fiels are collected -- initially in un-zonked form and are finally zonked in tcRnSrcDecls - -- The next fields accumulate the payload of the - -- module The binds, rules and foreign-decl fiels are - -- collected initially in un-zonked form and are - -- finally zonked in tcRnSrcDecls - tcg_rn_imports :: Maybe [LImportDecl Name], tcg_rn_exports :: Maybe [Located (IE Name)], tcg_rn_decls :: Maybe (HsGroup Name), -- renamed decls, maybe @@ -230,11 +225,16 @@ data TcGblEnv 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 +data RecFieldEnv + = RecFields (NameEnv [Name]) -- Maps a constructor name *in this module* + -- to the fields for that constructor + NameSet -- Set of all fields declared *in this module*; + -- used to suppress name-shadowing complaints + -- when using record wild cards + -- E.g. let fld = e in C {..} -- This is used when dealing with ".." notation in record -- construction and pattern matching. - -- The FieldEnv deals *only* with constructors defined in *thie* + -- The FieldEnv deals *only* with constructors defined in *this* -- module. For imported modules, we get the same info from the -- TypeEnv \end{code} @@ -638,7 +638,7 @@ I am not convinced that this duplication is necessary or useful! -=chak data Inst = Dict { tci_name :: Name, - tci_pred :: TcPredType, + tci_pred :: TcPredType, -- Class or implicit parameter only tci_loc :: InstLoc }