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:
commit
ca2639e82e
35 changed files with 57 additions and 54 deletions
|
@ -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") {
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue