1
Fork 0

Auto merge of #55014 - ljedrz:lazyboye_unwraps, r=matthewjasper

Prefer unwrap_or_else to unwrap_or in case of function calls/allocations

The contents of `unwrap_or` are evaluated eagerly, so it's not a good pick in case of function calls and allocations. This PR also changes a few `unwrap_or`s with `unwrap_or_default`.

An added bonus is that in some cases this change also reveals if the object it's called on is an `Option` or a `Result` (based on whether the closure takes an argument).
This commit is contained in:
bors 2018-10-20 11:22:48 +00:00
commit ca2639e82e
35 changed files with 57 additions and 54 deletions

View file

@ -97,8 +97,8 @@ fn build_libbacktrace(target: &str) -> Result<(), ()> {
.file("../libbacktrace/sort.c")
.file("../libbacktrace/state.c");
let any_debug = env::var("RUSTC_DEBUGINFO").unwrap_or(String::new()) == "true" ||
env::var("RUSTC_DEBUGINFO_LINES").unwrap_or(String::new()) == "true";
let any_debug = env::var("RUSTC_DEBUGINFO").unwrap_or_default() == "true" ||
env::var("RUSTC_DEBUGINFO_LINES").unwrap_or_default() == "true";
build.debug(any_debug);
if target.contains("darwin") {

View file

@ -85,7 +85,7 @@ mod imp {
}
pub fn args() -> Args {
let bytes = clone().unwrap_or(Vec::new());
let bytes = clone().unwrap_or_default();
let v: Vec<OsString> = bytes.into_iter().map(|v| {
OsStringExt::from_vec(v)
}).collect();

View file

@ -331,7 +331,7 @@ impl Command {
cvt(libc::posix_spawnattr_setflags(&mut attrs.0, flags as _))?;
let envp = envp.map(|c| c.as_ptr())
.unwrap_or(*sys::os::environ() as *const _);
.unwrap_or_else(|| *sys::os::environ() as *const _);
let ret = libc::posix_spawnp(
&mut p.pid,
self.get_argv()[0],