Skip to content

Commit 94ec6e7

Browse files
committed
Auto merge of rust-lang#127674 - jhpratt:rollup-0dxy3k7, r=jhpratt
Rollup of 3 pull requests Successful merges: - rust-lang#127654 (Fix incorrect NDEBUG handling in LLVM bindings) - rust-lang#127661 (Stabilize io_slice_advance) - rust-lang#127668 (Improved slice documentation) r? `@ghost` `@rustbot` modify labels: rollup
2 parents c79e003 + a7c1f60 commit 94ec6e7

File tree

2 files changed

+54
-22
lines changed

2 files changed

+54
-22
lines changed

core/src/slice/iter.rs

+50-10
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,9 @@ pub(super) trait SplitIter: DoubleEndedIterator {
388388
/// ```
389389
/// let slice = [10, 40, 33, 20];
390390
/// let mut iter = slice.split(|num| num % 3 == 0);
391+
/// assert_eq!(iter.next(), Some(&[10, 40][..]));
392+
/// assert_eq!(iter.next(), Some(&[20][..]));
393+
/// assert_eq!(iter.next(), None);
391394
/// ```
392395
///
393396
/// [`split`]: slice::split
@@ -541,6 +544,9 @@ impl<T, P> FusedIterator for Split<'_, T, P> where P: FnMut(&T) -> bool {}
541544
/// ```
542545
/// let slice = [10, 40, 33, 20];
543546
/// let mut iter = slice.split_inclusive(|num| num % 3 == 0);
547+
/// assert_eq!(iter.next(), Some(&[10, 40, 33][..]));
548+
/// assert_eq!(iter.next(), Some(&[20][..]));
549+
/// assert_eq!(iter.next(), None);
544550
/// ```
545551
///
546552
/// [`split_inclusive`]: slice::split_inclusive
@@ -914,7 +920,10 @@ impl<T, P> FusedIterator for SplitInclusiveMut<'_, T, P> where P: FnMut(&T) -> b
914920
///
915921
/// ```
916922
/// let slice = [11, 22, 33, 0, 44, 55];
917-
/// let iter = slice.rsplit(|num| *num == 0);
923+
/// let mut iter = slice.rsplit(|num| *num == 0);
924+
/// assert_eq!(iter.next(), Some(&[44, 55][..]));
925+
/// assert_eq!(iter.next(), Some(&[11, 22, 33][..]));
926+
/// assert_eq!(iter.next(), None);
918927
/// ```
919928
///
920929
/// [`rsplit`]: slice::rsplit
@@ -1134,7 +1143,10 @@ impl<T, I: SplitIter<Item = T>> Iterator for GenericSplitN<I> {
11341143
///
11351144
/// ```
11361145
/// let slice = [10, 40, 30, 20, 60, 50];
1137-
/// let iter = slice.splitn(2, |num| *num % 3 == 0);
1146+
/// let mut iter = slice.splitn(2, |num| *num % 3 == 0);
1147+
/// assert_eq!(iter.next(), Some(&[10, 40][..]));
1148+
/// assert_eq!(iter.next(), Some(&[20, 60, 50][..]));
1149+
/// assert_eq!(iter.next(), None);
11381150
/// ```
11391151
///
11401152
/// [`splitn`]: slice::splitn
@@ -1175,7 +1187,10 @@ where
11751187
///
11761188
/// ```
11771189
/// let slice = [10, 40, 30, 20, 60, 50];
1178-
/// let iter = slice.rsplitn(2, |num| *num % 3 == 0);
1190+
/// let mut iter = slice.rsplitn(2, |num| *num % 3 == 0);
1191+
/// assert_eq!(iter.next(), Some(&[50][..]));
1192+
/// assert_eq!(iter.next(), Some(&[10, 40, 30, 20][..]));
1193+
/// assert_eq!(iter.next(), None);
11791194
/// ```
11801195
///
11811196
/// [`rsplitn`]: slice::rsplitn
@@ -1300,7 +1315,11 @@ forward_iterator! { RSplitNMut: T, &'a mut [T] }
13001315
///
13011316
/// ```
13021317
/// let slice = ['r', 'u', 's', 't'];
1303-
/// let iter = slice.windows(2);
1318+
/// let mut iter = slice.windows(2);
1319+
/// assert_eq!(iter.next(), Some(&['r', 'u'][..]));
1320+
/// assert_eq!(iter.next(), Some(&['u', 's'][..]));
1321+
/// assert_eq!(iter.next(), Some(&['s', 't'][..]));
1322+
/// assert_eq!(iter.next(), None);
13041323
/// ```
13051324
///
13061325
/// [`windows`]: slice::windows
@@ -1448,7 +1467,11 @@ unsafe impl<'a, T> TrustedRandomAccessNoCoerce for Windows<'a, T> {
14481467
///
14491468
/// ```
14501469
/// let slice = ['l', 'o', 'r', 'e', 'm'];
1451-
/// let iter = slice.chunks(2);
1470+
/// let mut iter = slice.chunks(2);
1471+
/// assert_eq!(iter.next(), Some(&['l', 'o'][..]));
1472+
/// assert_eq!(iter.next(), Some(&['r', 'e'][..]));
1473+
/// assert_eq!(iter.next(), Some(&['m'][..]));
1474+
/// assert_eq!(iter.next(), None);
14521475
/// ```
14531476
///
14541477
/// [`chunks`]: slice::chunks
@@ -1819,7 +1842,10 @@ unsafe impl<T> Sync for ChunksMut<'_, T> where T: Sync {}
18191842
///
18201843
/// ```
18211844
/// let slice = ['l', 'o', 'r', 'e', 'm'];
1822-
/// let iter = slice.chunks_exact(2);
1845+
/// let mut iter = slice.chunks_exact(2);
1846+
/// assert_eq!(iter.next(), Some(&['l', 'o'][..]));
1847+
/// assert_eq!(iter.next(), Some(&['r', 'e'][..]));
1848+
/// assert_eq!(iter.next(), None);
18231849
/// ```
18241850
///
18251851
/// [`chunks_exact`]: slice::chunks_exact
@@ -2163,7 +2189,11 @@ unsafe impl<T> Sync for ChunksExactMut<'_, T> where T: Sync {}
21632189
/// #![feature(array_windows)]
21642190
///
21652191
/// let slice = [0, 1, 2, 3];
2166-
/// let iter = slice.array_windows::<2>();
2192+
/// let mut iter = slice.array_windows::<2>();
2193+
/// assert_eq!(iter.next(), Some(&[0, 1]));
2194+
/// assert_eq!(iter.next(), Some(&[1, 2]));
2195+
/// assert_eq!(iter.next(), Some(&[2, 3]));
2196+
/// assert_eq!(iter.next(), None);
21672197
/// ```
21682198
///
21692199
/// [`array_windows`]: slice::array_windows
@@ -2285,7 +2315,10 @@ impl<T, const N: usize> ExactSizeIterator for ArrayWindows<'_, T, N> {
22852315
/// #![feature(array_chunks)]
22862316
///
22872317
/// let slice = ['l', 'o', 'r', 'e', 'm'];
2288-
/// let iter = slice.array_chunks::<2>();
2318+
/// let mut iter = slice.array_chunks::<2>();
2319+
/// assert_eq!(iter.next(), Some(&['l', 'o']));
2320+
/// assert_eq!(iter.next(), Some(&['r', 'e']));
2321+
/// assert_eq!(iter.next(), None);
22892322
/// ```
22902323
///
22912324
/// [`array_chunks`]: slice::array_chunks
@@ -2526,7 +2559,11 @@ unsafe impl<'a, T, const N: usize> TrustedRandomAccessNoCoerce for ArrayChunksMu
25262559
///
25272560
/// ```
25282561
/// let slice = ['l', 'o', 'r', 'e', 'm'];
2529-
/// let iter = slice.rchunks(2);
2562+
/// let mut iter = slice.rchunks(2);
2563+
/// assert_eq!(iter.next(), Some(&['e', 'm'][..]));
2564+
/// assert_eq!(iter.next(), Some(&['o', 'r'][..]));
2565+
/// assert_eq!(iter.next(), Some(&['l'][..]));
2566+
/// assert_eq!(iter.next(), None);
25302567
/// ```
25312568
///
25322569
/// [`rchunks`]: slice::rchunks
@@ -2892,7 +2929,10 @@ unsafe impl<T> Sync for RChunksMut<'_, T> where T: Sync {}
28922929
///
28932930
/// ```
28942931
/// let slice = ['l', 'o', 'r', 'e', 'm'];
2895-
/// let iter = slice.rchunks_exact(2);
2932+
/// let mut iter = slice.rchunks_exact(2);
2933+
/// assert_eq!(iter.next(), Some(&['e', 'm'][..]));
2934+
/// assert_eq!(iter.next(), Some(&['o', 'r'][..]));
2935+
/// assert_eq!(iter.next(), None);
28962936
/// ```
28972937
///
28982938
/// [`rchunks_exact`]: slice::rchunks_exact

std/src/io/mod.rs

+4-12
Original file line numberDiff line numberDiff line change
@@ -1256,8 +1256,6 @@ impl<'a> IoSliceMut<'a> {
12561256
/// # Examples
12571257
///
12581258
/// ```
1259-
/// #![feature(io_slice_advance)]
1260-
///
12611259
/// use std::io::IoSliceMut;
12621260
/// use std::ops::Deref;
12631261
///
@@ -1268,7 +1266,7 @@ impl<'a> IoSliceMut<'a> {
12681266
/// buf.advance(3);
12691267
/// assert_eq!(buf.deref(), [1; 5].as_ref());
12701268
/// ```
1271-
#[unstable(feature = "io_slice_advance", issue = "62726")]
1269+
#[stable(feature = "io_slice_advance", since = "CURRENT_RUSTC_VERSION")]
12721270
#[inline]
12731271
pub fn advance(&mut self, n: usize) {
12741272
self.0.advance(n)
@@ -1290,8 +1288,6 @@ impl<'a> IoSliceMut<'a> {
12901288
/// # Examples
12911289
///
12921290
/// ```
1293-
/// #![feature(io_slice_advance)]
1294-
///
12951291
/// use std::io::IoSliceMut;
12961292
/// use std::ops::Deref;
12971293
///
@@ -1309,7 +1305,7 @@ impl<'a> IoSliceMut<'a> {
13091305
/// assert_eq!(bufs[0].deref(), [2; 14].as_ref());
13101306
/// assert_eq!(bufs[1].deref(), [3; 8].as_ref());
13111307
/// ```
1312-
#[unstable(feature = "io_slice_advance", issue = "62726")]
1308+
#[stable(feature = "io_slice_advance", since = "CURRENT_RUSTC_VERSION")]
13131309
#[inline]
13141310
pub fn advance_slices(bufs: &mut &mut [IoSliceMut<'a>], n: usize) {
13151311
// Number of buffers to remove.
@@ -1400,8 +1396,6 @@ impl<'a> IoSlice<'a> {
14001396
/// # Examples
14011397
///
14021398
/// ```
1403-
/// #![feature(io_slice_advance)]
1404-
///
14051399
/// use std::io::IoSlice;
14061400
/// use std::ops::Deref;
14071401
///
@@ -1412,7 +1406,7 @@ impl<'a> IoSlice<'a> {
14121406
/// buf.advance(3);
14131407
/// assert_eq!(buf.deref(), [1; 5].as_ref());
14141408
/// ```
1415-
#[unstable(feature = "io_slice_advance", issue = "62726")]
1409+
#[stable(feature = "io_slice_advance", since = "CURRENT_RUSTC_VERSION")]
14161410
#[inline]
14171411
pub fn advance(&mut self, n: usize) {
14181412
self.0.advance(n)
@@ -1434,8 +1428,6 @@ impl<'a> IoSlice<'a> {
14341428
/// # Examples
14351429
///
14361430
/// ```
1437-
/// #![feature(io_slice_advance)]
1438-
///
14391431
/// use std::io::IoSlice;
14401432
/// use std::ops::Deref;
14411433
///
@@ -1452,7 +1444,7 @@ impl<'a> IoSlice<'a> {
14521444
/// IoSlice::advance_slices(&mut bufs, 10);
14531445
/// assert_eq!(bufs[0].deref(), [2; 14].as_ref());
14541446
/// assert_eq!(bufs[1].deref(), [3; 8].as_ref());
1455-
#[unstable(feature = "io_slice_advance", issue = "62726")]
1447+
#[stable(feature = "io_slice_advance", since = "CURRENT_RUSTC_VERSION")]
14561448
#[inline]
14571449
pub fn advance_slices(bufs: &mut &mut [IoSlice<'a>], n: usize) {
14581450
// Number of buffers to remove.

0 commit comments

Comments
 (0)