Update dependency rust to v1.88.0 #117
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.88.0
Release Notes
rust-lang/rust (rust)
v1.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.
v1.87.0
Compare Source
==========================
Language
asm_goto
feature..EXPR
) after unary operators!
,-
, and*
.Self: Sized
bounds inimpl
s for unsized typesfeature(precise_capturing_in_traits)
allowinguse<...>
bounds on return positionimpl Trait
intrait
sCompiler
Platform Support
i586-pc-windows-msvc
targetRefer to Rust's platform support page
for more information on Rust's tiered platform support.
Libraries
Debug
impl of raw pointersVec::with_capacity
guarantees it allocates with the amount requested, even ifVec::capacity
returns a different number.std::arch
intrinsics which don't take pointer arguments can now be called from safe code if the caller has the appropriate target features already enabled (https://github.com/rust-lang/stdarch/pull/1714, https://github.com/rust-lang/stdarch/pull/1716, https://github.com/rust-lang/stdarch/pull/1717)env::home_dir
ControlFlow
as#[must_use]
assert_eq!
andvec!
now supportconst {...}
expressionsStabilized APIs
Vec::extract_if
vec::ExtractIf
LinkedList::extract_if
linked_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_mut
String::extend_from_within
os_str::Display
OsString::display
OsStr::display
io::pipe
io::PipeReader
io::PipeWriter
impl From<PipeReader> for OwnedHandle
impl From<PipeWriter> for OwnedHandle
impl From<PipeReader> for Stdio
impl From<PipeWriter> for Stdio
impl From<PipeReader> for OwnedFd
impl From<PipeWriter> for OwnedFd
Box<MaybeUninit<T>>::write
impl 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_unsigned
NonNull::offset_from_unsigned
NonNull::byte_offset_from_unsigned
<uN>::cast_signed
NonZero::<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_mut
These previously stable APIs are now stable in const contexts:
core::str::from_utf8_mut
<[T]>::copy_from_slice
SocketAddr::set_ip
SocketAddr::set_port
,SocketAddrV4::set_ip
SocketAddrV4::set_port
,SocketAddrV6::set_ip
SocketAddrV6::set_port
SocketAddrV6::set_flowinfo
SocketAddrV6::set_scope_id
char::is_digit
char::is_whitespace
<[[T; N]]>::as_flattened
<[[T; N]]>::as_flattened_mut
String::into_bytes
String::as_str
String::capacity
String::as_bytes
String::len
String::is_empty
String::as_mut_str
String::as_mut_vec
Vec::as_ptr
Vec::as_slice
Vec::capacity
Vec::len
Vec::is_empty
Vec::as_mut_slice
Vec::as_mut_ptr
Cargo
Compatibility Notes
#![crate_name]
attributeDebug
impl of raw pointers print metadata if presentdyn
types are no longer deduplicated..
inside of struct patterns (let Struct { #[attribute] .. }) =
ptr_cast_add_auto_to_object
lint into hard errorstd::arch
intrinsics are now safe to call in some contexts, there may now be newunused_unsafe
warnings in existing codebases.width
andprecision
formatting options to 16 bits on all targetsControlFlow
as#[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.tt
fragment 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.