X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnTypes.lhs;h=7b4f85a2e1b46e1f751fb430b30473422b2486cb;hp=86f1dfcc797f43960bcabf50958dfe5a6bfed740;hb=61bcd16d4f3d4cf84b26bf7bb92f16f0440b7071;hpb=ebec49fed627b7dd17e297ddc79a9c677a2ce538 diff --git a/compiler/typecheck/TcRnTypes.lhs b/compiler/typecheck/TcRnTypes.lhs index 86f1dfc..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, @@ -225,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} @@ -633,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 }