chore(deps): Update Rust Stable to v1.91 - #61
Merged
Conversation
Pull Request Test Coverage Report for Build 18953500072Details
💛 - Coveralls |
epage
pushed a commit
that referenced
this pull request
Sep 8, 2026
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [STABLE](https://redirect.github.com/rust-lang/rust) | minor | `1.94` → `1.95` | --- ### Release Notes <details> <summary>rust-lang/rust (STABLE)</summary> ### [`v1.95`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1950-2026-04-16) [Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.94.0...1.95.0) \=========================== <a id="1.95-Language"></a> ## Language - [Stabilize `if let` guards on match arms](https://redirect.github.com/rust-lang/rust/pull/141295) - [`irrefutable_let_patterns` lint no longer lints on let chains](https://redirect.github.com/rust-lang/rust/pull/146832) - [Support importing path-segment keywords with renaming](https://redirect.github.com/rust-lang/rust/pull/146972) - [Stabilize inline assembly for PowerPC and PowerPC64](https://redirect.github.com/rust-lang/rust/pull/147996) - [const-eval: be more consistent in the behavior of padding during typed copies](https://redirect.github.com/rust-lang/rust/pull/148967) - [Const blocks are no longer evaluated to determine if expressions involving fallible operations can implicitly be constant-promoted.](https://redirect.github.com/rust-lang/rust/pull/150557). Expressions whose ability to implicitly be promoted would depend on the result of a const block are no longer implicitly promoted. - [Make operational semantics of pattern matching independent of crate and module](https://redirect.github.com/rust-lang/rust/pull/150681) <a id="1.95-Compiler"></a> ## Compiler - [Stabilize `--remap-path-scope` for controlling the scoping of how paths get remapped in the resulting binary](https://redirect.github.com/rust-lang/rust/pull/147611) <a id="1.95-Platform-Support"></a> ## Platform Support - [Promote `powerpc64-unknown-linux-musl` to Tier 2 with host tools](https://redirect.github.com/rust-lang/rust/pull/149962) - [Promote `aarch64-apple-tvos` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-tvos-sim` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-watchos` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-watchos-sim` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-visionos` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) - [Promote `aarch64-apple-visionos-sim` to Tier 2](https://redirect.github.com/rust-lang/rust/pull/152021) Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support. [platform-support-doc]: https://doc.rust-lang.org/rustc/platform-support.html <a id="1.95-Libraries"></a> ## Libraries - [`thread::scope`: document how join interacts with TLS destructors](https://redirect.github.com/rust-lang/rust/pull/149482) - [Speed up `str::contains` on aarch64 targets with `neon` target feature enabled by default](https://redirect.github.com/rust-lang/rust/pull/152176) <a id="1.95-Stabilized-APIs"></a> ## Stabilized APIs - [`MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-From%3CMaybeUninit%3C%5BT;+N%5D%3E%3E-for-%5BMaybeUninit%3CT%3E;+N%5D) - [`MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsRef%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsRef%3C%5BMaybeUninit%3CT%3E%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>`](https://doc.rust-lang.org/beta/std/mem/union.MaybeUninit.html#impl-AsMut%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-AsMut%3C%5BMaybeUninit%3CT%3E%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`[MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>>`](https://doc.rust-lang.org/stable/std/mem/union.MaybeUninit.html#impl-From%3C%5BMaybeUninit%3CT%3E;+N%5D%3E-for-MaybeUninit%3C%5BT;+N%5D%3E) - [`Cell<[T; N]>: AsRef<[Cell<T>; N]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E;+N%5D%3E-for-Cell%3C%5BT;+N%5D%3E) - [`Cell<[T; N]>: AsRef<[Cell<T>]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E%5D%3E-for-Cell%3C%5BT;+N%5D%3E) - [`Cell<[T]>: AsRef<[Cell<T>]>`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#impl-AsRef%3C%5BCell%3CT%3E%5D%3E-for-Cell%3C%5BT%5D%3E) - [`bool: TryFrom<{integer}>`](https://doc.rust-lang.org/stable/std/primitive.bool.html#impl-TryFrom%3Cu128%3E-for-bool) - [`AtomicPtr::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.update) - [`AtomicPtr::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicPtr.html#method.try_update) - [`AtomicBool::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicBool.html#method.update) - [`AtomicBool::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicBool.html#method.try_update) - [`AtomicIn::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicIsize.html#method.update) - [`AtomicIn::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicIsize.html#method.try_update) - [`AtomicUn::update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicUsize.html#method.update) - [`AtomicUn::try_update`](https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicUsize.html#method.try_update) - [`cfg_select!`](https://doc.rust-lang.org/stable/std/macro.cfg_select.html) - [`mod core::range`](https://doc.rust-lang.org/stable/core/range/index.html) - [`core::range::RangeInclusive`](https://doc.rust-lang.org/stable/core/range/struct.RangeInclusive.html) - [`core::range::RangeInclusiveIter`](https://doc.rust-lang.org/stable/core/range/struct.RangeInclusiveIter.html) - [`core::hint::cold_path`](https://doc.rust-lang.org/stable/core/hint/fn.cold_path.html) - [`<*const T>::as_ref_unchecked`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_ref_unchecked) - [`<*mut T>::as_ref_unchecked`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_ref_unchecked-1) - [`<*mut T>::as_mut_unchecked`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.as_mut_unchecked) These previously stable APIs are now stable in const contexts: - [`fmt::from_fn`](https://doc.rust-lang.org/stable/std/fmt/fn.from_fn.html) - [`ControlFlow::is_break`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.is_break) - [`ControlFlow::is_continue`](https://doc.rust-lang.org/stable/core/ops/enum.ControlFlow.html#method.is_continue) <a id="1.95-Cargo"></a> ## Cargo - [docs(report): enhance man pages for `cargo report *`](https://redirect.github.com/rust-lang/cargo/pull/16430/)<a id="1.95-Rustdoc"></a> ## Rustdoc - [In search results, rank unstable items lower](https://redirect.github.com/rust-lang/rust/pull/149460) - [Add new "hide deprecated items" setting in rustdoc](https://redirect.github.com/rust-lang/rust/pull/151091) <a id="1.95-Compatibility-Notes"></a> ## Compatibility Notes - [Array coercions may now result in less inference constraints than before](https://redirect.github.com/rust-lang/rust/pull/140283) - Importing `$crate` without renaming, i.e. `use $crate::{self};`, is now no longer permitted due to stricter error checking for `self` imports. - [const-eval: be more consistent in the behavior of padding during typed copies.](https://redirect.github.com/rust-lang/rust/pull/148967) 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 `const` or `static`. - [A future-incompatibility warning lint `ambiguous_glob_imported_traits` is now reported when using an ambiguously glob imported trait](https://redirect.github.com/rust-lang/rust/pull/149058) - [Check lifetime bounds of types mentioning only type parameters](https://redirect.github.com/rust-lang/rust/pull/149389) - [Report more visibility-related ambiguous import errors](https://redirect.github.com/rust-lang/rust/pull/149596) - [Deprecate `Eq::assert_receiver_is_total_eq` and emit future compatibility warnings on manual impls](https://redirect.github.com/rust-lang/rust/pull/149978) - [powerpc64: Use the ELF ABI version set in target spec instead of guessing](https://redirect.github.com/rust-lang/rust/pull/150468) (fixes the ELF ABI used by the OpenBSD target) - Matching on a `#[non_exhaustive]` enum [now reads the discriminant, even if the enum has only one variant](https://redirect.github.com/rust-lang/rust/pull/150681). This can cause closures to capture values that they previously wouldn't. - `mut ref` and `mut ref mut` patterns, part of the unstable [Match Ergonomics 2024 RFC](https://redirect.github.com/rust-lang/rust/issues/123076), were accidentally allowed on stable within struct pattern field shorthand. These patterns are now correctly feature-gated as unstable in this position. - [Add future-compatibility warning for derive helper attributes which conflict with built-in attributes](https://redirect.github.com/rust-lang/rust/pull/151152) - [JSON target specs](https://doc.rust-lang.org/rustc/targets/custom.html) have been destabilized and now require `-Z unstable-options` to use. Previously, they could not be used without the standard library, which has no stable build mechanism. In preparation for the `build-std` project adding that support, JSON target specs are being proactively gated to ensure they remain unstable even if `build-std` is stabilized. Cargo now includes the `-Z json-target-spec` CLI flag to automatically pass `-Z unstable-options` to the compiler when needed. See [#​150151](https://redirect.github.com/rust-lang/rust/pull/150151), [#​151534](https://redirect.github.com/rust-lang/rust/pull/150151), and [rust-lang/cargo#16557](https://redirect.github.com/rust-lang/cargo/pull/16557). - [The arguments of `#[feature]` attributes on invalid targets are now checked](https://redirect.github.com/rust-lang/rust/issues/153764) <a id="1.95-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. - [Update to LLVM 22](https://redirect.github.com/rust-lang/rust/pull/150722) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4xMjMuOCIsInVwZGF0ZWRJblZlciI6IjQzLjEyMy44IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> 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.90->1.91Release Notes
rust-lang/rust (STABLE)
v1.91Compare Source
==========================
Language
sysv64,win64,efiapi, andaapcsABIs.This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined.
dangling_pointers_from_localslint to warn against dangling pointers from local variablessemicolon_in_expressions_from_macrosfrom warn to denyinteger_to_ptr_transmuteslint against integer-to-pointer transmutessse4aandtbmtarget featurestarget_env = "macabi"andtarget_env = "sim"cfgs as replacements for thetarget_abicfgs with the same values.Compiler
ascasts as unreachablePlatform Support
aarch64-pc-windows-gnullvmandx86_64-pc-windows-gnullvmto Tier 2 with host tools.Note: llvm-tools and MSI installers are missing but will be added in future releases.
aarch64-pc-windows-msvcto Tier 1Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
core::panic::Location::filereturn type_by()variants ofmin/max/minmaxinstd::cmpCloneandEqtraitsstd::thread: Return error if setting thread stack size failsThis used to panic within the standard library.
Stabilized APIs
Path::file_prefixAtomicPtr::fetch_ptr_addAtomicPtr::fetch_ptr_subAtomicPtr::fetch_byte_addAtomicPtr::fetch_byte_subAtomicPtr::fetch_orAtomicPtr::fetch_andAtomicPtr::fetch_xor{integer}::strict_add{integer}::strict_sub{integer}::strict_mul{integer}::strict_div{integer}::strict_div_euclid{integer}::strict_rem{integer}::strict_rem_euclid{integer}::strict_neg{integer}::strict_shl{integer}::strict_shr{integer}::strict_powi{N}::strict_add_unsignedi{N}::strict_sub_unsignedi{N}::strict_absu{N}::strict_add_signedu{N}::strict_sub_signedPanicHookInfo::payload_as_strcore::iter::chainu{N}::checked_signed_diffcore::array::repeatPathBuf::add_extensionPathBuf::with_added_extensionDuration::from_minsDuration::from_hoursimpl PartialEq<str> for PathBufimpl PartialEq<String> for PathBufimpl PartialEq<str> for Pathimpl PartialEq<String> for Pathimpl PartialEq<PathBuf> for Stringimpl PartialEq<Path> for Stringimpl PartialEq<PathBuf> for strimpl PartialEq<Path> for strIpv4Addr::from_octetsIpv6Addr::from_octetsIpv6Addr::from_segmentsimpl<T> Default for Pin<Box<T>> where Box<T>: Default, T: ?Sizedimpl<T> Default for Pin<Rc<T>> where Rc<T>: Default, T: ?Sizedimpl<T> Default for Pin<Arc<T>> where Arc<T>: Default, T: ?SizedCell::as_array_of_cellsu{N}::carrying_addu{N}::borrowing_subu{N}::carrying_mulu{N}::carrying_mul_addBTreeMap::extract_ifBTreeSet::extract_ifimpl Debug for windows::ffi::EncodeWide<'_>str::ceil_char_boundarystr::floor_char_boundaryimpl Sum for Saturating<u{N}>impl Sum<&Self> for Saturating<u{N}>impl Product for Saturating<u{N}>impl Product<&Self> for Saturating<u{N}>These previously stable APIs are now stable in const contexts:
<[T; N]>::each_ref<[T; N]>::each_mutOsString::newPathBuf::newTypeId::ofptr::with_exposed_provenanceptr::with_exposed_provenance_mutCargo
build.build-dir.This config sets the directory where intermediate build artifacts are stored.
These artifacts are produced by Cargo and rustc during the build process.
End users usually won't need to interact with them, and the layout inside
build-diris an implementation detail that may change without notice.(config doc)
(build cache doc)
#15833
#15840
--targetflag and thebuild.targetconfiguration can now take literal"host-tuple"string, which will internally be substituted by the hostmachine's target triple.
#15838
#16003
#16032
Rustdoc
*const u8 ->, and additionally functions that take or return raw pointers will now display their signature properly in search results.Compatibility Notes
cc, and pass it viaSDKROOTenv var. This should fix linking issues withrustcrunning inside Xcode. Libraries in/usr/local/libmay no longer be linked automatically, if you develop or use a crate that relies on this, you should explicitly setcargo::rustc-link-search=/usr/local/libin abuild.rsscript.TraitRef<AssocTy: ?Sized>are now correctly forbidden#[sanitize(xyz = "on|off")]built-in attribute that shadows procedural macros with the same name#[should_panic]attributes#[link]attributessemicolon_in_expressions_from_macros, formacro_rules!macros in expression position that expand to end in a semicolon (;), is now deny-by-default. It was already warn-by-default, and a future compatibility warning (FCW) that warned even in dependencies. This lint will become a hard error in the future.unsafe,!,default) in inherent impls are no longer syntactically validill_formed_attribute_inputin dependenciespin!,format_args!,write!, andwriteln!inif letscrutinees in Rust Edition 2024. This applies Rust Edition 2024'sif lettemporary scope rules to these temporaries, which previously could live past theifexpression regardless of Edition.staticare now syntactically invalid--cfgand--check-cfgarguments are no longer allowedCargo compatibility notes:
cargo publishno longer keeps.cratetarballs as final build artifactswhen
build.build-diris set. These tarballs were previously included due toan oversight and are now treated as intermediate artifacts.
To get
.cratetarballs as final artifacts, usecargo package.In a future version, this change will apply regardless of
build.build-dir.#15910
This changes some of the terminal colors used by Cargo messages.
#15928
internal details of Cargo's
build-dirmay not work for users changing their
build-dirlayout.For those doing so, we'd recommend proactively testing these cases
particularly as we are considering changing the default location of the
build-dirin the future(cargo#16147).
If you can't migrate off of Cargo's internal details,
we'd like to learn more about your use case as we prepare to change the layout of the
build-dir(cargo#15010).
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.
Configuration
📅 Schedule: Branch creation - Every minute ( * * * * * ) (UTC), 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.
This PR was generated by Mend Renovate. View the repository job log.