`NamedVarMap` is extremely similar to `ResolveBoundVars`. The former contains two `UnordMap<ItemLocalId, T>` fields (obscured behind `ItemLocalMap` typedefs). The latter contains two `SortedMap<ItemLocalId, T>` fields. We construct a `NamedVarMap` and then convert it into a `ResolveBoundVars` by sorting the `UnordMap`s, which is unnecessary busywork. This commit removes `NamedVarMap` and constructs a `ResolveBoundVars` directly. `SortedMap` and `NamedVarMap` have slightly different perf characteristics during construction (e.g. speed of insertion) but this code isn't hot enough for that to matter. A few details to note. - A `FIXME` comment is removed. - The detailed comments on the fields of `NamedVarMap` are copied to `ResolveBoundVars` (which has a single, incorrect comment). - `BoundVarContext::map` is renamed. - `ResolveBoundVars` gets a derived `Default` impl. |
||
|---|---|---|
| .. | ||
| codegen_fn_attrs.rs | ||
| debugger_visualizer.rs | ||
| dependency_format.rs | ||
| exported_symbols.rs | ||
| lang_items.rs | ||
| limits.rs | ||
| mod.rs | ||
| privacy.rs | ||
| region.rs | ||
| resolve_bound_vars.rs | ||
| stability.rs | ||