[INFO] crate carnix 0.9.6 is already in cache [INFO] extracting crate carnix 0.9.6 into work/ex/clippy-test-run/sources/stable/reg/carnix/0.9.6 [INFO] extracting crate carnix 0.9.6 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/carnix/0.9.6 [INFO] validating manifest of carnix-0.9.6 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 carnix-0.9.6 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 carnix-0.9.6 [INFO] finished frobbing carnix-0.9.6 [INFO] frobbed toml for carnix-0.9.6 written to work/ex/clippy-test-run/sources/stable/reg/carnix/0.9.6/Cargo.toml [INFO] started frobbing carnix-0.9.6 [INFO] finished frobbing carnix-0.9.6 [INFO] frobbed toml for carnix-0.9.6 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/carnix/0.9.6/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 carnix-0.9.6 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/carnix/0.9.6:/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] b3c7f6a7b7d3879caf2700602f0f7a8aafae983cceee3ec4fd5c170003ded8b1 [INFO] running `"docker" "start" "-a" "b3c7f6a7b7d3879caf2700602f0f7a8aafae983cceee3ec4fd5c170003ded8b1"` [INFO] [stderr] Checking carnix v0.9.6 (/opt/crater/workdir) [INFO] [stderr] warning: using `writeln!(w, "")` [INFO] [stderr] --> src/output.rs:737:21 [INFO] [stderr] | [INFO] [stderr] 737 | writeln!(w, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | / write!(w, "{}crates.{}.\"{}\" = deps: {{ features?(features_.{}.\"{}\" deps {{}}) }}: buildRustCrate {{\n", [INFO] [stderr] 983 | | [INFO] [stderr] 984 | | indent, [INFO] [stderr] 985 | | nix_name(&self.name), [INFO] [stderr] ... | [INFO] [stderr] 988 | | version, [INFO] [stderr] 989 | | )?; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1104:21 [INFO] [stderr] | [INFO] [stderr] 1104 | write!(w, " ++\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1210:13 [INFO] [stderr] | [INFO] [stderr] 1210 | / write!( [INFO] [stderr] 1211 | | w, [INFO] [stderr] 1212 | | "{} features = mkFeatures (features.\"{}\".\"{}\" or {{}});\n", [INFO] [stderr] 1213 | | indent, [INFO] [stderr] 1214 | | nix_name_, [INFO] [stderr] 1215 | | version [INFO] [stderr] 1216 | | )?; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(w, "")` [INFO] [stderr] --> src/output.rs:737:21 [INFO] [stderr] | [INFO] [stderr] 737 | writeln!(w, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | / write!(w, "{}crates.{}.\"{}\" = deps: {{ features?(features_.{}.\"{}\" deps {{}}) }}: buildRustCrate {{\n", [INFO] [stderr] 983 | | [INFO] [stderr] 984 | | indent, [INFO] [stderr] 985 | | nix_name(&self.name), [INFO] [stderr] ... | [INFO] [stderr] 988 | | version, [INFO] [stderr] 989 | | )?; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1104:21 [INFO] [stderr] | [INFO] [stderr] 1104 | write!(w, " ++\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1210:13 [INFO] [stderr] | [INFO] [stderr] 1210 | / write!( [INFO] [stderr] 1211 | | w, [INFO] [stderr] 1212 | | "{} features = mkFeatures (features.\"{}\".\"{}\" or {{}});\n", [INFO] [stderr] 1213 | | indent, [INFO] [stderr] 1214 | | nix_name_, [INFO] [stderr] 1215 | | version [INFO] [stderr] 1216 | | )?; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(w, "")` [INFO] [stderr] --> src/output.rs:737:21 [INFO] [stderr] | [INFO] [stderr] 737 | writeln!(w, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | / write!(w, "{}crates.{}.\"{}\" = deps: {{ features?(features_.{}.\"{}\" deps {{}}) }}: buildRustCrate {{\n", [INFO] [stderr] 983 | | [INFO] [stderr] 984 | | indent, [INFO] [stderr] 985 | | nix_name(&self.name), [INFO] [stderr] ... | [INFO] [stderr] 988 | | version, [INFO] [stderr] 989 | | )?; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1104:21 [INFO] [stderr] | [INFO] [stderr] 1104 | write!(w, " ++\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1210:13 [INFO] [stderr] | [INFO] [stderr] 1210 | / write!( [INFO] [stderr] 1211 | | w, [INFO] [stderr] 1212 | | "{} features = mkFeatures (features.\"{}\".\"{}\" or {{}});\n", [INFO] [stderr] 1213 | | indent, [INFO] [stderr] 1214 | | nix_name_, [INFO] [stderr] 1215 | | version [INFO] [stderr] 1216 | | )?; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `writeln!(w, "")` [INFO] [stderr] --> src/output.rs:737:21 [INFO] [stderr] | [INFO] [stderr] 737 | writeln!(w, "")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `writeln!(w)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::writeln_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:982:9 [INFO] [stderr] | [INFO] [stderr] 982 | / write!(w, "{}crates.{}.\"{}\" = deps: {{ features?(features_.{}.\"{}\" deps {{}}) }}: buildRustCrate {{\n", [INFO] [stderr] 983 | | [INFO] [stderr] 984 | | indent, [INFO] [stderr] 985 | | nix_name(&self.name), [INFO] [stderr] ... | [INFO] [stderr] 988 | | version, [INFO] [stderr] 989 | | )?; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1104:21 [INFO] [stderr] | [INFO] [stderr] 1104 | write!(w, " ++\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/output.rs:1210:13 [INFO] [stderr] | [INFO] [stderr] 1210 | / write!( [INFO] [stderr] 1211 | | w, [INFO] [stderr] 1212 | | "{} features = mkFeatures (features.\"{}\".\"{}\" or {{}});\n", [INFO] [stderr] 1213 | | indent, [INFO] [stderr] 1214 | | nix_name_, [INFO] [stderr] 1215 | | version [INFO] [stderr] 1216 | | )?; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/output.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | / if !b.is_empty() { [INFO] [stderr] 876 | | if current_prefix.is_empty() || !a.starts_with(current_prefix) { [INFO] [stderr] 877 | | // change current prefix [INFO] [stderr] 878 | | if !current_prefix.is_empty() { [INFO] [stderr] ... | [INFO] [stderr] 894 | | } [INFO] [stderr] 895 | | } [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] 875 | if !b.is_empty() && (current_prefix.is_empty() || !a.starts_with(current_prefix)) { [INFO] [stderr] 876 | // change current prefix [INFO] [stderr] 877 | if !current_prefix.is_empty() { [INFO] [stderr] 878 | // close previous prefix [INFO] [stderr] 879 | if current_attrs.len() == 1 { [INFO] [stderr] 880 | writeln!(w, "{} {}.{}", indent, current_prefix.trim_right_matches('.'), current_attrs.pop().unwrap())?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/output.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | / if !b.is_empty() { [INFO] [stderr] 876 | | if current_prefix.is_empty() || !a.starts_with(current_prefix) { [INFO] [stderr] 877 | | // change current prefix [INFO] [stderr] 878 | | if !current_prefix.is_empty() { [INFO] [stderr] ... | [INFO] [stderr] 894 | | } [INFO] [stderr] 895 | | } [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] 875 | if !b.is_empty() && (current_prefix.is_empty() || !a.starts_with(current_prefix)) { [INFO] [stderr] 876 | // change current prefix [INFO] [stderr] 877 | if !current_prefix.is_empty() { [INFO] [stderr] 878 | // close previous prefix [INFO] [stderr] 879 | if current_attrs.len() == 1 { [INFO] [stderr] 880 | writeln!(w, "{} {}.{}", indent, current_prefix.trim_right_matches('.'), current_attrs.pop().unwrap())?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/output.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | / if !b.is_empty() { [INFO] [stderr] 876 | | if current_prefix.is_empty() || !a.starts_with(current_prefix) { [INFO] [stderr] 877 | | // change current prefix [INFO] [stderr] 878 | | if !current_prefix.is_empty() { [INFO] [stderr] ... | [INFO] [stderr] 894 | | } [INFO] [stderr] 895 | | } [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] 875 | if !b.is_empty() && (current_prefix.is_empty() || !a.starts_with(current_prefix)) { [INFO] [stderr] 876 | // change current prefix [INFO] [stderr] 877 | if !current_prefix.is_empty() { [INFO] [stderr] 878 | // close previous prefix [INFO] [stderr] 879 | if current_attrs.len() == 1 { [INFO] [stderr] 880 | writeln!(w, "{} {}.{}", indent, current_prefix.trim_right_matches('.'), current_attrs.pop().unwrap())?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/output.rs:875:13 [INFO] [stderr] | [INFO] [stderr] 875 | / if !b.is_empty() { [INFO] [stderr] 876 | | if current_prefix.is_empty() || !a.starts_with(current_prefix) { [INFO] [stderr] 877 | | // change current prefix [INFO] [stderr] 878 | | if !current_prefix.is_empty() { [INFO] [stderr] ... | [INFO] [stderr] 894 | | } [INFO] [stderr] 895 | | } [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] 875 | if !b.is_empty() && (current_prefix.is_empty() || !a.starts_with(current_prefix)) { [INFO] [stderr] 876 | // change current prefix [INFO] [stderr] 877 | if !current_prefix.is_empty() { [INFO] [stderr] 878 | // close previous prefix [INFO] [stderr] 879 | if current_attrs.len() == 1 { [INFO] [stderr] 880 | writeln!(w, "{} {}.{}", indent, current_prefix.trim_right_matches('.'), current_attrs.pop().unwrap())?; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cfg.rs:122:30 [INFO] [stderr] | [INFO] [stderr] 122 | if let IResult::Done(ref i, ref o) = x { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cfg.rs:122:30 [INFO] [stderr] | [INFO] [stderr] 122 | if let IResult::Done(ref i, ref o) = x { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/prefetch.rs:66:33 [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match &prefetch.prefetch { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 67 | | &Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] 68 | | if let Some(ref ws) = *workspace_member { [INFO] [stderr] 69 | | let mut p = path.to_path_buf(); [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => Cow::Borrowed(&prefetch.path) [INFO] [stderr] 77 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match prefetch.prefetch { [INFO] [stderr] 67 | Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/prefetch.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | let version = if self.subpatch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.subpatch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:225:37 [INFO] [stderr] | [INFO] [stderr] 225 | return Some(inc.into_iter().filter_map(|x| x.as_str().map(|x| x.to_string())).collect()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:254:30 [INFO] [stderr] | [INFO] [stderr] 254 | return s.into_iter().map(|x| x.to_string()).collect() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:341:45 [INFO] [stderr] | [INFO] [stderr] 341 | default.as_array().unwrap().into_iter().map(|x| x.as_str().unwrap().to_string()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/krate.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | subpatch: cap.get(5).map(|x| x.as_str().to_string()).unwrap_or(String::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `cap.get(5).map(|x| x.as_str().to_string()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/krate.rs:134:22 [INFO] [stderr] | [INFO] [stderr] 134 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/prefetch.rs:66:33 [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match &prefetch.prefetch { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 67 | | &Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] 68 | | if let Some(ref ws) = *workspace_member { [INFO] [stderr] 69 | | let mut p = path.to_path_buf(); [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => Cow::Borrowed(&prefetch.path) [INFO] [stderr] 77 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match prefetch.prefetch { [INFO] [stderr] 67 | Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/prefetch.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | let version = if self.subpatch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.subpatch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:225:37 [INFO] [stderr] | [INFO] [stderr] 225 | return Some(inc.into_iter().filter_map(|x| x.as_str().map(|x| x.to_string())).collect()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:254:30 [INFO] [stderr] | [INFO] [stderr] 254 | return s.into_iter().map(|x| x.to_string()).collect() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:341:45 [INFO] [stderr] | [INFO] [stderr] 341 | default.as_array().unwrap().into_iter().map(|x| x.as_str().unwrap().to_string()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cfg.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | / named!(equal, ws!(do_parse!( [INFO] [stderr] 102 | | k: ident >> [INFO] [stderr] 103 | | eq: tag!("=") >> [INFO] [stderr] 104 | | v: delimited!(tag!("\""), take_till!(|c| c == b'"'), tag!("\"")) >> [INFO] [stderr] 105 | | (Cfg::Equal(from_utf8(k).unwrap().to_string(), [INFO] [stderr] 106 | | from_utf8(v).unwrap().to_string())) [INFO] [stderr] 107 | | ))); [INFO] [stderr] | |____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/krate.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | subpatch: cap.get(5).map(|x| x.as_str().to_string()).unwrap_or(String::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `cap.get(5).map(|x| x.as_str().to_string()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/output.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | if self.0.chars().all(|x| { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 19 | | (x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || x == '_' [INFO] [stderr] 20 | | || x == '-' [INFO] [stderr] 21 | | }) { [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/krate.rs:134:22 [INFO] [stderr] | [INFO] [stderr] 134 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [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/output.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn iter<'a>(&'a self) -> impl Iterator { [INFO] [stderr] 102 | | match *self { [INFO] [stderr] 103 | | CrateType::Workspace { ref members, ref package } => [INFO] [stderr] 104 | | Either::A( [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [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: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/prefetch.rs:66:33 [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match &prefetch.prefetch { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 67 | | &Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] 68 | | if let Some(ref ws) = *workspace_member { [INFO] [stderr] 69 | | let mut p = path.to_path_buf(); [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => Cow::Borrowed(&prefetch.path) [INFO] [stderr] 77 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match prefetch.prefetch { [INFO] [stderr] 67 | Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/output.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/prefetch.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | let version = if self.subpatch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.subpatch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cfg.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | / named!(equal, ws!(do_parse!( [INFO] [stderr] 102 | | k: ident >> [INFO] [stderr] 103 | | eq: tag!("=") >> [INFO] [stderr] 104 | | v: delimited!(tag!("\""), take_till!(|c| c == b'"'), tag!("\"")) >> [INFO] [stderr] 105 | | (Cfg::Equal(from_utf8(k).unwrap().to_string(), [INFO] [stderr] 106 | | from_utf8(v).unwrap().to_string())) [INFO] [stderr] 107 | | ))); [INFO] [stderr] | |____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:225:37 [INFO] [stderr] | [INFO] [stderr] 225 | return Some(inc.into_iter().filter_map(|x| x.as_str().map(|x| x.to_string())).collect()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:254:30 [INFO] [stderr] | [INFO] [stderr] 254 | return s.into_iter().map(|x| x.to_string()).collect() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:341:45 [INFO] [stderr] | [INFO] [stderr] 341 | default.as_array().unwrap().into_iter().map(|x| x.as_str().unwrap().to_string()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/krate.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | subpatch: cap.get(5).map(|x| x.as_str().to_string()).unwrap_or(String::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `cap.get(5).map(|x| x.as_str().to_string()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/output.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | if self.0.chars().all(|x| { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 19 | | (x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || x == '_' [INFO] [stderr] 20 | | || x == '-' [INFO] [stderr] 21 | | }) { [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/krate.rs:134:22 [INFO] [stderr] | [INFO] [stderr] 134 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [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/output.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn iter<'a>(&'a self) -> impl Iterator { [INFO] [stderr] 102 | | match *self { [INFO] [stderr] 103 | | CrateType::Workspace { ref members, ref package } => [INFO] [stderr] 104 | | Either::A( [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/output.rs:637:17 [INFO] [stderr] | [INFO] [stderr] 637 | / cap.get(5) [INFO] [stderr] 638 | | .map(|x| x.as_str().to_string()) [INFO] [stderr] 639 | | .unwrap_or(String::new()), [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 637 | cap.get(5) [INFO] [stderr] 638 | .map(|x| x.as_str().to_string()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/output.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/output.rs:757:5 [INFO] [stderr] | [INFO] [stderr] 757 | / pub fn output_package_features( [INFO] [stderr] 758 | | &self, [INFO] [stderr] 759 | | mut w: W, [INFO] [stderr] 760 | | n_indent: usize, [INFO] [stderr] ... | [INFO] [stderr] 957 | | Ok(()) [INFO] [stderr] 958 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cfg.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | / named!(equal, ws!(do_parse!( [INFO] [stderr] 102 | | k: ident >> [INFO] [stderr] 103 | | eq: tag!("=") >> [INFO] [stderr] 104 | | v: delimited!(tag!("\""), take_till!(|c| c == b'"'), tag!("\"")) >> [INFO] [stderr] 105 | | (Cfg::Equal(from_utf8(k).unwrap().to_string(), [INFO] [stderr] 106 | | from_utf8(v).unwrap().to_string())) [INFO] [stderr] 107 | | ))); [INFO] [stderr] | |____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/output.rs:637:17 [INFO] [stderr] | [INFO] [stderr] 637 | / cap.get(5) [INFO] [stderr] 638 | | .map(|x| x.as_str().to_string()) [INFO] [stderr] 639 | | .unwrap_or(String::new()), [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 637 | cap.get(5) [INFO] [stderr] 638 | .map(|x| x.as_str().to_string()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/output.rs:757:5 [INFO] [stderr] | [INFO] [stderr] 757 | / pub fn output_package_features( [INFO] [stderr] 758 | | &self, [INFO] [stderr] 759 | | mut w: W, [INFO] [stderr] 760 | | n_indent: usize, [INFO] [stderr] ... | [INFO] [stderr] 957 | | Ok(()) [INFO] [stderr] 958 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/output.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | if self.0.chars().all(|x| { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 19 | | (x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || x == '_' [INFO] [stderr] 20 | | || x == '-' [INFO] [stderr] 21 | | }) { [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:788:18 [INFO] [stderr] | [INFO] [stderr] 788 | .or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:788:18 [INFO] [stderr] | [INFO] [stderr] 788 | .or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:794:56 [INFO] [stderr] | [INFO] [stderr] 794 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:794:56 [INFO] [stderr] | [INFO] [stderr] 794 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/output.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn iter<'a>(&'a self) -> impl Iterator { [INFO] [stderr] 102 | | match *self { [INFO] [stderr] 103 | | CrateType::Workspace { ref members, ref package } => [INFO] [stderr] 104 | | Either::A( [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [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: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:826:93 [INFO] [stderr] | [INFO] [stderr] 826 | let mut e = output_features.entry(format!("{}.\"{}\"", dep_name, feat)).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:838:73 [INFO] [stderr] | [INFO] [stderr] 838 | let mut e = output_features.entry(dep_name).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:826:93 [INFO] [stderr] | [INFO] [stderr] 826 | let mut e = output_features.entry(format!("{}.\"{}\"", dep_name, feat)).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:838:73 [INFO] [stderr] | [INFO] [stderr] 838 | let mut e = output_features.entry(dep_name).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:866:52 [INFO] [stderr] | [INFO] [stderr] 866 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:897:16 [INFO] [stderr] | [INFO] [stderr] 897 | if b.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/output.rs:913:29 [INFO] [stderr] | [INFO] [stderr] 913 | x.push_str(&format!(";")); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `";".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:866:52 [INFO] [stderr] | [INFO] [stderr] 866 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/output.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:937:39 [INFO] [stderr] | [INFO] [stderr] 937 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:897:16 [INFO] [stderr] | [INFO] [stderr] 897 | if b.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 40 [INFO] [stderr] --> src/output.rs:960:5 [INFO] [stderr] | [INFO] [stderr] 960 | / pub fn output_package( [INFO] [stderr] 961 | | &self, [INFO] [stderr] 962 | | root_prefix: &Path, [INFO] [stderr] 963 | | mut w: W, [INFO] [stderr] ... | [INFO] [stderr] 1223 | | Ok(()) [INFO] [stderr] 1224 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/output.rs:913:29 [INFO] [stderr] | [INFO] [stderr] 913 | x.push_str(&format!(";")); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `";".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:937:39 [INFO] [stderr] | [INFO] [stderr] 937 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 40 [INFO] [stderr] --> src/output.rs:960:5 [INFO] [stderr] | [INFO] [stderr] 960 | / pub fn output_package( [INFO] [stderr] 961 | | &self, [INFO] [stderr] 962 | | root_prefix: &Path, [INFO] [stderr] 963 | | mut w: W, [INFO] [stderr] ... | [INFO] [stderr] 1223 | | Ok(()) [INFO] [stderr] 1224 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/output.rs:637:17 [INFO] [stderr] | [INFO] [stderr] 637 | / cap.get(5) [INFO] [stderr] 638 | | .map(|x| x.as_str().to_string()) [INFO] [stderr] 639 | | .unwrap_or(String::new()), [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 637 | cap.get(5) [INFO] [stderr] 638 | .map(|x| x.as_str().to_string()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/output.rs:757:5 [INFO] [stderr] | [INFO] [stderr] 757 | / pub fn output_package_features( [INFO] [stderr] 758 | | &self, [INFO] [stderr] 759 | | mut w: W, [INFO] [stderr] 760 | | n_indent: usize, [INFO] [stderr] ... | [INFO] [stderr] 957 | | Ok(()) [INFO] [stderr] 958 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/output.rs:1053:36 [INFO] [stderr] | [INFO] [stderr] 1053 | if !s.contains("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1081:12 [INFO] [stderr] | [INFO] [stderr] 1081 | if meta.crate_file.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.crate_file.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1084:12 [INFO] [stderr] | [INFO] [stderr] 1084 | if meta.lib_name.len() > 0 && meta.lib_name != self.name { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.lib_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:788:18 [INFO] [stderr] | [INFO] [stderr] 788 | .or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if meta.bins.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.bins.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:794:56 [INFO] [stderr] | [INFO] [stderr] 794 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:826:93 [INFO] [stderr] | [INFO] [stderr] 826 | let mut e = output_features.entry(format!("{}.\"{}\"", dep_name, feat)).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:838:73 [INFO] [stderr] | [INFO] [stderr] 838 | let mut e = output_features.entry(dep_name).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:866:52 [INFO] [stderr] | [INFO] [stderr] 866 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/output.rs:1116:21 [INFO] [stderr] | [INFO] [stderr] 1116 | write!(w, "then [{{ "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: length comparison to zero [INFO] [stderr] --> src/output.rs:897:16 [INFO] [stderr] | [INFO] [stderr] 897 | if b.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/output.rs:913:29 [INFO] [stderr] | [INFO] [stderr] 913 | x.push_str(&format!(";")); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `";".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:937:39 [INFO] [stderr] | [INFO] [stderr] 937 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1132:12 [INFO] [stderr] | [INFO] [stderr] 1132 | if meta.build.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.build.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1152:47 [INFO] [stderr] | [INFO] [stderr] 1152 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 40 [INFO] [stderr] --> src/output.rs:960:5 [INFO] [stderr] | [INFO] [stderr] 960 | / pub fn output_package( [INFO] [stderr] 961 | | &self, [INFO] [stderr] 962 | | root_prefix: &Path, [INFO] [stderr] 963 | | mut w: W, [INFO] [stderr] ... | [INFO] [stderr] 1223 | | Ok(()) [INFO] [stderr] 1224 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1178:51 [INFO] [stderr] | [INFO] [stderr] 1178 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1202:47 [INFO] [stderr] | [INFO] [stderr] 1202 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/output.rs:1053:36 [INFO] [stderr] | [INFO] [stderr] 1053 | if !s.contains("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1081:12 [INFO] [stderr] | [INFO] [stderr] 1081 | if meta.crate_file.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.crate_file.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1084:12 [INFO] [stderr] | [INFO] [stderr] 1084 | if meta.lib_name.len() > 0 && meta.lib_name != self.name { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.lib_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if meta.bins.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.bins.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/output.rs:1116:21 [INFO] [stderr] | [INFO] [stderr] 1116 | write!(w, "then [{{ "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: length comparison to zero [INFO] [stderr] --> src/output.rs:1132:12 [INFO] [stderr] | [INFO] [stderr] 1132 | if meta.build.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.build.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1152:47 [INFO] [stderr] | [INFO] [stderr] 1152 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1178:51 [INFO] [stderr] | [INFO] [stderr] 1178 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1202:47 [INFO] [stderr] | [INFO] [stderr] 1202 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/output.rs:1053:36 [INFO] [stderr] | [INFO] [stderr] 1053 | if !s.contains("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1081:12 [INFO] [stderr] | [INFO] [stderr] 1081 | if meta.crate_file.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.crate_file.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1084:12 [INFO] [stderr] | [INFO] [stderr] 1084 | if meta.lib_name.len() > 0 && meta.lib_name != self.name { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.lib_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if meta.bins.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.bins.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/output.rs:1116:21 [INFO] [stderr] | [INFO] [stderr] 1116 | write!(w, "then [{{ "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: length comparison to zero [INFO] [stderr] --> src/output.rs:1132:12 [INFO] [stderr] | [INFO] [stderr] 1132 | if meta.build.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.build.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1152:47 [INFO] [stderr] | [INFO] [stderr] 1152 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1178:51 [INFO] [stderr] | [INFO] [stderr] 1178 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1202:47 [INFO] [stderr] | [INFO] [stderr] 1202 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/prefetch.rs:66:33 [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match &prefetch.prefetch { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 67 | | &Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] 68 | | if let Some(ref ws) = *workspace_member { [INFO] [stderr] 69 | | let mut p = path.to_path_buf(); [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => Cow::Borrowed(&prefetch.path) [INFO] [stderr] 77 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 66 | let prefetch_path = match prefetch.prefetch { [INFO] [stderr] 67 | Src::Path { ref path, ref workspace_member } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/prefetch.rs:140:26 [INFO] [stderr] | [INFO] [stderr] 140 | let version = if self.subpatch.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.subpatch.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:225:37 [INFO] [stderr] | [INFO] [stderr] 225 | return Some(inc.into_iter().filter_map(|x| x.as_str().map(|x| x.to_string())).collect()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:254:30 [INFO] [stderr] | [INFO] [stderr] 254 | return s.into_iter().map(|x| x.to_string()).collect() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/prefetch.rs:341:45 [INFO] [stderr] | [INFO] [stderr] 341 | default.as_array().unwrap().into_iter().map(|x| x.as_str().unwrap().to_string()) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/krate.rs:93:23 [INFO] [stderr] | [INFO] [stderr] 93 | subpatch: cap.get(5).map(|x| x.as_str().to_string()).unwrap_or(String::new()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `cap.get(5).map(|x| x.as_str().to_string()).unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/krate.rs:134:22 [INFO] [stderr] | [INFO] [stderr] 134 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cfg.rs:101:1 [INFO] [stderr] | [INFO] [stderr] 101 | / named!(equal, ws!(do_parse!( [INFO] [stderr] 102 | | k: ident >> [INFO] [stderr] 103 | | eq: tag!("=") >> [INFO] [stderr] 104 | | v: delimited!(tag!("\""), take_till!(|c| c == b'"'), tag!("\"")) >> [INFO] [stderr] 105 | | (Cfg::Equal(from_utf8(k).unwrap().to_string(), [INFO] [stderr] 106 | | from_utf8(v).unwrap().to_string())) [INFO] [stderr] 107 | | ))); [INFO] [stderr] | |____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [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: 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/output.rs:18:35 [INFO] [stderr] | [INFO] [stderr] 18 | if self.0.chars().all(|x| { [INFO] [stderr] | ___________________________________^ [INFO] [stderr] 19 | | (x >= '0' && x <= '9') || (x >= 'a' && x <= 'z') || (x >= 'A' && x <= 'Z') || x == '_' [INFO] [stderr] 20 | | || x == '-' [INFO] [stderr] 21 | | }) { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/output.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / fn iter<'a>(&'a self) -> impl Iterator { [INFO] [stderr] 102 | | match *self { [INFO] [stderr] 103 | | CrateType::Workspace { ref members, ref package } => [INFO] [stderr] 104 | | Either::A( [INFO] [stderr] ... | [INFO] [stderr] 112 | | } [INFO] [stderr] 113 | | } [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: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/output.rs:254:26 [INFO] [stderr] | [INFO] [stderr] 254 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/output.rs:637:17 [INFO] [stderr] | [INFO] [stderr] 637 | / cap.get(5) [INFO] [stderr] 638 | | .map(|x| x.as_str().to_string()) [INFO] [stderr] 639 | | .unwrap_or(String::new()), [INFO] [stderr] | |_____________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 637 | cap.get(5) [INFO] [stderr] 638 | .map(|x| x.as_str().to_string()).unwrap_or_default(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 37 [INFO] [stderr] --> src/output.rs:757:5 [INFO] [stderr] | [INFO] [stderr] 757 | / pub fn output_package_features( [INFO] [stderr] 758 | | &self, [INFO] [stderr] 759 | | mut w: W, [INFO] [stderr] 760 | | n_indent: usize, [INFO] [stderr] ... | [INFO] [stderr] 957 | | Ok(()) [INFO] [stderr] 958 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:788:18 [INFO] [stderr] | [INFO] [stderr] 788 | .or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:794:56 [INFO] [stderr] | [INFO] [stderr] 794 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:826:93 [INFO] [stderr] | [INFO] [stderr] 826 | let mut e = output_features.entry(format!("{}.\"{}\"", dep_name, feat)).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:838:73 [INFO] [stderr] | [INFO] [stderr] 838 | let mut e = output_features.entry(dep_name).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/output.rs:866:52 [INFO] [stderr] | [INFO] [stderr] 866 | let mut e = output_features.entry(dep).or_insert(Vec::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:897:16 [INFO] [stderr] | [INFO] [stderr] 897 | if b.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/output.rs:913:29 [INFO] [stderr] | [INFO] [stderr] 913 | x.push_str(&format!(";")); [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using .to_string(): `";".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:937:39 [INFO] [stderr] | [INFO] [stderr] 937 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 40 [INFO] [stderr] --> src/output.rs:960:5 [INFO] [stderr] | [INFO] [stderr] 960 | / pub fn output_package( [INFO] [stderr] 961 | | &self, [INFO] [stderr] 962 | | root_prefix: &Path, [INFO] [stderr] 963 | | mut w: W, [INFO] [stderr] ... | [INFO] [stderr] 1223 | | Ok(()) [INFO] [stderr] 1224 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/output.rs:1053:36 [INFO] [stderr] | [INFO] [stderr] 1053 | if !s.contains("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1081:12 [INFO] [stderr] | [INFO] [stderr] 1081 | if meta.crate_file.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.crate_file.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1084:12 [INFO] [stderr] | [INFO] [stderr] 1084 | if meta.lib_name.len() > 0 && meta.lib_name != self.name { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.lib_name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1100:12 [INFO] [stderr] | [INFO] [stderr] 1100 | if meta.bins.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.bins.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/output.rs:1116:21 [INFO] [stderr] | [INFO] [stderr] 1116 | write!(w, "then [{{ "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [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: length comparison to zero [INFO] [stderr] --> src/output.rs:1132:12 [INFO] [stderr] | [INFO] [stderr] 1132 | if meta.build.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!meta.build.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1152:47 [INFO] [stderr] | [INFO] [stderr] 1152 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1178:51 [INFO] [stderr] | [INFO] [stderr] 1178 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/output.rs:1202:47 [INFO] [stderr] | [INFO] [stderr] 1202 | c.cr.found_in_lock && c.cr.name.len() > 0 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!c.cr.name.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.92s [INFO] running `"docker" "inspect" "b3c7f6a7b7d3879caf2700602f0f7a8aafae983cceee3ec4fd5c170003ded8b1"` [INFO] running `"docker" "rm" "-f" "b3c7f6a7b7d3879caf2700602f0f7a8aafae983cceee3ec4fd5c170003ded8b1"` [INFO] [stdout] b3c7f6a7b7d3879caf2700602f0f7a8aafae983cceee3ec4fd5c170003ded8b1