Skip to content

Commit d73f2f6

Browse files
committed
Use super let
1 parent 3f98c4d commit d73f2f6

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

library/std/src/io/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1636,6 +1636,7 @@ pub(crate) macro limit_slices($bufs:expr, $n:expr) {
16361636
'slices: {
16371637
let bufs: &[IoSlice<'_>] = $bufs;
16381638
let n: usize = $n;
1639+
super let empty = &[IoSlice::new(&[])];
16391640
// if bufs.len() > n || bufs.is_empty()
16401641
if core::intrinsics::unlikely(bufs.len().wrapping_sub(1) >= n) {
16411642
for (i, buf) in bufs.iter().enumerate() {
@@ -1644,10 +1645,9 @@ pub(crate) macro limit_slices($bufs:expr, $n:expr) {
16441645
break 'slices &bufs[i..i + len];
16451646
}
16461647
}
1647-
// All buffers are empty. Since POSIX requires at least one buffer
1648-
// for [writev], but possibly bufs.is_empty(), return an empty write.
1649-
// [writev]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/writev.html
1650-
return Ok(0);
1648+
// POSIX requires at least one buffer for writev.
1649+
// https://pubs.opengroup.org/onlinepubs/9799919799/functions/writev.html
1650+
break 'slices empty;
16511651
}
16521652
bufs
16531653
}
@@ -1663,6 +1663,7 @@ pub(crate) macro limit_slices_mut($bufs:expr, $n:expr) {
16631663
'slices: {
16641664
let bufs: &mut [IoSliceMut<'_>] = $bufs;
16651665
let n: usize = $n;
1666+
super let empty = &mut [IoSliceMut::new(&mut [])];
16661667
// if bufs.len() > n || bufs.is_empty()
16671668
if core::intrinsics::unlikely(bufs.len().wrapping_sub(1) >= n) {
16681669
for (i, buf) in bufs.iter().enumerate() {
@@ -1671,10 +1672,9 @@ pub(crate) macro limit_slices_mut($bufs:expr, $n:expr) {
16711672
break 'slices &mut bufs[i..i + len];
16721673
}
16731674
}
1674-
// All buffers are empty. Since POSIX requires at least one buffer
1675-
// for [readv], but possibly bufs.is_empty(), return an empty read.
1676-
// [readv]: https://pubs.opengroup.org/onlinepubs/9799919799/functions/readv.html
1677-
return Ok(0);
1675+
// POSIX requires at least one buffer for readv.
1676+
// https://pubs.opengroup.org/onlinepubs/9799919799/functions/readv.html
1677+
break 'slices empty;
16781678
}
16791679
bufs
16801680
}

library/std/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,7 @@
315315
#![feature(staged_api)]
316316
#![feature(stmt_expr_attributes)]
317317
#![feature(strict_provenance_lints)]
318+
#![feature(super_let)]
318319
#![feature(thread_local)]
319320
#![feature(try_blocks)]
320321
#![feature(try_trait_v2)]

0 commit comments

Comments
 (0)