From f22d0cbdb0f9719cc5152798ce29b6fbc78a1ef9 Mon Sep 17 00:00:00 2001 From: "Tim (Theemathas Chirananthavat)" Date: Fri, 25 Sep 2026 19:40:50 +0700 Subject: [PATCH] Stabilize `iter_advance_by` --- library/alloc/src/lib.rs | 1 - library/alloctests/lib.rs | 1 - library/alloctests/tests/lib.rs | 1 - library/core/src/iter/traits/double_ended.rs | 4 +--- library/core/src/iter/traits/iterator.rs | 4 +--- library/coretests/benches/lib.rs | 1 - library/coretests/tests/lib.rs | 1 - library/std/src/lib.rs | 1 - src/tools/miri/src/lib.rs | 2 +- src/tools/miri/tests/pass/vec.rs | 2 +- .../generics/def-path-hash-collision-ice-153410.rs | 2 +- tests/ui/delegation/generics/synth-params-ice-143498.rs | 1 - tests/ui/delegation/generics/synth-params-ice-143498.stderr | 6 +++--- 13 files changed, 8 insertions(+), 19 deletions(-) diff --git a/library/alloc/src/lib.rs b/library/alloc/src/lib.rs index de6830a514656..a15966ca1803c 100644 --- a/library/alloc/src/lib.rs +++ b/library/alloc/src/lib.rs @@ -143,7 +143,6 @@ #![feature(io_const_error)] #![feature(io_const_error_internals)] #![feature(io_slice_as_bytes)] -#![feature(iter_advance_by)] #![feature(iter_next_chunk)] #![feature(legacy_receiver_trait)] #![feature(likely_unlikely)] diff --git a/library/alloctests/lib.rs b/library/alloctests/lib.rs index 76550081a703c..32df3b0d1aaa5 100644 --- a/library/alloctests/lib.rs +++ b/library/alloctests/lib.rs @@ -32,7 +32,6 @@ #![feature(extend_one_unchecked)] #![feature(hasher_prefixfree_extras)] #![feature(inplace_iteration)] -#![feature(iter_advance_by)] #![feature(iter_next_chunk)] #![feature(maybe_uninit_uninit_array_transpose)] #![feature(ptr_alignment_type)] diff --git a/library/alloctests/tests/lib.rs b/library/alloctests/tests/lib.rs index 9bcb545c8e87d..42ea6a7f3bf9e 100644 --- a/library/alloctests/tests/lib.rs +++ b/library/alloctests/tests/lib.rs @@ -29,7 +29,6 @@ #![feature(hashmap_internals)] #![feature(inplace_iteration)] #![feature(io_const_error)] -#![feature(iter_advance_by)] #![feature(iter_array_chunks)] #![feature(iter_next_chunk)] #![feature(linked_list_cursors)] diff --git a/library/core/src/iter/traits/double_ended.rs b/library/core/src/iter/traits/double_ended.rs index a7c8ec9319a07..7e339b422006d 100644 --- a/library/core/src/iter/traits/double_ended.rs +++ b/library/core/src/iter/traits/double_ended.rs @@ -168,8 +168,6 @@ pub const trait DoubleEndedIterator: [const] Iterator { /// Basic usage: /// /// ``` - /// #![feature(iter_advance_by)] - /// /// use std::num::NonZero; /// /// let a = [3, 4, 5, 6]; @@ -184,7 +182,7 @@ pub const trait DoubleEndedIterator: [const] Iterator { /// [`Ok(())`]: Ok /// [`Err(k)`]: Err #[inline] - #[unstable(feature = "iter_advance_by", issue = "77404")] + #[stable(feature = "iter_advance_by", since = "CURRENT_RUSTC_VERSION")] fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero> where Self::Item: [const] Destruct, diff --git a/library/core/src/iter/traits/iterator.rs b/library/core/src/iter/traits/iterator.rs index cc4077d0ee26f..fbdb14f31aa2f 100644 --- a/library/core/src/iter/traits/iterator.rs +++ b/library/core/src/iter/traits/iterator.rs @@ -292,8 +292,6 @@ pub const trait Iterator { /// # Examples /// /// ``` - /// #![feature(iter_advance_by)] - /// /// use std::num::NonZero; /// /// let a = [1, 2, 3, 4]; @@ -305,7 +303,7 @@ pub const trait Iterator { /// assert_eq!(iter.advance_by(100), Err(NonZero::new(99).unwrap())); // only `4` was skipped /// ``` #[inline] - #[unstable(feature = "iter_advance_by", issue = "77404")] + #[stable(feature = "iter_advance_by", since = "CURRENT_RUSTC_VERSION")] fn advance_by(&mut self, n: usize) -> Result<(), NonZero> where Self::Item: [const] Destruct, diff --git a/library/coretests/benches/lib.rs b/library/coretests/benches/lib.rs index e8dc815a7dd0f..3f89d106ed604 100644 --- a/library/coretests/benches/lib.rs +++ b/library/coretests/benches/lib.rs @@ -7,7 +7,6 @@ #![feature(trusted_random_access)] #![feature(iter_array_chunks)] #![feature(iter_next_chunk)] -#![feature(iter_advance_by)] #![feature(num_internals)] #![feature(uint_gather_scatter_bits)] #![allow(internal_features)] diff --git a/library/coretests/tests/lib.rs b/library/coretests/tests/lib.rs index 69bc6edd1b833..fc1fa8b2de6fa 100644 --- a/library/coretests/tests/lib.rs +++ b/library/coretests/tests/lib.rs @@ -76,7 +76,6 @@ #![feature(io_slice_as_bytes)] #![feature(ip)] #![feature(is_ascii_octdigit)] -#![feature(iter_advance_by)] #![feature(iter_array_chunks)] #![feature(iter_collect_into)] #![feature(iter_intersperse)] diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index d59d204d6e144..7bbe74580a977 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -363,7 +363,6 @@ #![feature(io_error_uncategorized)] #![feature(io_slice_as_bytes)] #![feature(ip)] -#![feature(iter_advance_by)] #![feature(iter_next_chunk)] #![feature(maybe_dangling)] #![feature(maybe_uninit_array_assume_init)] diff --git a/src/tools/miri/src/lib.rs b/src/tools/miri/src/lib.rs index ffbe6609e023f..4008ccd4dd6dc 100644 --- a/src/tools/miri/src/lib.rs +++ b/src/tools/miri/src/lib.rs @@ -1,4 +1,4 @@ -#![cfg_attr(all(feature = "native-lib", unix), feature(iter_advance_by))] +#![cfg_attr(all(feature = "native-lib", unix, bootstrap), feature(iter_advance_by))] #![cfg_attr( all( feature = "native-lib", diff --git a/src/tools/miri/tests/pass/vec.rs b/src/tools/miri/tests/pass/vec.rs index 7df78ec58f00b..b3d841488fa9d 100644 --- a/src/tools/miri/tests/pass/vec.rs +++ b/src/tools/miri/tests/pass/vec.rs @@ -2,7 +2,7 @@ //@compile-flags: -Zmiri-strict-provenance //@[tree_implicit_writes]compile-flags: -Zmiri-tree-borrows -Zmiri-tree-borrows-implicit-writes //@[tree]compile-flags: -Zmiri-tree-borrows -#![feature(iter_advance_by, iter_next_chunk)] +#![feature(iter_next_chunk)] // Gather all references from a mutable iterator and make sure Miri notices if // using them is dangerous. diff --git a/tests/ui/delegation/generics/def-path-hash-collision-ice-153410.rs b/tests/ui/delegation/generics/def-path-hash-collision-ice-153410.rs index a35386fa3720e..91a9e1880a721 100644 --- a/tests/ui/delegation/generics/def-path-hash-collision-ice-153410.rs +++ b/tests/ui/delegation/generics/def-path-hash-collision-ice-153410.rs @@ -1,7 +1,7 @@ //@ compile-flags: -Z deduplicate-diagnostics=yes //@ edition:2024 -#![feature(fn_delegation)]#![feature(iter_advance_by)] +#![feature(fn_delegation)] #![feature(iter_array_chunks)] #![feature(iterator_try_collect)] #![feature(iterator_try_reduce)] diff --git a/tests/ui/delegation/generics/synth-params-ice-143498.rs b/tests/ui/delegation/generics/synth-params-ice-143498.rs index 366451ccdc012..abd129c4540ae 100644 --- a/tests/ui/delegation/generics/synth-params-ice-143498.rs +++ b/tests/ui/delegation/generics/synth-params-ice-143498.rs @@ -2,7 +2,6 @@ //@ edition:2024 #![feature(fn_delegation)] -#![feature(iter_advance_by)] #![feature(iter_array_chunks)] #![feature(iterator_try_collect)] #![feature(iterator_try_reduce)] diff --git a/tests/ui/delegation/generics/synth-params-ice-143498.stderr b/tests/ui/delegation/generics/synth-params-ice-143498.stderr index 8db4a84d76c53..5c93088b77527 100644 --- a/tests/ui/delegation/generics/synth-params-ice-143498.stderr +++ b/tests/ui/delegation/generics/synth-params-ice-143498.stderr @@ -1,11 +1,11 @@ error[E0425]: cannot find type `X` in this scope - --> $DIR/synth-params-ice-143498.rs:19:6 + --> $DIR/synth-params-ice-143498.rs:18:6 | LL | impl X { | ^ not found in this scope error[E0575]: cannot find method or associated constant `Item` in trait `Iterator` - --> $DIR/synth-params-ice-143498.rs:21:43 + --> $DIR/synth-params-ice-143498.rs:20:43 | LL | reuse< std::fmt::Debug as Iterator >::*; | ^ not found in `Iterator` @@ -13,7 +13,7 @@ LL | reuse< std::fmt::Debug as Iterator >::*; = note: an associated type named `Iterator::Item` exists in another namespace error[E0782]: expected a type, found a trait - --> $DIR/synth-params-ice-143498.rs:21:12 + --> $DIR/synth-params-ice-143498.rs:20:12 | LL | reuse< std::fmt::Debug as Iterator >::*; | ^^^^^^^^^^^^^^^