Update dependency rust to v1.90.0 #164
Open
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.86.0->1.90.0Release Notes
rust-lang/rust (rust)
v1.90.0Compare Source
===========================
Language
unknown_or_malformed_diagnostic_attributeslint. This lint has been split up into four finer-grained lints, withunknown_or_malformed_diagnostic_attributesnow being the lint group that contains these lints:unknown_diagnostic_attributes: unknown to the current compilermisplaced_diagnostic_attributes: placed on the wrong itemmalformed_diagnostic_attributes: malformed attribute syntax or optionsmalformed_diagnostic_format_literals: malformed format string literalCompiler
lldby default onx86_64-unknown-linux-gnu.musltargets now link dynamically by default. Affected targets:mips64-unknown-linux-muslabi64powerpc64-unknown-linux-muslpowerpc-unknown-linux-muslpowerpc-unknown-linux-muslsperiscv32gc-unknown-linux-musls390x-unknown-linux-muslthumbv7neon-unknown-linux-musleabihfPlatform Support
x86_64-apple-darwinto Tier 2 with host toolsRefer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
u*::{checked,overflowing,saturating,wrapping}_sub_signedCStr,CString, andCow<CStr>MSG_NOSIGNALforUnixStreamproc_macro::Ident::newnow supports$crate.Thread::into_rawhas at least 8 bytes of alignmentStabilized APIs
u{n}::checked_sub_signedu{n}::overflowing_sub_signedu{n}::saturating_sub_signedu{n}::wrapping_sub_signedimpl Copy for IntErrorKindimpl Hash for IntErrorKindimpl PartialEq<&CStr> for CStrimpl PartialEq<CString> for CStrimpl PartialEq<Cow<CStr>> for CStrimpl PartialEq<&CStr> for CStringimpl PartialEq<CStr> for CStringimpl PartialEq<Cow<CStr>> for CStringimpl PartialEq<&CStr> for Cow<CStr>impl PartialEq<CStr> for Cow<CStr>impl PartialEq<CString> for Cow<CStr>These previously stable APIs are now stable in const contexts:
<[T]>::reversef32::floorf32::ceilf32::truncf32::fractf32::roundf32::round_ties_evenf64::floorf64::ceilf64::truncf64::fractf64::roundf64::round_ties_evenCargo
http.proxy-cainfoconfig for proxy certsgixforcargo packageRustdoc
implblocks, now they do when shift is heldunsafe()wrappersCompatibility Notes
lldby default onx86_64-unknown-linux-gnu.See also https://blog.rust-lang.org/2025/09/01/rust-lld-on-1.90.0-stable/.
core::iter::Fuse'sDefaultimpl constructI::default()internally as promised in the docs instead of always being emptyMSG_NOSIGNALforUnixStreamThis may change program behavior but results in the same behavior as other primitives (e.g., stdout, network sockets).
Programs relying on signals to terminate them should update handling of sockets to handle errors on write by exiting.
std::env::home_dirwill use the fallback if theHOMEenvironment variable is emptyextern "{abi}"s consistently in all positions. This primarily affects the use of implementing traits on anextern "{abi}"function pointer, likeextern "stdcall" fn(), on a platform that doesn't support that, like aarch64-unknown-linux-gnu. Direct usage of these unsupported ABI strings by declaring or defining functions was already rejected, so this is only a change for consistency.proc_macro_derivemacro has correct arguments when applied to the crate rootv1.89.0Compare Source
==========================
Language
feature(generic_arg_infer))mismatched_lifetime_syntaxeslint.This lint detects when the same lifetime is referred to by different syntax categories between function arguments and return values, which can be confusing to read, especially in unsafe code.
This lint supersedes the warn-by-default
elided_named_lifetimeslint.unpredictable_function_pointer_comparisonsto also lint on function pointer comparisons in external macrosdangerous_implicit_autorefslint deny-by-defaultklandwidekltarget features for x86sha512,sm3andsm4target features for x86f,d,frecipe,lasx,lbt,lsx, andlvzi128andu128fromimproper_ctypes_definitionsrepr128(#[repr(u128)],#[repr(i128)])#![doc(test(attr(..)))]everywhereextern "C"functions on thewasm32-unknown-unknowntarget now have a standards compliant ABICompiler
Platform Support
loongarch32-unknown-noneandloongarch32-unknown-none-softfloatx86_64-apple-darwinis in the process of being demoted to Tier 2 with host toolsRefer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
file!format_args!()in a variable#[must_use]to[T; N]::mapDerefMutforLazy{Cell,Lock}Defaultforarray::IntoIterCloneforslice::ChunkByio::Seekforio::TakeStabilized APIs
NonZero<char>SHA512,SM3andSM4intrinsicsFile::lockFile::lock_sharedFile::try_lockFile::try_lock_sharedFile::unlockNonNull::from_refNonNull::from_mutNonNull::without_provenanceNonNull::with_exposed_provenanceNonNull::expose_provenanceOsString::leakPathBuf::leakResult::flattenstd::os::linux::net::TcpStreamExt::quickackstd::os::linux::net::TcpStreamExt::set_quickackThese previously stable APIs are now stable in const contexts:
<[T; N]>::as_mut_slice<[u8]>::eq_ignore_ascii_casestr::eq_ignore_ascii_caseCargo
cargo fixandcargo clippy --fixnow default to the same Cargo target selection as other build commands. Previously it would apply to all targets (like binaries, examples, tests, etc.). The--editionflag still applies to all targets.runnersetting to run the tests. If you need to disable tests for a target, you can use the ignore doctest attribute to specify the targets to ignore.Rustdoc
Compatibility Notes
missing_fragment_specifieran unconditional errorneontarget feature onaarch64-unknown-none-softfloatcauses a warning because mixing code with and without that target feature is not properly supported by LLVM?Sizedbounds on impls on recursive types which contain associated type projections. It is not expected to affect any existing published crates. Can be fixed by refactoring the involved types or opting into thesized_hierarchyunstable feature. See the FCP report for a code example.elided_named_lifetimeslint is superseded by the warn-by-defaultmismatched_lifetime_syntaxeslint.Copyare now only available at the end of type checkingstd::intrinsics::{copy,copy_nonoverlapping,write_bytes}are now proper intrinsics. There are no debug assertions guarding against UB, and they cannot be coerced to function pointers.std::intrinsics::drop_in_place!) are now reported in dependenciesstd::ptr::copy_*intrinsics also perform the static self-init checksextern "C"functions on thewasm32-unknown-unknowntarget now have a standards compliant ABIInternal 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.
rustc-devcomponentv1.88.0Compare Source
==========================
Language
#![feature(let_chains)]in the 2024 edition.This feature allows
&&-chainingletstatements insideifandwhile, allowing intermixture with boolean expressions. The patterns inside theletsub-expressions can be irrefutable or refutable.#![feature(naked_functions)].Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function.
#![feature(cfg_boolean_literals)].This allows using boolean literals as
cfgpredicates, e.g.#[cfg(true)]and#[cfg(false)].#[bench]attribute. Usage of#[bench]without#![feature(custom_test_frameworks)]already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.dangerous_implicit_autorefslint against implicit autoref of raw pointer dereference.The lint will be bumped to deny-by-default in the next version of Rust.
invalid_null_argumentslint to prevent invalid usage of null pointers.This lint is uplifted from
clippy::invalid_null_ptr_usage.Compiler
-Cdwarf-versionfor selecting the version of DWARF debug information to generate.Platform Support
i686-pc-windows-gnuto Tier 2.Refer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
#[should_panic]test failure message.[T; N]::from_fnis generated in order of increasing indices., for those passing it a stateful closure.--nocaptureis deprecated in favor of the more consistent--no-captureflag.{float}::NANis a quiet NaN.Stabilized APIs
Cell::updateimpl Default for *const Timpl Default for *mut THashMap::extract_ifHashSet::extract_ifhint::select_unpredictableproc_macro::Span::lineproc_macro::Span::columnproc_macro::Span::startproc_macro::Span::endproc_macro::Span::fileproc_macro::Span::local_file<[T]>::as_chunks<[T]>::as_chunks_mut<[T]>::as_chunks_unchecked<[T]>::as_chunks_unchecked_mut<[T]>::as_rchunks<[T]>::as_rchunks_mutmod ffi::c_strThese previously stable APIs are now stable in const contexts:
NonNull<T>::replace<*mut T>::replacestd::ptr::swap_nonoverlappingCell::replaceCell::getCell::get_mutCell::from_mutCell::as_slice_of_cellsCargo
zlib-rsfor gzip compression in rust codeRustdoc
ignore-*attributes.--test-runtooland--test-runtool-argCLI options to specify a program (like qemu) and its arguments to run a doctest.Compatibility Notes
ttfragment specifier can often fix these macros.#[bench]attribute. Usage of#[bench]without#![feature(custom_test_frameworks)]already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled.
v1.87.0Compare Source
==========================
Language
asm_gotofeature..EXPR) after unary operators!,-, and*.Self: Sizedbounds inimpls for unsized typesfeature(precise_capturing_in_traits)allowinguse<...>bounds on return positionimpl TraitintraitsCompiler
Platform Support
i586-pc-windows-msvctargetRefer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
Debugimpl of raw pointersVec::with_capacityguarantees it allocates with the amount requested, even ifVec::capacityreturns a different number.std::archintrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled (rust-lang/stdarch#1714, rust-lang/stdarch#1716, rust-lang/stdarch#1717)env::home_dirControlFlowas#[must_use]assert_eq!andvec!now supportconst {...}expressionsStabilized APIs
Vec::extract_ifvec::ExtractIfLinkedList::extract_iflinked_list::ExtractIf<[T]>::split_off<[T]>::split_off_mut<[T]>::split_off_first<[T]>::split_off_first_mut<[T]>::split_off_last<[T]>::split_off_last_mutString::extend_from_withinos_str::DisplayOsString::displayOsStr::displayio::pipeio::PipeReaderio::PipeWriterimpl From<PipeReader> for OwnedHandleimpl From<PipeWriter> for OwnedHandleimpl From<PipeReader> for Stdioimpl From<PipeWriter> for Stdioimpl From<PipeReader> for OwnedFdimpl From<PipeWriter> for OwnedFdBox<MaybeUninit<T>>::writeimpl TryFrom<Vec<u8>> for String<*const T>::offset_from_unsigned<*const T>::byte_offset_from_unsigned<*mut T>::offset_from_unsigned<*mut T>::byte_offset_from_unsignedNonNull::offset_from_unsignedNonNull::byte_offset_from_unsigned<uN>::cast_signedNonZero::<uN>::cast_signed.<iN>::cast_unsigned.NonZero::<iN>::cast_unsigned.<uN>::is_multiple_of<uN>::unbounded_shl<uN>::unbounded_shr<iN>::unbounded_shl<iN>::unbounded_shr<iN>::midpoint<str>::from_utf8<str>::from_utf8_mut<str>::from_utf8_unchecked<str>::from_utf8_unchecked_mutThese previously stable APIs are now stable in const contexts:
core::str::from_utf8_mut<[T]>::copy_from_sliceSocketAddr::set_ipSocketAddr::set_port,SocketAddrV4::set_ipSocketAddrV4::set_port,SocketAddrV6::set_ipSocketAddrV6::set_portSocketAddrV6::set_flowinfoSocketAddrV6::set_scope_idchar::is_digitchar::is_whitespace<[[T; N]]>::as_flattened<[[T; N]]>::as_flattened_mutString::into_bytesString::as_strString::capacityString::as_bytesString::lenString::is_emptyString::as_mut_strString::as_mut_vecVec::as_ptrVec::as_sliceVec::capacityVec::lenVec::is_emptyVec::as_mut_sliceVec::as_mut_ptrCargo
Compatibility Notes
#![crate_name]attributeDebugimpl of raw pointers print metadata if presentdyntypes are no longer deduplicated..inside of struct patterns (let Struct { #[attribute] .. }) =ptr_cast_add_auto_to_objectlint into hard errorstd::archintrinsics are now safe to call in some contexts, there may now be newunused_unsafewarnings in existing codebases.widthandprecisionformatting options to 16 bits on all targetsControlFlowas#[must_use]advapi32, except on win7. Code such as C libraries that were relying on this assumption may need to explicitly link advapi32.cfg(true)attributes.ttfragment specifier can often fix these macros.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 - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.