- Released on: 20 April, 2023
- Branched from master on: 3 March, 2023
- Deriving built-in traits on packed structs works with
- Stabilize the
cmpxchg16btarget feature on x86 and x86_64.
- Improve analysis of trait bounds for associated types.
- Allow associated types to be used as union fields.
Self: Autotraitbounds on dyn-safe trait methods.
[u8]for auto trait purposes.
*-pc-windows-gnuon CI to mingw-w64 v10 and GCC 12.2.
- Rework min_choice algorithm of member constraints.
falseas boolean flags in compiler arguments.
- Implement the unstable
DispatchFromDynfor cell types, allowing downstream experimentation with custom method receivers.
- Document that
Some(_)in more cases after optimization, subject to change.
Stabilized APIs #
These APIs are now stable in const contexts:
- Cargo now suggests
cargo clippy --fixwhen compilation warnings are auto-fixable.
- Cargo now suggests
cargo addif you try to install a library crate.
- Cargo now sets the
CARGO_BIN_NAMEenvironment variable also for binary examples.
- Vertically compact trait bound formatting.
- Only include stable lints in
- Compute maximum Levenshtein distance based on the query.
- Remove inconsistently-present sidebar tooltips.
- Search by macro when query ends with
Compatibility Notes #
rustupnow only contains a warning placeholder. This was primarily intended for RLS, and the corresponding
-Zsave-analysisflag has been removed from the compiler as well.
- Unaligned references to packed fields are now a hard error. This has been a warning since 1.53, and denied by default with a future-compatibility warning since 1.62.
- Update the minimum external LLVM to 14.
- Cargo now emits errors on invalid characters in a registry token.
default-featuresis set to false of a workspace dependency, and an inherited dependency of a member has
default-features = true, Cargo will enable default features of that dependency.
- Cargo denies
[env]configuration table. Cargo itself doesn’t pick up this value, but recursive calls to cargo would, which was not intended.
- Debuginfo for build dependencies is now off if not explicitly set. This is expected to improve the overall build time.
- The Rust distribution no longer always includes rustdoc
tools = [...]is set in config.toml, we will respect a missing rustdoc in that list. By default rustdoc remains included. To retain the prior behavior explicitly add
"rustdoc"to the list.
Internal Changes #
These changes do not affect any public interfaces of Rust, but they represent significant improvements to the performance or internals of rustc and related tools.