X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Frename%2FRnNames.lhs;h=31ab4c78c8267d6be722c30a7d64bf3bf27c85db;hb=a357abfc2ed4f0ac6eae1cf542fe4fb3bebe686e;hp=6b98283afd63f7e92c413d42ae1a215270f097c3;hpb=bd865113a1446bb18fb32b546b8776b846a23116;p=ghc-hetmet.git diff --git a/compiler/rename/RnNames.lhs b/compiler/rename/RnNames.lhs index 6b98283..31ab4c7 100644 --- a/compiler/rename/RnNames.lhs +++ b/compiler/rename/RnNames.lhs @@ -411,17 +411,20 @@ used for source code. *** See "THE NAMING STORY" in HsDecls **** -Associated data types: Instances declarations may contain definitions of -associated data types whose data constructors we need to collect, too. -However, we need to be careful with the handling of the data type constructor -of each asscociated type, as it is already defined in the corresponding -class. We make a new name for it, but don't return it in the 'AvailInfo' (to -avoid raising a duplicate declaration error; see the helper -'unavail_main_name'). +Instances of indexed types +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Indexed data/newtype instances contain data constructors that we need to +collect, too. Moreover, we need to descend into the data/newtypes instances +of associated families. + +We need to be careful with the handling of the type constructor of each type +instance as the family constructor is already defined, and we want to avoid +raising a duplicate declaration error. So, we make a new name for it, but +don't return it in the 'AvailInfo'. \begin{code} getLocalDeclBinders :: TcGblEnv -> HsGroup RdrName -> RnM [Name] -getLocalDeclBinders gbl_env (HsGroup {hs_valds = ValBindsIn val_decls val_sigs, +getLocalDeclBinders gbl_env (HsGroup {hs_valds = ValBindsIn val_decls val_sigs, hs_tyclds = tycl_decls, hs_instds = inst_decls, hs_fords = foreign_decls })