提交 dd8f0722 编写于 作者: L Lzu Tao

Use drop instead of the toilet closure `|_| ()`

上级 50951015
......@@ -142,7 +142,7 @@ fn shared_from_iter_trustedlen_normal() {
// Try a ZST to make sure it is handled well.
{
let iter = (0..SHARED_ITER_MAX).map(|_| ());
let iter = (0..SHARED_ITER_MAX).map(drop);
let vec = iter.clone().collect::<Vec<_>>();
let rc = iter.collect::<Rc<[_]>>();
assert_eq!(&*vec, &*rc);
......
......@@ -138,7 +138,7 @@ fn shared_from_iter_trustedlen_normal() {
// Try a ZST to make sure it is handled well.
{
let iter = (0..SHARED_ITER_MAX).map(|_| ());
let iter = (0..SHARED_ITER_MAX).map(drop);
let vec = iter.clone().collect::<Vec<_>>();
let rc = iter.collect::<Rc<[_]>>();
assert_eq!(&*vec, &*rc);
......
......@@ -866,7 +866,7 @@ pub(super) fn expect_semi(&mut self) -> PResult<'a, ()> {
let appl = Applicability::MachineApplicable;
if self.token.span == DUMMY_SP || self.prev_span == DUMMY_SP {
// Likely inside a macro, can't provide meaninful suggestions.
return self.expect(&token::Semi).map(|_| ());
return self.expect(&token::Semi).map(drop);
} else if !sm.is_multiline(self.prev_span.until(self.token.span)) {
// The current token is in the same line as the prior token, not recoverable.
} else if self.look_ahead(1, |t| {
......@@ -905,7 +905,7 @@ pub(super) fn expect_semi(&mut self) -> PResult<'a, ()> {
.emit();
return Ok(());
}
self.expect(&token::Semi).map(|_| ()) // Error unconditionally
self.expect(&token::Semi).map(drop) // Error unconditionally
}
pub(super) fn parse_semi_or_incorrect_foreign_fn_body(
......
......@@ -232,7 +232,7 @@ pub fn seek_relative(&mut self, offset: i64) -> io::Result<()> {
}
}
}
self.seek(SeekFrom::Current(offset)).map(|_| ())
self.seek(SeekFrom::Current(offset)).map(drop)
}
}
......
......@@ -93,12 +93,12 @@ pub fn ftruncate64(fd: c_int, size: u64) -> io::Result<()> {
unsafe {
match ftruncate64.get() {
Some(f) => cvt_r(|| f(fd, size as i64)).map(|_| ()),
Some(f) => cvt_r(|| f(fd, size as i64)).map(drop),
None => {
if size > i32::max_value() as u64 {
Err(io::Error::new(io::ErrorKind::InvalidInput, "cannot truncate >2GB"))
} else {
cvt_r(|| ftruncate(fd, size as i32)).map(|_| ())
cvt_r(|| ftruncate(fd, size as i32)).map(drop)
}
}
}
......@@ -107,7 +107,7 @@ pub fn ftruncate64(fd: c_int, size: u64) -> io::Result<()> {
#[cfg(target_pointer_width = "64")]
pub fn ftruncate64(fd: c_int, size: u64) -> io::Result<()> {
unsafe { cvt_r(|| ftruncate(fd, size as i64)).map(|_| ()) }
unsafe { cvt_r(|| ftruncate(fd, size as i64)).map(drop) }
}
#[cfg(target_pointer_width = "32")]
......
......@@ -814,7 +814,7 @@ pub fn truncate(&self, size: u64) -> io::Result<()> {
use crate::convert::TryInto;
let size: off64_t =
size.try_into().map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e))?;
cvt_r(|| unsafe { ftruncate64(self.0.raw(), size) }).map(|_| ())
cvt_r(|| unsafe { ftruncate64(self.0.raw(), size) }).map(drop)
}
}
......
......@@ -324,7 +324,7 @@ pub fn nodelay(&self) -> io::Result<bool> {
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
let mut nonblocking = nonblocking as libc::c_int;
cvt(unsafe { libc::ioctl(*self.as_inner(), libc::FIONBIO, &mut nonblocking) }).map(|_| ())
cvt(unsafe { libc::ioctl(*self.as_inner(), libc::FIONBIO, &mut nonblocking) }).map(drop)
}
pub fn take_error(&self) -> io::Result<Option<io::Error>> {
......
......@@ -529,7 +529,7 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(|_| ())
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(drop)
}
}
......@@ -538,7 +538,7 @@ pub fn unsetenv(n: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::unsetenv(nbuf.as_ptr())).map(|_| ())
cvt(libc::unsetenv(nbuf.as_ptr())).map(drop)
}
}
......
......@@ -99,11 +99,11 @@ pub fn read2(p1: AnonPipe, v1: &mut Vec<u8>, p2: AnonPipe, v2: &mut Vec<u8>) ->
if fds[0].revents != 0 && read(&p1, v1)? {
p2.set_nonblocking(false)?;
return p2.read_to_end(v2).map(|_| ());
return p2.read_to_end(v2).map(drop);
}
if fds[1].revents != 0 && read(&p2, v2)? {
p1.set_nonblocking(false)?;
return p1.read_to_end(v1).map(|_| ());
return p1.read_to_end(v1).map(drop);
}
}
......
......@@ -425,7 +425,7 @@ pub fn kill(&mut self) -> io::Result<()> {
"invalid argument: can't kill an exited process",
))
} else {
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(|_| ())
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(drop)
}
}
......
......@@ -340,7 +340,7 @@ unsafe fn os_datasync(fd: c_int) -> c_int {
}
pub fn truncate(&self, size: u64) -> io::Result<()> {
return cvt_r(|| unsafe { ftruncate(self.0.raw(), size as off_t) }).map(|_| ());
return cvt_r(|| unsafe { ftruncate(self.0.raw(), size as off_t) }).map(drop);
}
pub fn read(&self, buf: &mut [u8]) -> io::Result<usize> {
......
......@@ -261,7 +261,7 @@ pub fn nodelay(&self) -> io::Result<bool> {
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
let mut nonblocking = nonblocking as libc::c_int;
cvt(unsafe { libc::ioctl(*self.as_inner(), libc::FIONBIO, &mut nonblocking) }).map(|_| ())
cvt(unsafe { libc::ioctl(*self.as_inner(), libc::FIONBIO, &mut nonblocking) }).map(drop)
}
pub fn take_error(&self) -> io::Result<Option<io::Error>> {
......
......@@ -279,7 +279,7 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(|_| ())
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(drop)
}
}
......@@ -288,7 +288,7 @@ pub fn unsetenv(n: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::unsetenv(nbuf.as_ptr())).map(|_| ())
cvt(libc::unsetenv(nbuf.as_ptr())).map(drop)
}
}
......
......@@ -66,11 +66,11 @@ pub fn read2(p1: AnonPipe, v1: &mut Vec<u8>, p2: AnonPipe, v2: &mut Vec<u8>) ->
if fds[0].revents != 0 && read(&p1, v1)? {
p2.set_nonblocking_pipe(false)?;
return p2.read_to_end(v2).map(|_| ());
return p2.read_to_end(v2).map(drop);
}
if fds[1].revents != 0 && read(&p2, v2)? {
p1.set_nonblocking_pipe(false)?;
return p1.read_to_end(v1).map(|_| ());
return p1.read_to_end(v1).map(drop);
}
}
......
......@@ -138,7 +138,7 @@ pub fn kill(&mut self) -> io::Result<()> {
"invalid argument: can't kill an exited process",
))
} else {
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(|_| ())
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(drop)
}
}
......
......@@ -151,7 +151,7 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(|_| ())
cvt(libc::setenv(k.as_ptr(), v.as_ptr(), 1)).map(drop)
}
}
......@@ -160,7 +160,7 @@ pub fn unsetenv(n: &OsStr) -> io::Result<()> {
unsafe {
let _guard = env_lock();
cvt(libc::unsetenv(nbuf.as_ptr())).map(|_| ())
cvt(libc::unsetenv(nbuf.as_ptr())).map(drop)
}
}
......
......@@ -923,6 +923,6 @@ fn symlink_junction_inner(target: &Path, junction: &Path) -> io::Result<()> {
&mut ret,
ptr::null_mut(),
))
.map(|_| ())
.map(drop)
}
}
......@@ -156,7 +156,7 @@ pub fn overlapped_result(
}
pub fn cancel_io(&self) -> io::Result<()> {
unsafe { cvt(c::CancelIo(self.raw())).map(|_| ()) }
unsafe { cvt(c::CancelIo(self.raw())).map(drop) }
}
pub fn write(&self, buf: &[u8]) -> io::Result<usize> {
......
......@@ -355,7 +355,7 @@ pub fn timeout(&self, kind: c_int) -> io::Result<Option<Duration>> {
#[cfg(not(target_vendor = "uwp"))]
fn set_no_inherit(&self) -> io::Result<()> {
sys::cvt(unsafe { c::SetHandleInformation(self.0 as c::HANDLE, c::HANDLE_FLAG_INHERIT, 0) })
.map(|_| ())
.map(drop)
}
#[cfg(target_vendor = "uwp")]
......
......@@ -247,7 +247,7 @@ pub fn chdir(p: &path::Path) -> io::Result<()> {
let mut p = p.encode_wide().collect::<Vec<_>>();
p.push(0);
cvt(unsafe { c::SetCurrentDirectoryW(p.as_ptr()) }).map(|_| ())
cvt(unsafe { c::SetCurrentDirectoryW(p.as_ptr()) }).map(drop)
}
pub fn getenv(k: &OsStr) -> io::Result<Option<OsString>> {
......@@ -272,12 +272,12 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
let k = to_u16s(k)?;
let v = to_u16s(v)?;
cvt(unsafe { c::SetEnvironmentVariableW(k.as_ptr(), v.as_ptr()) }).map(|_| ())
cvt(unsafe { c::SetEnvironmentVariableW(k.as_ptr(), v.as_ptr()) }).map(drop)
}
pub fn unsetenv(n: &OsStr) -> io::Result<()> {
let v = to_u16s(n)?;
cvt(unsafe { c::SetEnvironmentVariableW(v.as_ptr(), ptr::null()) }).map(|_| ())
cvt(unsafe { c::SetEnvironmentVariableW(v.as_ptr(), ptr::null()) }).map(drop)
}
pub fn temp_dir() -> PathBuf {
......
......@@ -36,7 +36,7 @@
match $e {
$ok(v) => v,
ref err => {
let err = err.as_ref().map(|_| ()); // map Ok/Some which might not be Debug
let err = err.as_ref().map(drop); // map Ok/Some which might not be Debug
rtabort!(concat!("unwrap failed: ", stringify!($e), " = {:?}"), err)
}
}
......
......@@ -659,7 +659,7 @@ pub fn send(&self, buf: &[u8]) -> io::Result<usize> {
pub fn connect(&self, addr: io::Result<&SocketAddr>) -> io::Result<()> {
let (addrp, len) = addr?.into_inner();
cvt_r(|| unsafe { c::connect(*self.inner.as_inner(), addrp, len) }).map(|_| ())
cvt_r(|| unsafe { c::connect(*self.inner.as_inner(), addrp, len) }).map(drop)
}
}
......
......@@ -23,7 +23,7 @@ async fn something_with_a(&mut self, a: A<'_>) -> Result<(), String> {
async fn can_error(some_string: &str) -> Result<(), String> {
let a = A { inner: vec![some_string, "foo"] };
let mut b = B {};
Ok(b.something_with_a(a).await.map(|_| ())?)
Ok(b.something_with_a(a).await.map(drop)?)
}
fn main() {
......
......@@ -3,6 +3,6 @@
#![deny(unused_mut)]
fn main() {
vec![42].iter().map(|_| ()).count();
vec![42].iter().map(drop).count();
vec![(42, 22)].iter().map(|(_x, _y)| ()).count();
}
......@@ -17,7 +17,7 @@ fn inner(on: &str, result: io::Result<()>) {
"{} returned a strange {:?} on a path with NUL", on, e.kind()),
}
}
inner(on, result.map(|_| ()))
inner(on, result.map(drop))
}
fn main() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册