The NameCache makes sure that there is just one Unique assigned for each original name; i.e. (module-name, occ-name) pair and provides something of a lookup mechanism for those names.
Moduleghc-lib-parser-9.14.1.20251220GHC2021
GHC.Types.Name.Cache
The Name Cache
- 2 types
- 11 values
- Packageghc-lib-parser-9.14.1.20251220
- Exports13
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceCache.hs
Initialize a new name cache
This is a version of newNameCache that lets you supply your own unique tag and set of known key names. This can go wrong if the tag supplied is one reserved by GHC for internal purposes. See #26055 for an example.
Use newNameCache when possible.
Deprecated. Use newNameCache or newNameCacheWith instead
This takes a tag for uniques to be generated and the list of knownKeyNames These must be initialized properly to ensure that names generated from this NameCache do not conflict with known key names.
Use newNameCache or newNameCacheWith instead
Update the name cache with the given function
Update the name cache with the given function
Additionally, it ensures that the given Module and OccName are evaluated. If not, chaos can ensue: we read the name-cache then pull on mod (say) which does some stuff that modifies the name cache This did happen, with tycon_mod in GHC.IfaceToCore.tcIfaceAlt (DataAlt..)