1.52.0 (6 May, 2021) #
- Added the
unsafe_op_in_unsafe_fnlint, which checks whether the unsafe code in an
unsafe fnis wrapped in a
unsafeblock. This lint is allowed by default, and may become a warning or hard error in a future edition.
- You can now cast mutable references to arrays to a pointer of the same type as the element.
Added tier 3* support for the following targets.
* Refer to Rust’s [platform support page][platform-support-doc] for more information on Rust’s tiered platform support.
Arc<impl Error>now implements
- All integer division and remainder operations are now
Stabilised APIs #
The following previously stable APIs are now
- Rustdoc lints are now treated as a tool lint, meaning that
lints are now prefixed with
#[warn(rustdoc::broken_intra_doc_links)]). Using the old style is still allowed, and will become a warning in a future release.
- Rustdoc now supports argument files.
- Rustdoc now generates smart punctuation for documentation.
- You can now use “task lists” in Rustdoc Markdown. E.g.
- [x] Complete - [ ] Todo
- You can now pass multiple filters to tests. E.g.
cargo test -- foo barwill run all tests that match
- Rustup now distributes PDB symbols for the
stdlibrary on Windows, allowing you to see
stdsymbols when debugging.
Internal Only #
These changes provide no direct user facing benefits, but represent significant improvements to the internals and overall performance of rustc and related tools.
- Check the result cache before the DepGraph when ensuring queries
- Try fast_reject::simplify_type in coherence before doing full check
- Only store a LocalDefId in some HIR nodes
- Store HIR attributes in a side table
Compatibility Notes #
- Cargo build scripts are now forbidden from setting
- Removed support for the
- Deprecated the
x86_64-sun-solaristarget in favor of
- Rustdoc now only accepts
\tas delimiters for specifying languages in code blocks.
- Rustc now catches more cases of
- Changes in how proc macros handle whitespace may lead to panics when used
cargo updateshould be sufficient to fix this in all cases.
#[derive]into a regular macro attribute