[INFO] crate ninja-build 0.0.1 is already in cache [INFO] extracting crate ninja-build 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/ninja-build/0.0.1 [INFO] extracting crate ninja-build 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ninja-build/0.0.1 [INFO] validating manifest of ninja-build-0.0.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of ninja-build-0.0.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing ninja-build-0.0.1 [INFO] finished frobbing ninja-build-0.0.1 [INFO] frobbed toml for ninja-build-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/ninja-build/0.0.1/Cargo.toml [INFO] started frobbing ninja-build-0.0.1 [INFO] finished frobbing ninja-build-0.0.1 [INFO] frobbed toml for ninja-build-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/ninja-build/0.0.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting ninja-build-0.0.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/ninja-build/0.0.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 99f9834eda22988b1cfaf71830198f6dbb612258166e0a2a0f6906a9130b4eed [INFO] running `"docker" "start" "-a" "99f9834eda22988b1cfaf71830198f6dbb612258166e0a2a0f6906a9130b4eed"` [INFO] [stderr] Compiling libc-stdhandle v0.1.0 [INFO] [stderr] Compiling libc-spawn v0.0.1 [INFO] [stderr] Checking murmurhash64 v0.3.1 [INFO] [stderr] Checking ninja-build v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexer.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | filename: filename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexer.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/eval_env.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexer.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | filename: filename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `filename` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lexer.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/eval_env.rs:166:13 [INFO] [stderr] | [INFO] [stderr] 166 | parent: parent, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utils.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | return pathbuf_from_bytes_os(bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `pathbuf_from_bytes_os(bytes)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Cell` [INFO] [stderr] --> src/build.rs:16:17 [INFO] [stderr] | [INFO] [stderr] 16 | use std::cell::{Cell, RefCell}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | return self.command_edges; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.command_edges` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:546:9 [INFO] [stderr] | [INFO] [stderr] 546 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/build.rs:522:17 [INFO] [stderr] | [INFO] [stderr] 522 | / if !result.is_success() { [INFO] [stderr] 523 | | if failures_allowed > 0 { [INFO] [stderr] 524 | | failures_allowed -= 1; [INFO] [stderr] 525 | | } [INFO] [stderr] 526 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 522 | if !result.is_success() && failures_allowed > 0 { [INFO] [stderr] 523 | failures_allowed -= 1; [INFO] [stderr] 524 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:1652:9 [INFO] [stderr] | [INFO] [stderr] 1652 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:1659:9 [INFO] [stderr] | [INFO] [stderr] 1659 | / return self.subprocs [INFO] [stderr] 1660 | | .add(&command, edge.use_console(), edge_idx) [INFO] [stderr] 1661 | | .is_some(); [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 1659 | self.subprocs [INFO] [stderr] 1660 | .add(&command, edge.use_console(), edge_idx) [INFO] [stderr] 1661 | .is_some() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:403:9 [INFO] [stderr] | [INFO] [stderr] 403 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:502:9 [INFO] [stderr] | [INFO] [stderr] 502 | return self.recompute_dirty_inner(state, node_idx, &mut stack); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.recompute_dirty_inner(state, node_idx, &mut stack)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/graph.rs:589:36 [INFO] [stderr] | [INFO] [stderr] 589 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 590 | | if most_recent_input [INFO] [stderr] 591 | | .as_ref() [INFO] [stderr] 592 | | .map(|&prev_idx| { [INFO] [stderr] ... | [INFO] [stderr] 599 | | } [INFO] [stderr] 600 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 589 | } else if most_recent_input [INFO] [stderr] 590 | .as_ref() [INFO] [stderr] 591 | .map(|&prev_idx| { [INFO] [stderr] 592 | let prev_node = state.node_state.get_node(prev_idx); [INFO] [stderr] 593 | i_node.mtime() > prev_node.mtime() [INFO] [stderr] 594 | }) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:702:9 [INFO] [stderr] | [INFO] [stderr] 702 | return Err(err); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:720:9 [INFO] [stderr] | [INFO] [stderr] 720 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:838:9 [INFO] [stderr] | [INFO] [stderr] 838 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:995:9 [INFO] [stderr] | [INFO] [stderr] 995 | / return Cow::Owned( [INFO] [stderr] 996 | | self.edge [INFO] [stderr] 997 | | .env [INFO] [stderr] 998 | | .borrow() [INFO] [stderr] 999 | | .lookup_with_fallback(var, eval, self) [INFO] [stderr] 1000 | | .into_owned(), [INFO] [stderr] 1001 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 995 | Cow::Owned( [INFO] [stderr] 996 | self.edge [INFO] [stderr] 997 | .env [INFO] [stderr] 998 | .borrow() [INFO] [stderr] 999 | .lookup_with_fallback(var, eval, self) [INFO] [stderr] 1000 | .into_owned(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `Edge` [INFO] [stderr] --> src/build_log.rs:22:20 [INFO] [stderr] | [INFO] [stderr] 22 | use super::graph::{Edge, EdgeIndex}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/version.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | pub const NINJA_VERSION: &'static str = "1.8.2-rs-git"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unused import: `OsString` [INFO] [stderr] --> src/lexer.rs:17:16 [INFO] [stderr] | [INFO] [stderr] 17 | use std::ffi::{OsString, OsStr}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return token; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | return Ok(v); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:297:9 [INFO] [stderr] | [INFO] [stderr] 297 | return err; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `err` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | return &self.rules; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.rules` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | return b"".as_ref().into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b"".as_ref().into()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:238:9 [INFO] [stderr] | [INFO] [stderr] 238 | return Cow::Borrowed(b""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Cow::Borrowed(b"")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `PathBuf` [INFO] [stderr] --> src/manifest_parser.rs:19:23 [INFO] [stderr] | [INFO] [stderr] 19 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OsString` [INFO] [stderr] --> src/manifest_parser.rs:20:16 [INFO] [stderr] | [INFO] [stderr] 20 | use std::ffi::{OsString, OsStr}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/manifest_parser.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return self.parse(filename.as_os_str(), &contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.parse(filename.as_os_str(), &contents)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/manifest_parser.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/metrics.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | return tv.tv_sec as u64 * 1000 * 1000 + tv.tv_usec as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `tv.tv_sec as u64 * 1000 * 1000 + tv.tv_usec as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/state.rs:18:33 [INFO] [stderr] | [INFO] [stderr] 18 | use std::collections::{HashMap, HashSet, BTreeSet, BinaryHeap}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ordering`, `PartialOrd` [INFO] [stderr] --> src/state.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | use std::cmp::{PartialOrd, Ordering}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/state.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/state.rs:361:9 [INFO] [stderr] | [INFO] [stderr] 361 | return Ok(root_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(root_nodes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::Cell` [INFO] [stderr] --> src/subprocess.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use std::cell::Cell; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:570:9 [INFO] [stderr] | [INFO] [stderr] 570 | return ExitStatus::ExitFailure; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ExitStatus::ExitFailure` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:692:5 [INFO] [stderr] | [INFO] [stderr] 692 | return INTERRUPTED.with(|x| x.get() != 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `INTERRUPTED.with(|x| x.get() != 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:817:13 [INFO] [stderr] | [INFO] [stderr] 817 | return self.running.get_mut(&key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.running.get_mut(&key)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:820:13 [INFO] [stderr] | [INFO] [stderr] 820 | return self.finished.back_mut(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.finished.back_mut()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:964:17 [INFO] [stderr] | [INFO] [stderr] 964 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:966:17 [INFO] [stderr] | [INFO] [stderr] 966 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/subprocess.rs:907:13 [INFO] [stderr] | [INFO] [stderr] 907 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/line_printer.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/lib.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/utils.rs:159:5 [INFO] [stderr] | [INFO] [stderr] 159 | return pathbuf_from_bytes_os(bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `pathbuf_from_bytes_os(bytes)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/test.rs:56:7 [INFO] [stderr] | [INFO] [stderr] 56 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/test.rs:71:7 [INFO] [stderr] | [INFO] [stderr] 71 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/test.rs:78:50 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn assert_parse(&mut self, input: &[u8]) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/test.rs:82:67 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn assert_parse_error(&mut self, input: &[u8], err: &str) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/test.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | return self.now; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.now` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Cell` [INFO] [stderr] --> src/build.rs:16:17 [INFO] [stderr] | [INFO] [stderr] 16 | use std::cell::{Cell, RefCell}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | return self.command_edges; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.command_edges` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:546:9 [INFO] [stderr] | [INFO] [stderr] 546 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/build.rs:522:17 [INFO] [stderr] | [INFO] [stderr] 522 | / if !result.is_success() { [INFO] [stderr] 523 | | if failures_allowed > 0 { [INFO] [stderr] 524 | | failures_allowed -= 1; [INFO] [stderr] 525 | | } [INFO] [stderr] 526 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 522 | if !result.is_success() && failures_allowed > 0 { [INFO] [stderr] 523 | failures_allowed -= 1; [INFO] [stderr] 524 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:1652:9 [INFO] [stderr] | [INFO] [stderr] 1652 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:1659:9 [INFO] [stderr] | [INFO] [stderr] 1659 | / return self.subprocs [INFO] [stderr] 1660 | | .add(&command, edge.use_console(), edge_idx) [INFO] [stderr] 1661 | | .is_some(); [INFO] [stderr] | |_______________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 1659 | self.subprocs [INFO] [stderr] 1660 | .add(&command, edge.use_console(), edge_idx) [INFO] [stderr] 1661 | .is_some() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:403:9 [INFO] [stderr] | [INFO] [stderr] 403 | return Ok(true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(true)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:502:9 [INFO] [stderr] | [INFO] [stderr] 502 | return self.recompute_dirty_inner(state, node_idx, &mut stack); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.recompute_dirty_inner(state, node_idx, &mut stack)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/graph.rs:589:36 [INFO] [stderr] | [INFO] [stderr] 589 | } else { [INFO] [stderr] | ____________________________________^ [INFO] [stderr] 590 | | if most_recent_input [INFO] [stderr] 591 | | .as_ref() [INFO] [stderr] 592 | | .map(|&prev_idx| { [INFO] [stderr] ... | [INFO] [stderr] 599 | | } [INFO] [stderr] 600 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 589 | } else if most_recent_input [INFO] [stderr] 590 | .as_ref() [INFO] [stderr] 591 | .map(|&prev_idx| { [INFO] [stderr] 592 | let prev_node = state.node_state.get_node(prev_idx); [INFO] [stderr] 593 | i_node.mtime() > prev_node.mtime() [INFO] [stderr] 594 | }) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:702:9 [INFO] [stderr] | [INFO] [stderr] 702 | return Err(err); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(err)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:720:9 [INFO] [stderr] | [INFO] [stderr] 720 | return Ok(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(false)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:838:9 [INFO] [stderr] | [INFO] [stderr] 838 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/graph.rs:995:9 [INFO] [stderr] | [INFO] [stderr] 995 | / return Cow::Owned( [INFO] [stderr] 996 | | self.edge [INFO] [stderr] 997 | | .env [INFO] [stderr] 998 | | .borrow() [INFO] [stderr] 999 | | .lookup_with_fallback(var, eval, self) [INFO] [stderr] 1000 | | .into_owned(), [INFO] [stderr] 1001 | | ); [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 995 | Cow::Owned( [INFO] [stderr] 996 | self.edge [INFO] [stderr] 997 | .env [INFO] [stderr] 998 | .borrow() [INFO] [stderr] 999 | .lookup_with_fallback(var, eval, self) [INFO] [stderr] 1000 | .into_owned(), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `Edge` [INFO] [stderr] --> src/build_log.rs:22:20 [INFO] [stderr] | [INFO] [stderr] 22 | use super::graph::{Edge, EdgeIndex}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/version.rs:16:27 [INFO] [stderr] | [INFO] [stderr] 16 | pub const NINJA_VERSION: &'static str = "1.8.2-rs-git"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:210:9 [INFO] [stderr] | [INFO] [stderr] 210 | return token; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `token` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:225:9 [INFO] [stderr] | [INFO] [stderr] 225 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:241:9 [INFO] [stderr] | [INFO] [stderr] 241 | return Ok(v); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lexer.rs:297:9 [INFO] [stderr] | [INFO] [stderr] 297 | return err; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `err` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 202 | return &self.rules; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `&self.rules` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:226:9 [INFO] [stderr] | [INFO] [stderr] 226 | return b"".as_ref().into(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `b"".as_ref().into()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/eval_env.rs:238:9 [INFO] [stderr] | [INFO] [stderr] 238 | return Cow::Borrowed(b""); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Cow::Borrowed(b"")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/manifest_parser.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | return self.parse(filename.as_os_str(), &contents); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.parse(filename.as_os_str(), &contents)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/manifest_parser.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::super::state::State` [INFO] [stderr] --> src/manifest_parser.rs:603:9 [INFO] [stderr] | [INFO] [stderr] 603 | use super::super::state::State; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::super::test::VirtualFileSystem` [INFO] [stderr] --> src/manifest_parser.rs:604:9 [INFO] [stderr] | [INFO] [stderr] 604 | use super::super::test::VirtualFileSystem; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/metrics.rs:140:5 [INFO] [stderr] | [INFO] [stderr] 140 | return tv.tv_sec as u64 * 1000 * 1000 + tv.tv_usec as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `tv.tv_sec as u64 * 1000 * 1000 + tv.tv_usec as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Ordering`, `PartialOrd` [INFO] [stderr] --> src/state.rs:19:16 [INFO] [stderr] | [INFO] [stderr] 19 | use std::cmp::{PartialOrd, Ordering}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/state.rs:322:9 [INFO] [stderr] | [INFO] [stderr] 322 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/state.rs:361:9 [INFO] [stderr] | [INFO] [stderr] 361 | return Ok(root_nodes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(root_nodes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::cell::Cell` [INFO] [stderr] --> src/subprocess.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use std::cell::Cell; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:570:9 [INFO] [stderr] | [INFO] [stderr] 570 | return ExitStatus::ExitFailure; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ExitStatus::ExitFailure` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:692:5 [INFO] [stderr] | [INFO] [stderr] 692 | return INTERRUPTED.with(|x| x.get() != 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `INTERRUPTED.with(|x| x.get() != 0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:817:13 [INFO] [stderr] | [INFO] [stderr] 817 | return self.running.get_mut(&key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.running.get_mut(&key)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:820:13 [INFO] [stderr] | [INFO] [stderr] 820 | return self.finished.back_mut(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.finished.back_mut()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:964:17 [INFO] [stderr] | [INFO] [stderr] 964 | return Err(()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/subprocess.rs:966:17 [INFO] [stderr] | [INFO] [stderr] 966 | return Ok(()); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/subprocess.rs:907:13 [INFO] [stderr] | [INFO] [stderr] 907 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/line_printer.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/utils.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | unreachable!() [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:891:13 [INFO] [stderr] | [INFO] [stderr] 891 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/build.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | unreachable!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:992:9 [INFO] [stderr] | [INFO] [stderr] 992 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/build.rs:1095:9 [INFO] [stderr] | [INFO] [stderr] 1095 | unimplemented!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:1108:9 [INFO] [stderr] | [INFO] [stderr] 1108 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/graph.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/utils.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | unreachable!() [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unreachable_code)] on by default [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/disk_interface.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:845:13 [INFO] [stderr] | [INFO] [stderr] 845 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:891:13 [INFO] [stderr] | [INFO] [stderr] 891 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/build.rs:894:13 [INFO] [stderr] | [INFO] [stderr] 894 | unreachable!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:992:9 [INFO] [stderr] | [INFO] [stderr] 992 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/subprocess.rs:835:9 [INFO] [stderr] | [INFO] [stderr] 835 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/line_printer.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | unimplemented!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/build.rs:1095:9 [INFO] [stderr] | [INFO] [stderr] 1095 | unimplemented!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build.rs:1108:9 [INFO] [stderr] | [INFO] [stderr] 1108 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/graph.rs:421:9 [INFO] [stderr] | [INFO] [stderr] 421 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:62:9 [INFO] [stderr] | [INFO] [stderr] 62 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/build_log.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 68 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/deps_log.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/disk_interface.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | unimplemented!() [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/subprocess.rs:835:9 [INFO] [stderr] | [INFO] [stderr] 835 | unimplemented!{} [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unreachable statement [INFO] [stderr] --> src/line_printer.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | unimplemented!(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/eval_env.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scan` [INFO] [stderr] --> src/build.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | scan: &DependencyScan, [INFO] [stderr] | ^^^^ help: consider using `_scan` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `State` [INFO] [stderr] --> src/build.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | State: &State, [INFO] [stderr] | ^^^^^ help: consider using `_State` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `node_idx` [INFO] [stderr] --> src/build.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | node_idx: NodeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_node_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/build.rs:744:27 [INFO] [stderr] | [INFO] [stderr] 744 | .map_err(|e| { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/build.rs:763:27 [INFO] [stderr] | [INFO] [stderr] 763 | .map_err(|e| format!("Error writing to deps log: {}", errno::errno()))?; [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/build.rs:824:9 [INFO] [stderr] | [INFO] [stderr] 824 | result: &mut CommandRunnerResult, [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `deps_prefix` [INFO] [stderr] --> src/build.rs:826:9 [INFO] [stderr] | [INFO] [stderr] 826 | deps_prefix: &[u8], [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_deps_prefix` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `success` [INFO] [stderr] --> src/build.rs:1028:9 [INFO] [stderr] | [INFO] [stderr] 1028 | success: bool, [INFO] [stderr] | ^^^^^^^ help: consider using `_success` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build.rs:1029:9 [INFO] [stderr] | [INFO] [stderr] 1029 | output: &[u8], [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `progress_status_format` [INFO] [stderr] --> src/build.rs:1104:9 [INFO] [stderr] | [INFO] [stderr] 1104 | progress_status_format: &[u8], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_progress_status_format` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `status` [INFO] [stderr] --> src/build.rs:1105:9 [INFO] [stderr] | [INFO] [stderr] 1105 | status: BuildStatusEdgeStatus, [INFO] [stderr] | ^^^^^^ help: consider using `_status` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/graph.rs:410:9 [INFO] [stderr] | [INFO] [stderr] 410 | state: &State, [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/graph.rs:411:9 [INFO] [stderr] | [INFO] [stderr] 411 | edge_idx: EdgeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/graph.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | path: &[u8], [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/graph.rs:419:38 [INFO] [stderr] | [INFO] [stderr] 419 | pub fn load_deps_from_log(&self, state: &State, edge_idx: EdgeIndex) -> Result { [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/graph.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | pub fn load_deps_from_log(&self, state: &State, edge_idx: EdgeIndex) -> Result { [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `found_entry` [INFO] [stderr] --> src/graph.rs:805:25 [INFO] [stderr] | [INFO] [stderr] 805 | if let Some(found_entry) = entry { [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_found_entry` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/graph.rs:730:9 [INFO] [stderr] | [INFO] [stderr] 730 | command: &[u8], [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:58:9 [INFO] [stderr] | [INFO] [stderr] 58 | path: &Path, [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] --> src/build_log.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | user: &User, [INFO] [stderr] | ^^^^ help: consider using `_user` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/build_log.rs:77:9 [INFO] [stderr] | [INFO] [stderr] 77 | state: &State, [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/build_log.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | edge_idx: EdgeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_time` [INFO] [stderr] --> src/build_log.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | start_time: u64, [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_start_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_time` [INFO] [stderr] --> src/build_log.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | end_time: u64, [INFO] [stderr] | ^^^^^^^^ help: consider using `_end_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mtime` [INFO] [stderr] --> src/build_log.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | mtime: TimeStamp, [INFO] [stderr] | ^^^^^ help: consider using `_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:92:28 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn load(&mut self, path: &Path) -> Result, String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:98:36 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn lookup_by_output(&self, path: &[u8]) -> Option<&BuildLogEntry> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/build_log.rs:104:41 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn write_entry(&self, f: &W, entry: &BuildLogEntry) -> Result<(), ()> { [INFO] [stderr] | ^ help: consider using `_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/build_log.rs:104:48 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn write_entry(&self, f: &W, entry: &BuildLogEntry) -> Result<(), ()> { [INFO] [stderr] | ^^^^^ help: consider using `_entry` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:109:49 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn recompact(&self, path: &Path, user: &User) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] --> src/build_log.rs:109:62 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn recompact(&self, path: &Path, user: &User) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_user` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build_log.rs:128:28 [INFO] [stderr] | [INFO] [stderr] 128 | pub fn new_with_output(output: &str) -> Self { [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build_log.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | output: &str, [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_hash` [INFO] [stderr] --> src/build_log.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | command_hash: u64, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_command_hash` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_time` [INFO] [stderr] --> src/build_log.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | start_time: isize, [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_start_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_time` [INFO] [stderr] --> src/build_log.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | end_time: isize, [INFO] [stderr] | ^^^^^^^^ help: consider using `_end_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `restat_mtime` [INFO] [stderr] --> src/build_log.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | restat_mtime: TimeStamp, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_restat_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/build_log.rs:142:25 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn hash_command(command: &str) -> u64 { [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn load(&mut self, path: &Path, state: &mut State) -> Result, String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/deps_log.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn load(&mut self, path: &Path, state: &mut State) -> Result, String> { [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:71:34 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn open_for_write(&self, path: &Path) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/deps_log.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | state: &State, [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `node_idx` [INFO] [stderr] --> src/deps_log.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | node_idx: NodeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_node_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mtime` [INFO] [stderr] --> src/deps_log.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | mtime: TimeStamp, [INFO] [stderr] | ^^^^^ help: consider using `_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nodes` [INFO] [stderr] --> src/deps_log.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | nodes: &[NodeIndex], [INFO] [stderr] | ^^^^^ help: consider using `_nodes` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:87:29 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn recompact(&self, path: &Path) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/disk_interface.rs:172:26 [INFO] [stderr] | [INFO] [stderr] 172 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `contents` [INFO] [stderr] --> src/disk_interface.rs:172:39 [INFO] [stderr] | [INFO] [stderr] 172 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^ help: consider using `_contents` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `allow` [INFO] [stderr] --> src/disk_interface.rs:189:36 [INFO] [stderr] | [INFO] [stderr] 189 | pub fn allow_stat_cache(&self, allow: bool) { [INFO] [stderr] | ^^^^^ help: consider using `_allow` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/state.rs:385:35 [INFO] [stderr] | [INFO] [stderr] 385 | pub fn spellcheck_node(&self, path: &[u8]) -> Option<&[u8]> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Write` [INFO] [stderr] --> src/eval_env.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::io::Write; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/build.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `EdgeFinished` [INFO] [stderr] --> src/build.rs:947:5 [INFO] [stderr] | [INFO] [stderr] 947 | EdgeFinished, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rate` [INFO] [stderr] --> src/build.rs:1163:5 [INFO] [stderr] | [INFO] [stderr] 1163 | rate: f64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rate` [INFO] [stderr] --> src/build.rs:1201:5 [INFO] [stderr] | [INFO] [stderr] 1201 | rate: f64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `max_len` [INFO] [stderr] --> src/build.rs:1203:5 [INFO] [stderr] | [INFO] [stderr] 1203 | max_len: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `times` [INFO] [stderr] --> src/build.rs:1204:5 [INFO] [stderr] | [INFO] [stderr] 1204 | times: VecDeque, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `last_update` [INFO] [stderr] --> src/build.rs:1205:5 [INFO] [stderr] | [INFO] [stderr] 1205 | last_update: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `disk_interface` [INFO] [stderr] --> src/graph.rs:371:5 [INFO] [stderr] | [INFO] [stderr] 371 | disk_interface: &'c DiskInterface, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `deps_log` [INFO] [stderr] --> src/graph.rs:465:5 [INFO] [stderr] | [INFO] [stderr] 465 | deps_log: &'b DepsLog, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `needs_recompaction` [INFO] [stderr] --> src/build_log.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | needs_recompaction: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `none` [INFO] [stderr] --> src/timestamp.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn none() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `invalid` [INFO] [stderr] --> src/timestamp.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | fn invalid() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/metrics.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | name: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `extra` [INFO] [stderr] --> src/line_printer.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | extra: LinePrinterOs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/build.rs:2148:19 [INFO] [stderr] | [INFO] [stderr] 2148 | .map(|i| { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] warning: the loop variable `i` is only used to index `path`. [INFO] [stderr] --> src/utils.rs:405:18 [INFO] [stderr] | [INFO] [stderr] 405 | for i in 0..new_len { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 405 | for in path.iter_mut().take(new_len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/build.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | / match self { [INFO] [stderr] 60 | | &btree_map::Entry::Vacant(_) => true, [INFO] [stderr] 61 | | _ => false, [INFO] [stderr] 62 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 59 | match *self { [INFO] [stderr] 60 | btree_map::Entry::Vacant(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `build::Plan` [INFO] [stderr] --> src/build.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn new() -> Self { [INFO] [stderr] 69 | | Plan { [INFO] [stderr] 70 | | wanted_edges: 0usize, [INFO] [stderr] 71 | | command_edges: 0usize, [INFO] [stderr] ... | [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 40 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/build.rs:117:31 [INFO] [stderr] | [INFO] [stderr] 117 | if node.is_dirty() && want.unwrap_or(false) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!want.unwrap_or(false)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/test.rs:190:24 [INFO] [stderr] | [INFO] [stderr] 190 | fn make_dir(&self, path: &Path) -> Result<(), io::Error> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/test.rs:193:25 [INFO] [stderr] | [INFO] [stderr] 193 | fn make_dirs(&self, path: &Path) -> Result<(), io::Error> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/test.rs:196:20 [INFO] [stderr] | [INFO] [stderr] 196 | fn stat(&self, path: &Path) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/test.rs:199:26 [INFO] [stderr] | [INFO] [stderr] 199 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `contents` [INFO] [stderr] --> src/test.rs:199:39 [INFO] [stderr] | [INFO] [stderr] 199 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^ help: consider using `_contents` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/test.rs:202:27 [INFO] [stderr] | [INFO] [stderr] 202 | fn remove_file(&self, path: &Path) -> Result { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `scan` [INFO] [stderr] --> src/build.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | scan: &DependencyScan, [INFO] [stderr] | ^^^^ help: consider using `_scan` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `State` [INFO] [stderr] --> src/build.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | State: &State, [INFO] [stderr] | ^^^^^ help: consider using `_State` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `node_idx` [INFO] [stderr] --> src/build.rs:270:9 [INFO] [stderr] | [INFO] [stderr] 270 | node_idx: NodeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_node_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/build.rs:744:27 [INFO] [stderr] | [INFO] [stderr] 744 | .map_err(|e| { [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/build.rs:763:27 [INFO] [stderr] | [INFO] [stderr] 763 | .map_err(|e| format!("Error writing to deps log: {}", errno::errno()))?; [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result` [INFO] [stderr] --> src/build.rs:824:9 [INFO] [stderr] | [INFO] [stderr] 824 | result: &mut CommandRunnerResult, [INFO] [stderr] | ^^^^^^ help: consider using `_result` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `deps_prefix` [INFO] [stderr] --> src/build.rs:826:9 [INFO] [stderr] | [INFO] [stderr] 826 | deps_prefix: &[u8], [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_deps_prefix` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `success` [INFO] [stderr] --> src/build.rs:1028:9 [INFO] [stderr] | [INFO] [stderr] 1028 | success: bool, [INFO] [stderr] | ^^^^^^^ help: consider using `_success` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build.rs:1029:9 [INFO] [stderr] | [INFO] [stderr] 1029 | output: &[u8], [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `progress_status_format` [INFO] [stderr] --> src/build.rs:1104:9 [INFO] [stderr] | [INFO] [stderr] 1104 | progress_status_format: &[u8], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `_progress_status_format` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `status` [INFO] [stderr] --> src/build.rs:1105:9 [INFO] [stderr] | [INFO] [stderr] 1105 | status: BuildStatusEdgeStatus, [INFO] [stderr] | ^^^^^^ help: consider using `_status` instead [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/build.rs:192:31 [INFO] [stderr] | [INFO] [stderr] 192 | let directly_wanted = self.want.get(&edge_idx).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.want.get(&edge_idx).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/build.rs:192:31 [INFO] [stderr] | [INFO] [stderr] 192 | let directly_wanted = self.want.get(&edge_idx).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.want[&edge_idx]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/build.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / match result { [INFO] [stderr] 210 | | EdgeResult::EdgeSucceeded => { [INFO] [stderr] 211 | | if directly_wanted { [INFO] [stderr] 212 | | self.wanted_edges -= 1; [INFO] [stderr] ... | [INFO] [stderr] 229 | | _ => {} [INFO] [stderr] 230 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 209 | if let EdgeResult::EdgeSucceeded = result { [INFO] [stderr] 210 | if directly_wanted { [INFO] [stderr] 211 | self.wanted_edges -= 1; [INFO] [stderr] 212 | } [INFO] [stderr] 213 | self.want.remove(&edge_idx); [INFO] [stderr] 214 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/graph.rs:410:9 [INFO] [stderr] | [INFO] [stderr] 410 | state: &State, [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/graph.rs:411:9 [INFO] [stderr] | [INFO] [stderr] 411 | edge_idx: EdgeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/graph.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | path: &[u8], [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/graph.rs:419:38 [INFO] [stderr] | [INFO] [stderr] 419 | pub fn load_deps_from_log(&self, state: &State, edge_idx: EdgeIndex) -> Result { [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/graph.rs:419:53 [INFO] [stderr] | [INFO] [stderr] 419 | pub fn load_deps_from_log(&self, state: &State, edge_idx: EdgeIndex) -> Result { [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `found_entry` [INFO] [stderr] --> src/graph.rs:805:25 [INFO] [stderr] | [INFO] [stderr] 805 | if let Some(found_entry) = entry { [INFO] [stderr] warning: variable `State` should have a snake case name such as `state` [INFO] [stderr] --> src/build.rs:269:9 [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_found_entry` instead [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] 269 | State: &State, [INFO] [stderr] --> src/graph.rs:730:9 [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 730 | command: &[u8], [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `build::BuildConfig` [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:58:9 [INFO] [stderr] --> src/build.rs:357:5 [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 58 | path: &Path, [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] 357 | / pub fn new() -> Self { [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] 358 | | BuildConfig { [INFO] [stderr] --> src/build_log.rs:59:9 [INFO] [stderr] 359 | | verbosity: BuildConfigVerbosity::NORMAL, [INFO] [stderr] | [INFO] [stderr] 59 | user: &User, [INFO] [stderr] 360 | | dry_run: false, [INFO] [stderr] | ^^^^ help: consider using `_user` instead [INFO] [stderr] ... | [INFO] [stderr] [INFO] [stderr] 364 | | } [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/build_log.rs:77:9 [INFO] [stderr] 365 | | } [INFO] [stderr] | [INFO] [stderr] | |_____^ [INFO] [stderr] 77 | state: &State, [INFO] [stderr] | [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] warning: unused variable: `edge_idx` [INFO] [stderr] --> src/build_log.rs:78:9 [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] 356 | impl Default for build::BuildConfig { [INFO] [stderr] 78 | edge_idx: EdgeIndex, [INFO] [stderr] 357 | fn default() -> Self { [INFO] [stderr] | ^^^^^^^^ help: consider using `_edge_idx` instead [INFO] [stderr] [INFO] [stderr] 358 | Self::new() [INFO] [stderr] warning: unused variable: `start_time` [INFO] [stderr] 359 | } [INFO] [stderr] --> src/build_log.rs:79:9 [INFO] [stderr] 360 | } [INFO] [stderr] | [INFO] [stderr] 79 | start_time: u64, [INFO] [stderr] | [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_start_time` instead [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_time` [INFO] [stderr] --> src/build_log.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | end_time: u64, [INFO] [stderr] | ^^^^^^^^ help: consider using `_end_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mtime` [INFO] [stderr] --> src/build_log.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | mtime: TimeStamp, [INFO] [stderr] | ^^^^^ help: consider using `_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:92:28 [INFO] [stderr] | [INFO] [stderr] 92 | pub fn load(&mut self, path: &Path) -> Result, String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:98:36 [INFO] [stderr] | [INFO] [stderr] 98 | pub fn lookup_by_output(&self, path: &[u8]) -> Option<&BuildLogEntry> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/build_log.rs:104:41 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn write_entry(&self, f: &W, entry: &BuildLogEntry) -> Result<(), ()> { [INFO] [stderr] | ^ help: consider using `_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `entry` [INFO] [stderr] --> src/build_log.rs:104:48 [INFO] [stderr] | [INFO] [stderr] 104 | pub fn write_entry(&self, f: &W, entry: &BuildLogEntry) -> Result<(), ()> { [INFO] [stderr] | ^^^^^ help: consider using `_entry` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/build_log.rs:109:49 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn recompact(&self, path: &Path, user: &User) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `user` [INFO] [stderr] --> src/build_log.rs:109:62 [INFO] [stderr] | [INFO] [stderr] 109 | pub fn recompact(&self, path: &Path, user: &User) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_user` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build_log.rs:128:28 [INFO] [stderr] | [INFO] [stderr] 128 | pub fn new_with_output(output: &str) -> Self { [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `output` [INFO] [stderr] --> src/build_log.rs:133:9 [INFO] [stderr] | [INFO] [stderr] 133 | output: &str, [INFO] [stderr] | ^^^^^^ help: consider using `_output` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command_hash` [INFO] [stderr] --> src/build_log.rs:134:9 [INFO] [stderr] | [INFO] [stderr] 134 | command_hash: u64, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_command_hash` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start_time` [INFO] [stderr] --> src/build_log.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | start_time: isize, [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_start_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `end_time` [INFO] [stderr] --> src/build_log.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 136 | end_time: isize, [INFO] [stderr] | ^^^^^^^^ help: consider using `_end_time` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `restat_mtime` [INFO] [stderr] --> src/build_log.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | restat_mtime: TimeStamp, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_restat_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `command` [INFO] [stderr] --> src/build_log.rs:142:25 [INFO] [stderr] | [INFO] [stderr] 142 | pub fn hash_command(command: &str) -> u64 { [INFO] [stderr] | ^^^^^^^ help: consider using `_command` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn load(&mut self, path: &Path, state: &mut State) -> Result, String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/deps_log.rs:66:41 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn load(&mut self, path: &Path, state: &mut State) -> Result, String> { [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:71:34 [INFO] [stderr] | [INFO] [stderr] 71 | pub fn open_for_write(&self, path: &Path) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/deps_log.rs:78:9 [INFO] [stderr] | [INFO] [stderr] 78 | state: &State, [INFO] [stderr] | ^^^^^ help: consider using `_state` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `node_idx` [INFO] [stderr] --> src/deps_log.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | node_idx: NodeIndex, [INFO] [stderr] | ^^^^^^^^ help: consider using `_node_idx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `mtime` [INFO] [stderr] --> src/deps_log.rs:80:9 [INFO] [stderr] | [INFO] [stderr] 80 | mtime: TimeStamp, [INFO] [stderr] | ^^^^^ help: consider using `_mtime` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `nodes` [INFO] [stderr] --> src/deps_log.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | nodes: &[NodeIndex], [INFO] [stderr] | ^^^^^ help: consider using `_nodes` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/deps_log.rs:87:29 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn recompact(&self, path: &Path) -> Result<(), String> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/disk_interface.rs:172:26 [INFO] [stderr] | [INFO] [stderr] 172 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `contents` [INFO] [stderr] --> src/disk_interface.rs:172:39 [INFO] [stderr] | [INFO] [stderr] 172 | fn write_file(&self, path: &Path, contents: &[u8]) -> Result<(), ()> { [INFO] [stderr] | ^^^^^^^^ help: consider using `_contents` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `allow` [INFO] [stderr] --> src/disk_interface.rs:189:36 [INFO] [stderr] | [INFO] [stderr] 189 | pub fn allow_stat_cache(&self, allow: bool) { [INFO] [stderr] | ^^^^^ help: consider using `_allow` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `path` [INFO] [stderr] --> src/state.rs:385:35 [INFO] [stderr] | [INFO] [stderr] 385 | pub fn spellcheck_node(&self, path: &[u8]) -> Option<&[u8]> { [INFO] [stderr] | ^^^^ help: consider using `_path` instead [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/build.rs:441:34 [INFO] [stderr] | [INFO] [stderr] 441 | pub fn is_already_up_to_date(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/build.rs:1041:9 [INFO] [stderr] | [INFO] [stderr] 1041 | / match self.config.verbosity { [INFO] [stderr] 1042 | | BuildConfigVerbosity::QUIET => { [INFO] [stderr] 1043 | | return (start_time, end_time); [INFO] [stderr] 1044 | | } [INFO] [stderr] 1045 | | _ => {} [INFO] [stderr] 1046 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1041 | if let BuildConfigVerbosity::QUIET = self.config.verbosity { [INFO] [stderr] 1042 | return (start_time, end_time); [INFO] [stderr] 1043 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/graph.rs:488:9 [INFO] [stderr] | [INFO] [stderr] 488 | self.build_log.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.build_log` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/graph.rs:532:17 [INFO] [stderr] | [INFO] [stderr] 532 | / match state.edge_state.get_edge(edge_idx).mark { [INFO] [stderr] 533 | | EdgeVisitMark::VisitDone => { [INFO] [stderr] 534 | | return Ok(()); [INFO] [stderr] 535 | | } [INFO] [stderr] 536 | | _ => {} [INFO] [stderr] 537 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 532 | if let EdgeVisitMark::VisitDone = state.edge_state.get_edge(edge_idx).mark { [INFO] [stderr] 533 | return Ok(()); [INFO] [stderr] 534 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/graph.rs:592:54 [INFO] [stderr] | [INFO] [stderr] 592 | .map(|&prev_idx| { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 593 | | let prev_node = state.node_state.get_node(prev_idx); [INFO] [stderr] 594 | | i_node.mtime() > prev_node.mtime() [INFO] [stderr] 595 | | }) [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `build_log::BuildLog<'a>` [INFO] [stderr] --> src/build_log.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> Self { [INFO] [stderr] 49 | | BuildLog { [INFO] [stderr] 50 | | entries: BuildLogEntries::new(), [INFO] [stderr] 51 | | log_file: None, [INFO] [stderr] 52 | | needs_recompaction: false, [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `deps_log::DepsLog` [INFO] [stderr] --> src/deps_log.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Self { [INFO] [stderr] 63 | | DepsLog {} [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lexer.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lexer.rs:64:23 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn error_hint(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | / match skip_comment(rest_input) { [INFO] [stderr] 183 | | IResult::Done(i, _) => { [INFO] [stderr] 184 | | rest_input = i; [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | _ => {} [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 182 | if let IResult::Done(i, _) = skip_comment(rest_input) { [INFO] [stderr] 183 | rest_input = i; [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | / match skip_whitespace(rest_input) { [INFO] [stderr] 313 | | IResult::Done(i, _) => { [INFO] [stderr] 314 | | rest_input = i; [INFO] [stderr] 315 | | } [INFO] [stderr] 316 | | _ => {} [INFO] [stderr] 317 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 312 | if let IResult::Done(i, _) = skip_whitespace(rest_input) { [INFO] [stderr] 313 | rest_input = i; [INFO] [stderr] 314 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval_env::EvalString` [INFO] [stderr] --> src/eval_env.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn new() -> Self { [INFO] [stderr] 45 | | EvalString { parsed: TokenList::new() } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval_env::BindingEnv` [INFO] [stderr] --> src/eval_env.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | / pub fn new() -> Self { [INFO] [stderr] 155 | | BindingEnv { [INFO] [stderr] 156 | | bindings: BTreeMap::new(), [INFO] [stderr] 157 | | rules: BTreeMap::new(), [INFO] [stderr] 158 | | parent: None, [INFO] [stderr] 159 | | } [INFO] [stderr] 160 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 147 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/manifest_parser.rs:376:9 [INFO] [stderr] | [INFO] [stderr] 376 | / let mut edge_env = None; [INFO] [stderr] 377 | | if lexer.peek_token(LexerToken::INDENT) { [INFO] [stderr] 378 | | let mut env = BindingEnv::new_with_parent(Some(self.env.clone())); [INFO] [stderr] 379 | | while { [INFO] [stderr] ... | [INFO] [stderr] 386 | | edge_env = Some(Rc::new(RefCell::new(env))); [INFO] [stderr] 387 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let edge_env = if lexer.peek_token(LexerToken::INDENT) { ..; Some(Rc::new(RefCell::new(env))) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `metrics::Stopwatch` [INFO] [stderr] --> src/metrics.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn new() -> Self { [INFO] [stderr] 108 | | Stopwatch { started: 0 } [INFO] [stderr] 109 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 102 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/state.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | self.depth >= 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/state.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | self.depth >= 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::NodeState` [INFO] [stderr] --> src/state.rs:181:5 [INFO] [stderr] | [INFO] [stderr] 181 | / pub fn new() -> Self { [INFO] [stderr] 182 | | NodeState { [INFO] [stderr] 183 | | nodes: Vec::new(), [INFO] [stderr] 184 | | paths: HashMap::new(), [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 172 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `state::EdgeState` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/state.rs:220:1 [INFO] [stderr] | [INFO] [stderr] 220 | / impl EdgeState { [INFO] [stderr] 221 | | pub fn new() -> Self { [INFO] [stderr] 222 | | EdgeState { edges: Vec::new() } [INFO] [stderr] 223 | | } [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::EdgeState` [INFO] [stderr] --> src/state.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn new() -> Self { [INFO] [stderr] 222 | | EdgeState { edges: Vec::new() } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::PoolState` [INFO] [stderr] --> src/state.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | / pub fn new() -> Self { [INFO] [stderr] 259 | | PoolState { pools: HashMap::new() } [INFO] [stderr] 260 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 252 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `state::State` [INFO] [stderr] --> src/state.rs:284:5 [INFO] [stderr] | [INFO] [stderr] 284 | / pub fn new() -> Self { [INFO] [stderr] 285 | | let mut state = State { [INFO] [stderr] 286 | | node_state: NodeState::new(), [INFO] [stderr] 287 | | edge_state: EdgeState::new(), [INFO] [stderr] ... | [INFO] [stderr] 298 | | state [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 283 | impl Default for state::State { [INFO] [stderr] 284 | fn default() -> Self { [INFO] [stderr] 285 | Self::new() [INFO] [stderr] 286 | } [INFO] [stderr] 287 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:748:46 [INFO] [stderr] | [INFO] [stderr] 748 | if libc::sigaction(libc::SIGINT, &mut self.old_int_act, ptr::null_mut()) < 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:749:49 [INFO] [stderr] | [INFO] [stderr] 749 | || libc::sigaction(libc::SIGTERM, &mut self.old_term_act, ptr::null_mut()) < 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:750:48 [INFO] [stderr] | [INFO] [stderr] 750 | || libc::sigaction(libc::SIGHUP, &mut self.old_hup_act, ptr::null_mut()) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `subprocess::SubprocessSet` [INFO] [stderr] --> src/subprocess.rs:786:5 [INFO] [stderr] | [INFO] [stderr] 786 | / pub fn new() -> Self { [INFO] [stderr] 787 | | SubprocessSet { [INFO] [stderr] 788 | | running: HashMap::new(), [INFO] [stderr] 789 | | finished: VecDeque::new(), [INFO] [stderr] 790 | | extra: SubprocessSetOs::new(), [INFO] [stderr] 791 | | } [INFO] [stderr] 792 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 785 | impl Default for subprocess::SubprocessSet { [INFO] [stderr] 786 | fn default() -> Self { [INFO] [stderr] 787 | Self::new() [INFO] [stderr] 788 | } [INFO] [stderr] 789 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/subprocess.rs:828:5 [INFO] [stderr] | [INFO] [stderr] 828 | / pub fn iter<'a>(&'a self) -> Iter<'a, Data> { [INFO] [stderr] 829 | | self.finished.iter().chain(self.running.values()) [INFO] [stderr] 830 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/subprocess.rs:917:35 [INFO] [stderr] | [INFO] [stderr] 917 | if let Some(fd) = (p.1).0.extra.fd.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(p.1).0.extra.fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/subprocess.rs:948:35 [INFO] [stderr] | [INFO] [stderr] 948 | if let Some(fd) = (p.1).0.extra.fd.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(p.1).0.extra.fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `line_printer::LinePrinter` [INFO] [stderr] --> src/line_printer.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / pub fn new() -> Self { [INFO] [stderr] 104 | | let lp_os = LinePrinterOs::new(); [INFO] [stderr] 105 | | let smart = lp_os.should_be_smart(); [INFO] [stderr] 106 | | [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 102 | impl Default for line_printer::LinePrinter { [INFO] [stderr] 103 | fn default() -> Self { [INFO] [stderr] 104 | Self::new() [INFO] [stderr] 105 | } [INFO] [stderr] 106 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `ninja-build`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: field is never used: `directories_made` [INFO] [stderr] --> src/test.rs:130:5 [INFO] [stderr] | [INFO] [stderr] 130 | directories_made: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `files_removed` [INFO] [stderr] --> src/test.rs:133:5 [INFO] [stderr] | [INFO] [stderr] 133 | files_removed: HashSet, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `mtime` [INFO] [stderr] --> src/test.rs:141:5 [INFO] [stderr] | [INFO] [stderr] 141 | mtime: isize, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `stat_error` [INFO] [stderr] --> src/test.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | stat_error: String, // If mtime is -1. [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/build.rs:143:5 [INFO] [stderr] | [INFO] [stderr] 143 | fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `EdgeFinished` [INFO] [stderr] --> src/build.rs:947:5 [INFO] [stderr] | [INFO] [stderr] 947 | EdgeFinished, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rate` [INFO] [stderr] --> src/build.rs:1163:5 [INFO] [stderr] | [INFO] [stderr] 1163 | rate: f64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `rate` [INFO] [stderr] --> src/build.rs:1201:5 [INFO] [stderr] | [INFO] [stderr] 1201 | rate: f64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `max_len` [INFO] [stderr] --> src/build.rs:1203:5 [INFO] [stderr] | [INFO] [stderr] 1203 | max_len: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `times` [INFO] [stderr] --> src/build.rs:1204:5 [INFO] [stderr] | [INFO] [stderr] 1204 | times: VecDeque, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `last_update` [INFO] [stderr] --> src/build.rs:1205:5 [INFO] [stderr] | [INFO] [stderr] 1205 | last_update: isize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `disk_interface` [INFO] [stderr] --> src/graph.rs:371:5 [INFO] [stderr] | [INFO] [stderr] 371 | disk_interface: &'c DiskInterface, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `deps_log` [INFO] [stderr] --> src/graph.rs:465:5 [INFO] [stderr] | [INFO] [stderr] 465 | deps_log: &'b DepsLog, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `needs_recompaction` [INFO] [stderr] --> src/build_log.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | needs_recompaction: bool, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `none` [INFO] [stderr] --> src/timestamp.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | fn none() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `invalid` [INFO] [stderr] --> src/timestamp.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | fn invalid() -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `name` [INFO] [stderr] --> src/metrics.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | name: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `extra` [INFO] [stderr] --> src/line_printer.rs:99:5 [INFO] [stderr] | [INFO] [stderr] 99 | extra: LinePrinterOs, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `path`. [INFO] [stderr] --> src/utils.rs:405:18 [INFO] [stderr] | [INFO] [stderr] 405 | for i in 0..new_len { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 405 | for in path.iter_mut().take(new_len) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/build.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | / match self { [INFO] [stderr] 60 | | &btree_map::Entry::Vacant(_) => true, [INFO] [stderr] 61 | | _ => false, [INFO] [stderr] 62 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 59 | match *self { [INFO] [stderr] 60 | btree_map::Entry::Vacant(_) => true, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `build::Plan` [INFO] [stderr] --> src/build.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn new() -> Self { [INFO] [stderr] 69 | | Plan { [INFO] [stderr] 70 | | wanted_edges: 0usize, [INFO] [stderr] 71 | | command_edges: 0usize, [INFO] [stderr] ... | [INFO] [stderr] 74 | | } [INFO] [stderr] 75 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 40 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/build.rs:117:31 [INFO] [stderr] | [INFO] [stderr] 117 | if node.is_dirty() && want.unwrap_or(false) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!want.unwrap_or(false)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/build.rs:192:31 [INFO] [stderr] | [INFO] [stderr] 192 | let directly_wanted = self.want.get(&edge_idx).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.want.get(&edge_idx).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/build.rs:192:31 [INFO] [stderr] | [INFO] [stderr] 192 | let directly_wanted = self.want.get(&edge_idx).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.want[&edge_idx]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/build.rs:209:9 [INFO] [stderr] | [INFO] [stderr] 209 | / match result { [INFO] [stderr] 210 | | EdgeResult::EdgeSucceeded => { [INFO] [stderr] 211 | | if directly_wanted { [INFO] [stderr] 212 | | self.wanted_edges -= 1; [INFO] [stderr] ... | [INFO] [stderr] 229 | | _ => {} [INFO] [stderr] 230 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 209 | if let EdgeResult::EdgeSucceeded = result { [INFO] [stderr] 210 | if directly_wanted { [INFO] [stderr] 211 | self.wanted_edges -= 1; [INFO] [stderr] 212 | } [INFO] [stderr] 213 | self.want.remove(&edge_idx); [INFO] [stderr] 214 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable `State` should have a snake case name such as `state` [INFO] [stderr] --> src/build.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | State: &State, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `build::BuildConfig` [INFO] [stderr] --> src/build.rs:357:5 [INFO] [stderr] | [INFO] [stderr] 357 | / pub fn new() -> Self { [INFO] [stderr] 358 | | BuildConfig { [INFO] [stderr] 359 | | verbosity: BuildConfigVerbosity::NORMAL, [INFO] [stderr] 360 | | dry_run: false, [INFO] [stderr] ... | [INFO] [stderr] 364 | | } [INFO] [stderr] 365 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 356 | impl Default for build::BuildConfig { [INFO] [stderr] 357 | fn default() -> Self { [INFO] [stderr] 358 | Self::new() [INFO] [stderr] 359 | } [INFO] [stderr] 360 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/build.rs:441:34 [INFO] [stderr] | [INFO] [stderr] 441 | pub fn is_already_up_to_date(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/build.rs:1041:9 [INFO] [stderr] | [INFO] [stderr] 1041 | / match self.config.verbosity { [INFO] [stderr] 1042 | | BuildConfigVerbosity::QUIET => { [INFO] [stderr] 1043 | | return (start_time, end_time); [INFO] [stderr] 1044 | | } [INFO] [stderr] 1045 | | _ => {} [INFO] [stderr] 1046 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1041 | if let BuildConfigVerbosity::QUIET = self.config.verbosity { [INFO] [stderr] 1042 | return (start_time, end_time); [INFO] [stderr] 1043 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `test::TestWithStateAndVFS` [INFO] [stderr] --> src/build.rs:1875:9 [INFO] [stderr] | [INFO] [stderr] 1875 | / pub fn new() -> Self { [INFO] [stderr] 1876 | | Self::new_with_builtin_rule() [INFO] [stderr] 1877 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1874 | impl Default for test::TestWithStateAndVFS { [INFO] [stderr] 1875 | fn default() -> Self { [INFO] [stderr] 1876 | Self::new() [INFO] [stderr] 1877 | } [INFO] [stderr] 1878 | } [INFO] [stderr] 1879 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/graph.rs:488:9 [INFO] [stderr] | [INFO] [stderr] 488 | self.build_log.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.build_log` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/graph.rs:532:17 [INFO] [stderr] | [INFO] [stderr] 532 | / match state.edge_state.get_edge(edge_idx).mark { [INFO] [stderr] 533 | | EdgeVisitMark::VisitDone => { [INFO] [stderr] 534 | | return Ok(()); [INFO] [stderr] 535 | | } [INFO] [stderr] 536 | | _ => {} [INFO] [stderr] 537 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 532 | if let EdgeVisitMark::VisitDone = state.edge_state.get_edge(edge_idx).mark { [INFO] [stderr] 533 | return Ok(()); [INFO] [stderr] 534 | }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/graph.rs:592:54 [INFO] [stderr] | [INFO] [stderr] 592 | .map(|&prev_idx| { [INFO] [stderr] | ______________________________________________________^ [INFO] [stderr] 593 | | let prev_node = state.node_state.get_node(prev_idx); [INFO] [stderr] 594 | | i_node.mtime() > prev_node.mtime() [INFO] [stderr] 595 | | }) [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `build_log::BuildLog<'a>` [INFO] [stderr] --> src/build_log.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | / pub fn new() -> Self { [INFO] [stderr] 49 | | BuildLog { [INFO] [stderr] 50 | | entries: BuildLogEntries::new(), [INFO] [stderr] 51 | | log_file: None, [INFO] [stderr] 52 | | needs_recompaction: false, [INFO] [stderr] 53 | | } [INFO] [stderr] 54 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 41 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `deps_log::DepsLog` [INFO] [stderr] --> src/deps_log.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> Self { [INFO] [stderr] 63 | | DepsLog {} [INFO] [stderr] 64 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lexer.rs:43:17 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lexer.rs:64:23 [INFO] [stderr] | [INFO] [stderr] 64 | pub fn error_hint(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | / match skip_comment(rest_input) { [INFO] [stderr] 183 | | IResult::Done(i, _) => { [INFO] [stderr] 184 | | rest_input = i; [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | _ => {} [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 182 | if let IResult::Done(i, _) = skip_comment(rest_input) { [INFO] [stderr] 183 | rest_input = i; [INFO] [stderr] 184 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lexer.rs:312:9 [INFO] [stderr] | [INFO] [stderr] 312 | / match skip_whitespace(rest_input) { [INFO] [stderr] 313 | | IResult::Done(i, _) => { [INFO] [stderr] 314 | | rest_input = i; [INFO] [stderr] 315 | | } [INFO] [stderr] 316 | | _ => {} [INFO] [stderr] 317 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 312 | if let IResult::Done(i, _) = skip_whitespace(rest_input) { [INFO] [stderr] 313 | rest_input = i; [INFO] [stderr] 314 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval_env::EvalString` [INFO] [stderr] --> src/eval_env.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / pub fn new() -> Self { [INFO] [stderr] 45 | | EvalString { parsed: TokenList::new() } [INFO] [stderr] 46 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 39 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `eval_env::BindingEnv` [INFO] [stderr] --> src/eval_env.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 154 | / pub fn new() -> Self { [INFO] [stderr] 155 | | BindingEnv { [INFO] [stderr] 156 | | bindings: BTreeMap::new(), [INFO] [stderr] 157 | | rules: BTreeMap::new(), [INFO] [stderr] 158 | | parent: None, [INFO] [stderr] 159 | | } [INFO] [stderr] 160 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 147 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/manifest_parser.rs:376:9 [INFO] [stderr] | [INFO] [stderr] 376 | / let mut edge_env = None; [INFO] [stderr] 377 | | if lexer.peek_token(LexerToken::INDENT) { [INFO] [stderr] 378 | | let mut env = BindingEnv::new_with_parent(Some(self.env.clone())); [INFO] [stderr] 379 | | while { [INFO] [stderr] ... | [INFO] [stderr] 386 | | edge_env = Some(Rc::new(RefCell::new(env))); [INFO] [stderr] 387 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let edge_env = if lexer.peek_token(LexerToken::INDENT) { ..; Some(Rc::new(RefCell::new(env))) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: this .into_iter() call is equivalent to .iter() and will not move the array [INFO] [stderr] --> src/manifest_parser.rs:2046:29 [INFO] [stderr] | [INFO] [stderr] 2046 | for input in inputs.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::into_iter_on_array)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_array [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `metrics::Stopwatch` [INFO] [stderr] --> src/metrics.rs:107:5 [INFO] [stderr] | [INFO] [stderr] 107 | / pub fn new() -> Self { [INFO] [stderr] 108 | | Stopwatch { started: 0 } [INFO] [stderr] 109 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 102 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: comparison is useless due to type limits [INFO] [stderr] --> src/state.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | self.depth >= 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_comparisons)] on by default [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/state.rs:57:9 [INFO] [stderr] | [INFO] [stderr] 57 | self.depth >= 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, this comparison is always true [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::NodeState` [INFO] [stderr] --> src/state.rs:181:5 [INFO] [stderr] | [INFO] [stderr] 181 | / pub fn new() -> Self { [INFO] [stderr] 182 | | NodeState { [INFO] [stderr] 183 | | nodes: Vec::new(), [INFO] [stderr] 184 | | paths: HashMap::new(), [INFO] [stderr] 185 | | } [INFO] [stderr] 186 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 172 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `state::EdgeState` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/state.rs:220:1 [INFO] [stderr] | [INFO] [stderr] 220 | / impl EdgeState { [INFO] [stderr] 221 | | pub fn new() -> Self { [INFO] [stderr] 222 | | EdgeState { edges: Vec::new() } [INFO] [stderr] 223 | | } [INFO] [stderr] ... | [INFO] [stderr] 249 | | } [INFO] [stderr] 250 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::EdgeState` [INFO] [stderr] --> src/state.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn new() -> Self { [INFO] [stderr] 222 | | EdgeState { edges: Vec::new() } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 215 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `state::PoolState` [INFO] [stderr] --> src/state.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | / pub fn new() -> Self { [INFO] [stderr] 259 | | PoolState { pools: HashMap::new() } [INFO] [stderr] 260 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 252 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `state::State` [INFO] [stderr] --> src/state.rs:284:5 [INFO] [stderr] | [INFO] [stderr] 284 | / pub fn new() -> Self { [INFO] [stderr] 285 | | let mut state = State { [INFO] [stderr] 286 | | node_state: NodeState::new(), [INFO] [stderr] 287 | | edge_state: EdgeState::new(), [INFO] [stderr] ... | [INFO] [stderr] 298 | | state [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 283 | impl Default for state::State { [INFO] [stderr] 284 | fn default() -> Self { [INFO] [stderr] 285 | Self::new() [INFO] [stderr] 286 | } [INFO] [stderr] 287 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:748:46 [INFO] [stderr] | [INFO] [stderr] 748 | if libc::sigaction(libc::SIGINT, &mut self.old_int_act, ptr::null_mut()) < 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:749:49 [INFO] [stderr] | [INFO] [stderr] 749 | || libc::sigaction(libc::SIGTERM, &mut self.old_term_act, ptr::null_mut()) < 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `libc::sigaction` doesn't need a mutable reference [INFO] [stderr] --> src/subprocess.rs:750:48 [INFO] [stderr] | [INFO] [stderr] 750 | || libc::sigaction(libc::SIGHUP, &mut self.old_hup_act, ptr::null_mut()) < 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `subprocess::SubprocessSet` [INFO] [stderr] --> src/subprocess.rs:786:5 [INFO] [stderr] | [INFO] [stderr] 786 | / pub fn new() -> Self { [INFO] [stderr] 787 | | SubprocessSet { [INFO] [stderr] 788 | | running: HashMap::new(), [INFO] [stderr] 789 | | finished: VecDeque::new(), [INFO] [stderr] 790 | | extra: SubprocessSetOs::new(), [INFO] [stderr] 791 | | } [INFO] [stderr] 792 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 785 | impl Default for subprocess::SubprocessSet { [INFO] [stderr] 786 | fn default() -> Self { [INFO] [stderr] 787 | Self::new() [INFO] [stderr] 788 | } [INFO] [stderr] 789 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/subprocess.rs:828:5 [INFO] [stderr] | [INFO] [stderr] 828 | / pub fn iter<'a>(&'a self) -> Iter<'a, Data> { [INFO] [stderr] 829 | | self.finished.iter().chain(self.running.values()) [INFO] [stderr] 830 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/subprocess.rs:917:35 [INFO] [stderr] | [INFO] [stderr] 917 | if let Some(fd) = (p.1).0.extra.fd.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(p.1).0.extra.fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/subprocess.rs:948:35 [INFO] [stderr] | [INFO] [stderr] 948 | if let Some(fd) = (p.1).0.extra.fd.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(p.1).0.extra.fd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `line_printer::LinePrinter` [INFO] [stderr] --> src/line_printer.rs:103:5 [INFO] [stderr] | [INFO] [stderr] 103 | / pub fn new() -> Self { [INFO] [stderr] 104 | | let lp_os = LinePrinterOs::new(); [INFO] [stderr] 105 | | let smart = lp_os.should_be_smart(); [INFO] [stderr] 106 | | [INFO] [stderr] ... | [INFO] [stderr] 115 | | } [INFO] [stderr] 116 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 102 | impl Default for line_printer::LinePrinter { [INFO] [stderr] 103 | fn default() -> Self { [INFO] [stderr] 104 | Self::new() [INFO] [stderr] 105 | } [INFO] [stderr] 106 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `ninja-build`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "99f9834eda22988b1cfaf71830198f6dbb612258166e0a2a0f6906a9130b4eed"` [INFO] running `"docker" "rm" "-f" "99f9834eda22988b1cfaf71830198f6dbb612258166e0a2a0f6906a9130b4eed"` [INFO] [stdout] 99f9834eda22988b1cfaf71830198f6dbb612258166e0a2a0f6906a9130b4eed