chore(deps): Update Rust Stable to v1.95 - #74
Merged
Merged
Conversation
epage
pushed a commit
that referenced
this pull request
Sep 15, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [STABLE](https://redirect.github.com/rust-lang/rust) | minor | `1.95` → `1.96` | --- ### Release Notes <details> <summary>rust-lang/rust (STABLE)</summary> ### [`v1.96`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1960-2026-05-28) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.95.0...1.96.0) \========================== <a id="1.96.0-Language"></a> ## Language - [Allow passing `expr` metavariable to `cfg`](https://redirect.github.com/rust-lang/rust/pull/146961) - [Always coerce never types in tuple expressions](https://redirect.github.com/rust-lang/rust/pull/147834) - [Avoid incorrect inference guidance of function arguments in rare cases](https://redirect.github.com/rust-lang/rust/pull/150316) - [Support s390x vector registers in inline assembly](https://redirect.github.com/rust-lang/rust/pull/154184) - [Allow using constants of type `ManuallyDrop` as patterns (fixing a regression introduced in 1.94.0)](https://redirect.github.com/rust-lang/rust/pull/154891) <a id="1.96.0-Compiler"></a> ## Compiler - [Enable link relaxation feature for LoongArch Linux targets](https://redirect.github.com/rust-lang/rust/pull/153427) - [Update `riscv64gc-unknown-fuchsia` baseline to RVA22 + vector](https://redirect.github.com/rust-lang/rust/pull/155072) <a id="1.96.0-Libraries"></a> ## Libraries - [Support iterating over ranges of `NonZero` integers](https://redirect.github.com/rust-lang/rust/pull/127534) - [refactor 'valid for read/write' definition: exclude null; add that as an exception on individual methods instead](https://redirect.github.com/rust-lang/rust/pull/152615) - [Fix SGX delayed host lookup via ToSocketAddr](https://redirect.github.com/rust-lang/rust/pull/152851) <a id="1.96.0-Stabilized-APIs"></a> ## Stabilized APIs - [`assert_matches!`](https://doc.rust-lang.org/stable/std/macro.assert_matches.html) - [`debug_assert_matches!`](https://doc.rust-lang.org/stable/std/macro.debug_assert_matches.html) - [`From<T> for AssertUnwindSafe<T>`](https://doc.rust-lang.org/stable/std/panic/struct.AssertUnwindSafe.html#impl-From%3CT%3E-for-AssertUnwindSafe%3CT%3E) - [`From<T> for LazyCell<T, F>`](https://doc.rust-lang.org/stable/std/cell/struct.LazyCell.html#impl-From%3CT%3E-for-LazyCell%3CT,+F%3E) - [`From<T> for LazyLock<T, F>`](https://doc.rust-lang.org/stable/std/sync/struct.LazyLock.html#impl-From%3CT%3E-for-LazyLock%3CT,+F%3E) - [`core::range::RangeToInclusive`](https://doc.rust-lang.org/stable/core/range/struct.RangeToInclusive.html) - [`core::range::RangeToInclusiveIter`](https://doc.rust-lang.org/stable/core/range/struct.RangeToInclusiveIter.html) - [`core::range::RangeFrom`](https://doc.rust-lang.org/stable/core/ops/struct.RangeFrom.html) - [`core::range::RangeFromIter`](https://doc.rust-lang.org/stable/core/ops/struct.RangeFromIter.html) - [`core::range::Range`](https://doc.rust-lang.org/stable/std/range/struct.Range.html) - [`core::range::RangeIter`](https://doc.rust-lang.org/stable/std/range/struct.RangeIter.html) <a id="1.96.0-Cargo"></a> ## Cargo - [Allow a dependency to specify both a git repository and an alternate registry.](https://redirect.github.com/rust-lang/cargo/pull/16810/) Just like with crates.io, the git repository will be used locally, but the registry version will be used when published. - [Added `target.'cfg(..)'.rustdocflags` support in configuration.](https://redirect.github.com/rust-lang/cargo/pull/16846) - Fixed [CVE-2026-5222](https://blog.rust-lang.org/2026/05/25/cve-2026-5222/) and [CVE-2026-5223](https://blog.rust-lang.org/2026/05/25/cve-2026-5223/). <a id="1.96-Rustdoc"></a> ## Rustdoc - [Deprecation notes are now rendered like any other documentation](https://redirect.github.com/rust-lang/rust/pull/149931). Previously they used the css `white-space: pre-wrap;` property and stripped any `<p>` elements from the rendered html, however this caused issues and unintuitive behavior. The new behavior should be more predictable, however some multi-line deprecation notes will now be rendered as as single lines. If this is undesirable, you can use the standard markdown method of forcing a linebreak, which is two spaces followed by a newline (`"\n"`). - [Don't emit rustdoc `missing_doc_code_examples` lint on impl items](https://redirect.github.com/rust-lang/rust/pull/154048) - [Seperate methods and associated functions in sidebar](https://redirect.github.com/rust-lang/rust/pull/154644) <a id="1.96.0-Compatibility-Notes"></a> ## Compatibility Notes - [Fix layout of `#[repr(Int)]` enums in some edge cases involving fields of uninhabited zero-sized types](https://redirect.github.com/rust-lang/rust/pull/146989) - [Prevent unsize-coercing into `Pin<Foo>` where `Foo` doesn't implement `Deref`. Some such coercions were previously allowed, but produce a type with no useful public API.](https://redirect.github.com/rust-lang/rust/pull/149218) - [rustc: Stop passing `--allow-undefined` on wasm targets](https://redirect.github.com/rust-lang/rust/pull/149868) - [Gate the accidentally stabilized `#![reexport_test_harness_main]` attribute](https://redirect.github.com/rust-lang/rust/pull/152210) - [Error on return-position-impl-trait-in-traits whose types are too private](https://redirect.github.com/rust-lang/rust/pull/152543) - [Report the `uninhabited_static` lint in dependencies and make it deny-by-default](https://redirect.github.com/rust-lang/rust/pull/152853) - [Distributed builds now contain non-split debuginfo for windows-gnu](https://redirect.github.com/rust-lang/rust/pull/152870) This appears to improve the quality of backtraces. This change has no effect on the defaults for the output of rustc/cargo on these targets. - [Check const generic arguments are correctly typed in more positions](https://redirect.github.com/rust-lang/rust/pull/152931) - [Remove `-Csoft-float`](https://redirect.github.com/rust-lang/rust/pull/152973) - [Importing structs with `::{self [as name]}`, e.g., `struct S {}; use S::{self as Other};`, is now no longer permitted because `{self}` imports require a module parent.](https://redirect.github.com/rust-lang/rust/pull/152996) - [For `export_name`, `link_name`, and `link_section` attributes, if multiple of the same attribute is present, the first one now takes precedence.](https://redirect.github.com/rust-lang/rust/pull/153041) - [Update the minimum external LLVM to 21](https://redirect.github.com/rust-lang/rust/pull/153684) - On `avr` targets, C's `double` type is 32-bit by default, so [change `c_double` to `f32` on `avr` targets to match](https://redirect.github.com/rust-lang/rust/pull/154647). This is a breaking change, but necessary to make `c_double` match C's double. <a id="1.96.0-Internal-Changes"></a> ## 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. - [JSON targets: `aarch64` softfloat targets now have to have `rustc_abi` set to `"softfloat"`](https://redirect.github.com/rust-lang/rust/pull/152941) - [target specs: stricter checks for LLVM ABI values, and correlate that with `cfg(target_abi)`](https://redirect.github.com/rust-lang/rust/pull/153769) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - Every minute (`* * * * *`) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/epage/_rust). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTguMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.94→1.95Release Notes
rust-lang/rust (STABLE)
v1.95Compare Source
===========================
Language
if letguards on match armsirrefutable_let_patternslint no longer lints on let chainsCompiler
--remap-path-scopefor controlling the scoping of how paths get remapped in the resulting binaryPlatform Support
powerpc64-unknown-linux-muslto Tier 2 with host toolsaarch64-apple-tvosto Tier 2aarch64-apple-tvos-simto Tier 2aarch64-apple-watchosto Tier 2aarch64-apple-watchos-simto Tier 2aarch64-apple-visionosto Tier 2aarch64-apple-visionos-simto Tier 2Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
thread::scope: document how join interacts with TLS destructorsstr::containson aarch64 targets withneontarget feature enabled by defaultStabilized APIs
MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>[MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>>Cell<[T; N]>: AsRef<[Cell<T>; N]>Cell<[T; N]>: AsRef<[Cell<T>]>Cell<[T]>: AsRef<[Cell<T>]>bool: TryFrom<{integer}>AtomicPtr::updateAtomicPtr::try_updateAtomicBool::updateAtomicBool::try_updateAtomicIn::updateAtomicIn::try_updateAtomicUn::updateAtomicUn::try_updatecfg_select!mod core::rangecore::range::RangeInclusivecore::range::RangeInclusiveItercore::hint::cold_path<*const T>::as_ref_unchecked<*mut T>::as_ref_unchecked<*mut T>::as_mut_uncheckedThese previously stable APIs are now stable in const contexts:
fmt::from_fnControlFlow::is_breakControlFlow::is_continueCargo
cargo report *Rustdoc
Compatibility Notes
$cratewithout renaming, i.e.use $crate::{self};, is now no longer permitted due to stricter error checking forselfimports.In very rare cases, this may cause compilation errors due to bytes from parts of a pointer ending up in the padding bytes of a
constorstatic.ambiguous_glob_imported_traitsis now reported when using an ambiguously glob imported traitEq::assert_receiver_is_total_eqand emit future compatibility warnings on manual impls#[non_exhaustive]enum now reads the discriminant, even if the enum has only one variant. This can cause closures to capture values that they previously wouldn't.mut refandmut ref mutpatterns, part of the unstable Match Ergonomics 2024 RFC, were accidentally allowed on stable within struct pattern field shorthand. These patterns are now correctly feature-gated as unstable in this position.-Z unstable-optionsto use. Previously, they could not be used without the standard library, which has no stable build mechanism. In preparation for thebuild-stdproject adding that support, JSON target specs are being proactively gated to ensure they remain unstable even ifbuild-stdis stabilized. Cargo now includes the-Z json-target-specCLI flag to automatically pass-Z unstable-optionsto the compiler when needed. See #150151, #151534, and rust-lang/cargo#16557.#[feature]attributes on invalid targets are now checkedInternal 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.
Configuration
📅 Schedule: (UTC)
* * * * *)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.