Use drop instead of the toilet closure |_| ()
This commit is contained in:
parent
5095101528
commit
dd8f072233
25 changed files with 35 additions and 35 deletions
|
@ -142,7 +142,7 @@ fn shared_from_iter_trustedlen_normal() {
|
||||||
|
|
||||||
// Try a ZST to make sure it is handled well.
|
// 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 vec = iter.clone().collect::<Vec<_>>();
|
||||||
let rc = iter.collect::<Rc<[_]>>();
|
let rc = iter.collect::<Rc<[_]>>();
|
||||||
assert_eq!(&*vec, &*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.
|
// 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 vec = iter.clone().collect::<Vec<_>>();
|
||||||
let rc = iter.collect::<Rc<[_]>>();
|
let rc = iter.collect::<Rc<[_]>>();
|
||||||
assert_eq!(&*vec, &*rc);
|
assert_eq!(&*vec, &*rc);
|
||||||
|
|
|
@ -866,7 +866,7 @@ impl<'a> Parser<'a> {
|
||||||
let appl = Applicability::MachineApplicable;
|
let appl = Applicability::MachineApplicable;
|
||||||
if self.token.span == DUMMY_SP || self.prev_span == DUMMY_SP {
|
if self.token.span == DUMMY_SP || self.prev_span == DUMMY_SP {
|
||||||
// Likely inside a macro, can't provide meaninful suggestions.
|
// 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)) {
|
} 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.
|
// The current token is in the same line as the prior token, not recoverable.
|
||||||
} else if self.look_ahead(1, |t| {
|
} else if self.look_ahead(1, |t| {
|
||||||
|
@ -905,7 +905,7 @@ impl<'a> Parser<'a> {
|
||||||
.emit();
|
.emit();
|
||||||
return Ok(());
|
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(
|
pub(super) fn parse_semi_or_incorrect_foreign_fn_body(
|
||||||
|
|
|
@ -232,7 +232,7 @@ impl<R: Seek> BufReader<R> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
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 {
|
unsafe {
|
||||||
match ftruncate64.get() {
|
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 => {
|
None => {
|
||||||
if size > i32::max_value() as u64 {
|
if size > i32::max_value() as u64 {
|
||||||
Err(io::Error::new(io::ErrorKind::InvalidInput, "cannot truncate >2GB"))
|
Err(io::Error::new(io::ErrorKind::InvalidInput, "cannot truncate >2GB"))
|
||||||
} else {
|
} 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")]
|
#[cfg(target_pointer_width = "64")]
|
||||||
pub fn ftruncate64(fd: c_int, size: u64) -> io::Result<()> {
|
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")]
|
#[cfg(target_pointer_width = "32")]
|
||||||
|
|
|
@ -814,7 +814,7 @@ impl File {
|
||||||
use crate::convert::TryInto;
|
use crate::convert::TryInto;
|
||||||
let size: off64_t =
|
let size: off64_t =
|
||||||
size.try_into().map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e))?;
|
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 @@ impl Socket {
|
||||||
|
|
||||||
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
|
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
|
||||||
let mut nonblocking = nonblocking as libc::c_int;
|
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>> {
|
pub fn take_error(&self) -> io::Result<Option<io::Error>> {
|
||||||
|
|
|
@ -529,7 +529,7 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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 {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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)? {
|
if fds[0].revents != 0 && read(&p1, v1)? {
|
||||||
p2.set_nonblocking(false)?;
|
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)? {
|
if fds[1].revents != 0 && read(&p2, v2)? {
|
||||||
p1.set_nonblocking(false)?;
|
p1.set_nonblocking(false)?;
|
||||||
return p1.read_to_end(v1).map(|_| ());
|
return p1.read_to_end(v1).map(drop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -425,7 +425,7 @@ impl Process {
|
||||||
"invalid argument: can't kill an exited process",
|
"invalid argument: can't kill an exited process",
|
||||||
))
|
))
|
||||||
} else {
|
} else {
|
||||||
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(|_| ())
|
cvt(unsafe { libc::kill(self.pid, libc::SIGKILL) }).map(drop)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -340,7 +340,7 @@ impl File {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn truncate(&self, size: u64) -> io::Result<()> {
|
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> {
|
pub fn read(&self, buf: &mut [u8]) -> io::Result<usize> {
|
||||||
|
|
|
@ -261,7 +261,7 @@ impl Socket {
|
||||||
|
|
||||||
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
|
pub fn set_nonblocking(&self, nonblocking: bool) -> io::Result<()> {
|
||||||
let mut nonblocking = nonblocking as libc::c_int;
|
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>> {
|
pub fn take_error(&self) -> io::Result<Option<io::Error>> {
|
||||||
|
|
|
@ -279,7 +279,7 @@ pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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 {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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)? {
|
if fds[0].revents != 0 && read(&p1, v1)? {
|
||||||
p2.set_nonblocking_pipe(false)?;
|
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)? {
|
if fds[1].revents != 0 && read(&p2, v2)? {
|
||||||
p1.set_nonblocking_pipe(false)?;
|
p1.set_nonblocking_pipe(false)?;
|
||||||
return p1.read_to_end(v1).map(|_| ());
|
return p1.read_to_end(v1).map(drop);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -138,7 +138,7 @@ impl Process {
|
||||||
"invalid argument: can't kill an exited process",
|
"invalid argument: can't kill an exited process",
|
||||||
))
|
))
|
||||||
} else {
|
} 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 {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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 {
|
unsafe {
|
||||||
let _guard = env_lock();
|
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,
|
&mut ret,
|
||||||
ptr::null_mut(),
|
ptr::null_mut(),
|
||||||
))
|
))
|
||||||
.map(|_| ())
|
.map(drop)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,7 +156,7 @@ impl RawHandle {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn cancel_io(&self) -> io::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> {
|
pub fn write(&self, buf: &[u8]) -> io::Result<usize> {
|
||||||
|
|
|
@ -355,7 +355,7 @@ impl Socket {
|
||||||
#[cfg(not(target_vendor = "uwp"))]
|
#[cfg(not(target_vendor = "uwp"))]
|
||||||
fn set_no_inherit(&self) -> io::Result<()> {
|
fn set_no_inherit(&self) -> io::Result<()> {
|
||||||
sys::cvt(unsafe { c::SetHandleInformation(self.0 as c::HANDLE, c::HANDLE_FLAG_INHERIT, 0) })
|
sys::cvt(unsafe { c::SetHandleInformation(self.0 as c::HANDLE, c::HANDLE_FLAG_INHERIT, 0) })
|
||||||
.map(|_| ())
|
.map(drop)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(target_vendor = "uwp")]
|
#[cfg(target_vendor = "uwp")]
|
||||||
|
|
|
@ -247,7 +247,7 @@ pub fn chdir(p: &path::Path) -> io::Result<()> {
|
||||||
let mut p = p.encode_wide().collect::<Vec<_>>();
|
let mut p = p.encode_wide().collect::<Vec<_>>();
|
||||||
p.push(0);
|
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>> {
|
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 k = to_u16s(k)?;
|
||||||
let v = to_u16s(v)?;
|
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<()> {
|
pub fn unsetenv(n: &OsStr) -> io::Result<()> {
|
||||||
let v = to_u16s(n)?;
|
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 {
|
pub fn temp_dir() -> PathBuf {
|
||||||
|
|
|
@ -36,7 +36,7 @@ macro_rules! rtunwrap {
|
||||||
match $e {
|
match $e {
|
||||||
$ok(v) => v,
|
$ok(v) => v,
|
||||||
ref err => {
|
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)
|
rtabort!(concat!("unwrap failed: ", stringify!($e), " = {:?}"), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -659,7 +659,7 @@ impl UdpSocket {
|
||||||
|
|
||||||
pub fn connect(&self, addr: io::Result<&SocketAddr>) -> io::Result<()> {
|
pub fn connect(&self, addr: io::Result<&SocketAddr>) -> io::Result<()> {
|
||||||
let (addrp, len) = addr?.into_inner();
|
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 @@ impl B {
|
||||||
async fn can_error(some_string: &str) -> Result<(), String> {
|
async fn can_error(some_string: &str) -> Result<(), String> {
|
||||||
let a = A { inner: vec![some_string, "foo"] };
|
let a = A { inner: vec![some_string, "foo"] };
|
||||||
let mut b = B {};
|
let mut b = B {};
|
||||||
Ok(b.something_with_a(a).await.map(|_| ())?)
|
Ok(b.something_with_a(a).await.map(drop)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
#![deny(unused_mut)]
|
#![deny(unused_mut)]
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
vec![42].iter().map(|_| ()).count();
|
vec![42].iter().map(drop).count();
|
||||||
vec![(42, 22)].iter().map(|(_x, _y)| ()).count();
|
vec![(42, 22)].iter().map(|(_x, _y)| ()).count();
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ fn assert_invalid_input<T>(on: &str, result: io::Result<T>) {
|
||||||
"{} returned a strange {:?} on a path with NUL", on, e.kind()),
|
"{} returned a strange {:?} on a path with NUL", on, e.kind()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
inner(on, result.map(|_| ()))
|
inner(on, result.map(drop))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue