$ the-wire · showcase
Rust fixes ICEs in never type attributes and BTreeMap panic safety
By RepoJournal · Filed · About Rust
Rust removes compiler ICEs from leftover never-type attributes, hardens BTreeMap::split_off against inconsistent panics, and rust-analyzer matches rustdoc docs rendering precisely.
The Rust compiler now errors instead of ICEing when it sees the removed `#![rustc_never_type_options()]` attribute, after fuzzing found two crash sites in `check_attr.rs` and `validate_attr.rs` [1]. `BTreeMap::split_off` now aborts instead of unwinding out of an inconsistent state when the caller's `Ord` or `Borrow` impl panics mid-split, fixing an issue where the two roots could alias the same values [2]. rust-analyzer's docs rendering now matches rustdoc precisely, fixing mixed sugared and desugared docs, indentation trimming, and outlined module indentation [3]. The proc macro server's `NamedTempFile` handling now uses `OpenOptions::write(true)`, falls back to the original DLL when copying fails, and uses a temporary directory for `Cargo.lock` because Cargo only accepts literally-named files [4]. The SGX TLS destructor now stores an `AtomicPtr<()>` instead of `AtomicUsize`, preserving pointer provenance and silencing miri in that code path [5]. rustlings added its first async exercise, but its story was rewritten to use return values instead of atomics and drop `println!()` because it takes a global lock [6]. The crates.io index added new crates `runlab`, `run_engine`, and `fastmind-macros`, and updated `kevy-hash` and `kevy-geo` [7][8][9].
Action items
- → Update to a rustc build containing these fixes to avoid ICEs on stale never-type attributes rust-lang/rust [monitor]
- → Test BTreeMap::split_off callers that may panic in Ord or Borrow rust-lang/rust [plan]
- → Verify proc macro server works with the corrected NamedTempFile handling rust-lang/rust-analyzer [monitor]
References
- [1] remove rustc_never_type_options attr remnants ↗ rust-lang/rust
- [2] Rollup merge of #161975 - matthew-demidoff:btree-split-off-panic-safety, r=nia-e ↗ rust-lang/rust
- [3] fix: Fix some subtle bugs in docs rendering ↗ rust-lang/rust-analyzer
- [4] Fix `NamedTempFile` ↗ rust-lang/rust-analyzer
- [5] Rollup merge of #161960 - phlip9:phlip9/sgx-fix-tls-ptr-provenance, r=clarfonthey ↗ rust-lang/rust
- [6] Change story of exercise async1 ↗ rust-lang/rustlings
- [7] Create crate `runlab` ↗ rust-lang/crates.io-index
- [8] Create crate `run_engine` ↗ rust-lang/crates.io-index
- [9] Create crate `fastmind-macros` ↗ rust-lang/crates.io-index