$ the-wire · showcase
Array drops fixed in order after partial moves
By RepoJournal · Filed · About Rust · Composed from the cited sources · methodology
A compiler rollup fixed a drop-order bug in arrays that had been shipping since the fix was reversed, while library and docs work landed quietly around the edges.
Rollup merge of #165037 - yashaggarwal85d:fix-array-partial-move-drop-order, r=oli-obk rust-lang/rust
Drop elaboration was building the drop ladder over kept indices and dropped subslices in reverse, so `let a = [D(1), D(2)]; if false { let [_x, _] = a; }` dropped 2 before 1. The reversal arrived in rust-lang/rust#109008 and the fix restores the earlier order, so code relying on drop order after a partial move now behaves as it did before that PR.
Auto merge of #165563 - JonathanBrouwer:rollup-oi3v9Ow, r=JonathanBrouwer rust-lang/rust
The rollup of 6 includes a rustdoc performance change that skips unneeded intermediate JSON serializations, plus a new option to configure rustc_perf's path for out-of-tree uses. Rounding it out: the array drop-order fix, the lifetime span fix and intrinsic stability cleanup.
Rollup merge of #165523 - RalfJung:intrinsic-stability, r=oli-obk rust-lang/rust
RalfJung removed stability attributes from intrinsics. Intrinsics don't get stabilized and inherit their instability from context, so the old attributes could let them be accessed without triggering an "internal feature" warning.
Rollup merge of #165373 - malezjaa:fix-single-use-lifetime, r=JonathanBrouwer rust-lang/rust
Suggestions for single-use lifetimes now include the attributes' span instead of dropping them, fixing an issue filed in 2019 where machine-applicable fixes silently removed attribute macros.
Rollup merge of #165514 - TaKO8Ki:remove-unused-predicate-and-scope-types, r=fmease rust-lang/rust
WhereEqPredicate and ScopeId and their impls are gone. The fuzzed-issue labeling guidance and abby's test DSL docs both landed in the dev guide the same day.