rust/compiler/rustc_data_structures/src
Matthias Krüger 0e9c4fbf23
Rollup merge of #139502 - yaahc:still-mutable-ice, r=bjorn3
fix "still mutable" ice while metrics are enabled

Resolves "still mutable" ICE discovered by `@matthiaskrgr` here: [#t-docs-rs > metrics intitiative @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/356853-t-docs-rs/topic/metrics.20intitiative/near/510490790)

This was caused by invoking `crate_hash` before the `definitions` struct was frozen here: e643f59f6d/compiler/rustc_interface/src/passes.rs (L951)

resolved by moving metrics dumping to occur after `analysis` freezes the definitions

I'm guessing we didn't discover this in CI because the problem only occurs when you try to calculate the crash hash with incremental compilation enabled when it tries to freeze the definitions here: e643f59f6d/compiler/rustc_middle/src/hir/map.rs (L1172)

my understanding is that this causes us to freeze the definitions too early in compilation, then we subsequently try to mutate them, likely during `analysis`, and this causes the ICE.

r? `@bjorn3`
2025-04-10 17:27:13 +02:00
..
base_n Stabilize the size of incr comp object file names 2024-04-22 10:50:07 -04:00
binary_search_util Remove invariant comments 2023-11-05 17:35:37 -06:00
fingerprint remove redundant imports 2023-12-10 10:56:22 +08:00
flock bumpt compiler and tools to windows 0.59 2025-01-21 16:48:44 +03:00
graph Add unreachable_pub to RUSTC_LINT_FLAGS for compiler/ crates. 2025-03-11 13:14:21 +11:00
intern remove redundant imports 2023-12-10 10:56:22 +08:00
obligation_forest update cfgs 2025-04-09 12:29:59 +01:00
owned_slice Reformat using the new identifier sorting from rustfmt 2024-09-22 19:11:29 -04:00
profiling Don't use serde_json to serialize a simple JSON object 2023-04-16 15:00:06 +02:00
small_c_str Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
snapshot_map Reformat use declarations. 2024-07-29 08:26:52 +10:00
sorted_map Rollup merge of #136610 - Jarcho:range_idx, r=Noratrieb 2025-02-24 02:11:32 -05:00
sso Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
stable_hasher rename BitSet to DenseBitSet 2025-01-11 11:34:01 +00:00
sync fix "still mutable" ice while metrics are enabled 2025-04-08 15:00:37 -07:00
tagged_ptr Add unreachable_pub to RUSTC_LINT_FLAGS for compiler/ crates. 2025-03-11 13:14:21 +11:00
thousands Overhaul to_readable_str. 2025-01-31 16:04:13 +11:00
transitive_relation get rid of RefCell in TransitiveRelation 2022-08-22 18:08:46 +08:00
vec_cache Rustfmt 2025-02-08 22:12:13 +00:00
aligned.rs compiler: Use size_of from the prelude instead of imported 2025-03-07 13:37:04 -08:00
atomic_ref.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
base_n.rs chore: Fix typos in 'compiler' (batch 1) 2024-09-02 07:42:38 +02:00
fingerprint.rs Move hashes from rustc_data_structure to rustc_hashes so they can be shared with rust-analyzer 2025-02-16 16:18:30 -05:00
flat_map_in_place.rs Fix UB in ThinVec::flat_map_in_place 2025-02-26 15:49:19 +00:00
flock.rs update cfg(bootstrap) 2025-02-18 09:32:44 -08:00
frozen.rs Remove double spaces after dots in comments 2023-01-17 08:09:33 +00:00
fx.rs Invalidate all dereferences for non-local assignments 2025-04-02 19:58:35 +08:00
intern.rs Enforce T: Hash for Interned<...> 2025-02-17 21:35:52 -05:00
jobserver.rs Remove jobserver from Session 2024-12-13 10:21:22 +00:00
lib.rs Use hashbrown from crates.io 2025-03-21 07:54:35 +01:00
marker.rs Convert ShardedHashMap to use hashbrown::HashTable 2025-03-10 17:08:30 -07:00
memmap.rs Couple of changes to run rustc in miri 2025-02-05 13:52:22 +00:00
owned_slice.rs compiler/rustc_data_structures/src/sync.rs: delete Sync and Send 2025-02-11 09:15:54 +03:00
packed.rs MatchBranchSimplification: Consider empty-unreachable otherwise branch 2024-12-27 10:57:46 +00:00
profiling.rs compiler: Use size_of from the prelude instead of imported 2025-03-07 13:37:04 -08:00
sharded.rs Optimize hash map operations in the query system 2025-03-21 07:51:20 +01:00
small_c_str.rs Fix SmallCStr conversion from CStr 2024-02-14 18:40:53 -08:00
sorted_map.rs Use {Decodable,Encodable}_NoContext in type_ir 2025-03-15 06:34:36 +00:00
stable_hasher.rs Add TyCtx::env_var_os 2025-03-26 15:46:05 +01:00
stack.rs Stacker now handles miri using a noop impl itself 2025-02-21 13:54:45 +00:00
steal.rs update bootstrap configs 2024-10-15 20:30:23 -07:00
svh.rs Use {Decodable,Encodable}_NoContext in type_ir 2025-03-15 06:34:36 +00:00
sync.rs Add unreachable_pub to RUSTC_LINT_FLAGS for compiler/ crates. 2025-03-11 13:14:21 +11:00
tagged_ptr.rs De-abstract tagged pointer abstraction 2025-01-12 14:56:10 +00:00
temp_dir.rs Reformat use declarations. 2024-07-29 08:26:52 +10:00
thinvec.rs Add ExtractIf for ThinVec 2024-10-12 15:17:03 +01:00
transitive_relation.rs Greatly simplify lifetime captures in edition 2024 2025-02-22 22:24:52 +00:00
unhash.rs Handle clippy cases of rustc::potential_query_instability lint 2024-10-05 07:34:14 +03:00
unord.rs Auto merge of #138532 - matthiaskrgr:rollup-mgcynqu, r=matthiaskrgr 2025-03-15 11:40:17 +00:00
vec_cache.rs Notes on types/traits used for in-memory query caching 2025-02-03 22:36:01 +11:00
work_queue.rs rename BitSet to DenseBitSet 2025-01-11 11:34:01 +00:00