Change the representation of export lists in .hi files
Currently export list in .hi files are partitioned by module export M T(C1,C2) N f,g In each list we only have OccNames, all assumed to come from the parent module M or N resp. This patch changes the representatation so that export lists have full Names: export M.T(M.C1,M.C2), N.f, N.g Numerous advatages * AvailInfo no longer needs to be parameterised; it always contains Names * Fixes Trac #5306. This was the main provocation * Less to-and-fro conversion when reading interface files It's all generally simpler. Interface files should not get bigger, becuase they have a nice compact representation for Names.
Showing
- compiler/basicTypes/Name.lhs 21 additions, 1 deletioncompiler/basicTypes/Name.lhs
- compiler/iface/BinIface.hs 1 addition, 1 deletioncompiler/iface/BinIface.hs
- compiler/iface/IfaceEnv.lhs 1 addition, 19 deletionscompiler/iface/IfaceEnv.lhs
- compiler/iface/LoadIface.lhs 9 additions, 12 deletionscompiler/iface/LoadIface.lhs
- compiler/iface/MkIface.lhs 9 additions, 46 deletionscompiler/iface/MkIface.lhs
- compiler/main/HscTypes.lhs 28 additions, 22 deletionscompiler/main/HscTypes.lhs
- compiler/prelude/PrelInfo.lhs 11 additions, 12 deletionscompiler/prelude/PrelInfo.lhs
- compiler/rename/RnEnv.lhs 5 additions, 7 deletionscompiler/rename/RnEnv.lhs
- compiler/rename/RnNames.lhs 81 additions, 93 deletionscompiler/rename/RnNames.lhs
- compiler/rename/RnSource.lhs 1 addition, 1 deletioncompiler/rename/RnSource.lhs
Loading
Please register or sign in to comment