Names Index
Information for efficiently navigating between declarations, aliases, definitions, and uses of atoms. This is information bounded by the module in which it occurs, but the referenced atoms may be in ancestor modules.
Constructors
Construct a NamesIndex from the provided data.
Types
A declaration of a name. Note that there may be multiple positions involved, such as the Names section of the header, the first mention of the name, or an Alias statement that connects it to another name.
A definition of a method, macro, or restriction in this module.
The kind of thing being defined with some NameInModule. These are serialized by their ordinal, so change the repository version number if these must change.
The occurrences of things related to some name appearing in this module.
An indication of where a name is used in the file, suitable for presenting in an itemized list.
The way that a NameInModule is being used somewhere.
Properties
A Map from each occurring NameInModule to the NameOccurrences that describe where and how the name is used in this module.
Functions
Add information about a Declaration.
Add information about a Definition.
Add all names mentioned by this module or package to the given BloomFilter.
Add information about a Usage.
Find all occurrences of the given nameToFind, invoking the functions as they're found. Ignore the bloomFilterIfPackage, letting the caller to decide how to use it to navigate. Don't search inside submodules. The caller should ensure the version of the file on disk corresponds with this NamesIndex.