rust/compiler/rustc_hir_analysis/src/variance
bors 005fc0f00f Auto merge of #106977 - michaelwoerister:unord_id_collections, r=oli-obk
Use UnordMap and UnordSet for id collections (DefIdMap, LocalDefIdMap, etc)

This PR changes the `rustc_data_structures::define_id_collections!` macro to use `UnordMap` and `UnordSet` instead of `FxHashMap` and `FxHashSet`. This should account for a large portion of hash-maps being used in places where they can cause trouble.

The changes required are moderate but non-zero:
- In some places the collections are extracted into sorted vecs.
- There are a few instances where for-loops have been changed to extends.

~~Let's see what the performance impact is. With a bit more refactoring, we might be able to get rid of some of the additional sorting -- but the change set is already big enough. Unless there's a performance impact, I'd like to do further changes in subsequent PRs.~~

Performance does not seem to be negatively affected ([perf-run here](https://github.com/rust-lang/rust/pull/106977#issuecomment-1396776699)).

Part of [MCP 533](https://github.com/rust-lang/compiler-team/issues/533).

r? `@ghost`
2023-01-21 14:18:17 +00:00
..
constraints.rs Combine identical alias arms 2022-12-13 17:48:55 +00:00
mod.rs Stop using BREAK & CONTINUE in compiler 2023-01-17 23:17:51 -08:00
solve.rs Auto merge of #106977 - michaelwoerister:unord_id_collections, r=oli-obk 2023-01-21 14:18:17 +00:00
terms.rs Prefer doc comments over //-comments in compiler 2022-11-27 11:19:04 +00:00
test.rs remove error code from #[rustc_variance] and document its remains 2023-01-18 21:10:27 +13:00
xform.rs rustc_typeck to rustc_hir_analysis 2022-09-27 10:37:23 +02:00