[deps]: Update Rust to v1.89.0 #393
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.87.0
->1.89.0
Release Notes
rust-lang/rust (rust)
v1.89.0
Compare Source
==========================
Language
feature(generic_arg_infer)
)mismatched_lifetime_syntaxes
lint.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_lifetimes
lint.unpredictable_function_pointer_comparisons
to also lint on function pointer comparisons in external macrosdangerous_implicit_autorefs
lint deny-by-defaultkl
andwidekl
target features for x86sha512
,sm3
andsm4
target features for x86f
,d
,frecipe
,lasx
,lbt
,lsx
, andlvz
i128
andu128
fromimproper_ctypes_definitions
repr128
(#[repr(u128)]
,#[repr(i128)]
)#![doc(test(attr(..)))]
everywhereextern "C"
functions on thewasm32-unknown-unknown
target now have a standards compliant ABICompiler
Platform Support
loongarch32-unknown-none
andloongarch32-unknown-none-softfloat
x86_64-apple-darwin
is 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]::map
DerefMut
forLazy{Cell,Lock}
Default
forarray::IntoIter
Clone
forslice::ChunkBy
io::Seek
forio::Take
Stabilized APIs
NonZero<char>
SHA512
,SM3
andSM4
intrinsicsFile::lock
File::lock_shared
File::try_lock
File::try_lock_shared
File::unlock
NonNull::from_ref
NonNull::from_mut
NonNull::without_provenance
NonNull::with_exposed_provenance
NonNull::expose_provenance
OsString::leak
PathBuf::leak
Result::flatten
std::os::linux::net::TcpStreamExt::quickack
std::os::linux::net::TcpStreamExt::set_quickack
These previously stable APIs are now stable in const contexts:
<[T; N]>::as_mut_slice
<[u8]>::eq_ignore_ascii_case
str::eq_ignore_ascii_case
Cargo
cargo fix
andcargo clippy --fix
now default to the same Cargo target selection as other build commands. Previously it would apply to all targets (like binaries, examples, tests, etc.). The--edition
flag still applies to all targets.runner
setting 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_specifier
an unconditional errorneon
target feature onaarch64-unknown-none-softfloat
causes a warning because mixing code with and without that target feature is not properly supported by LLVM?Sized
bounds 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_hierarchy
unstable feature. See the FCP report for a code example.elided_named_lifetimes
lint is superseded by the warn-by-defaultmismatched_lifetime_syntaxes
lint.Copy
are 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-unknown
target 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-dev
componentv1.88.0
Compare Source
==========================
Language
#![feature(let_chains)]
in the 2024 edition.This feature allows
&&
-chaininglet
statements insideif
andwhile
, allowing intermixture with boolean expressions. The patterns inside thelet
sub-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
cfg
predicates, 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_autorefs
lint against implicit autoref of raw pointer dereference.The lint will be bumped to deny-by-default in the next version of Rust.
invalid_null_arguments
lint to prevent invalid usage of null pointers.This lint is uplifted from
clippy::invalid_null_ptr_usage
.Compiler
-Cdwarf-version
for selecting the version of DWARF debug information to generate.Platform Support
i686-pc-windows-gnu
to 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_fn
is generated in order of increasing indices., for those passing it a stateful closure.--nocapture
is deprecated in favor of the more consistent--no-capture
flag.{float}::NAN
is a quiet NaN.Stabilized APIs
Cell::update
impl Default for *const T
impl Default for *mut T
HashMap::extract_if
HashSet::extract_if
hint::select_unpredictable
proc_macro::Span::line
proc_macro::Span::column
proc_macro::Span::start
proc_macro::Span::end
proc_macro::Span::file
proc_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_mut
mod ffi::c_str
These previously stable APIs are now stable in const contexts:
NonNull<T>::replace
<*mut T>::replace
std::ptr::swap_nonoverlapping
Cell::replace
Cell::get
Cell::get_mut
Cell::from_mut
Cell::as_slice_of_cells
Cargo
zlib-rs
for gzip compression in rust codeRustdoc
ignore-*
attributes.--test-runtool
and--test-runtool-arg
CLI options to specify a program (like qemu) and its arguments to run a doctest.Compatibility Notes
tt
fragment 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.
Configuration
📅 Schedule: Branch creation - "every 2nd week starting on the 2 week of the year before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 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 was generated by Mend Renovate. View the repository job log.