[INFO] cloning repository https://github.com/cursorweb/leetcode-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cursorweb/leetcode-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcursorweb%2Fleetcode-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcursorweb%2Fleetcode-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a4396f3951296fbf306670b523fd4e65d960bb63 [INFO] linting cursorweb/leetcode-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcursorweb%2Fleetcode-rs" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cursorweb/leetcode-rs [INFO] finished tweaking git repo https://github.com/cursorweb/leetcode-rs [INFO] tweaked toml for git repo https://github.com/cursorweb/leetcode-rs written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cursorweb/leetcode-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/cursorweb/leetcode-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7eea95730c7084cde179ca8c912d8ea11a00f726e3f0b26bdd02131b1e413bd4 [INFO] running `Command { std: "docker" "start" "-a" "7eea95730c7084cde179ca8c912d8ea11a00f726e3f0b26bdd02131b1e413bd4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7eea95730c7084cde179ca8c912d8ea11a00f726e3f0b26bdd02131b1e413bd4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7eea95730c7084cde179ca8c912d8ea11a00f726e3f0b26bdd02131b1e413bd4", kill_on_drop: false }` [INFO] [stdout] 7eea95730c7084cde179ca8c912d8ea11a00f726e3f0b26bdd02131b1e413bd4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b8cb309e3a8fe5422903594699db766599f0df39e2f415d30cce2d72e771cd62 [INFO] running `Command { std: "docker" "start" "-a" "b8cb309e3a8fe5422903594699db766599f0df39e2f415d30cce2d72e771cd62", kill_on_drop: false }` [INFO] [stderr] Checking beta v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/fun/linkedlist.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:67:25 [INFO] [stdout] | [INFO] [stdout] 67 | None => Err(String::from(format!("{:?} not found in linked list", val))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:?} not found in linked list", val)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:84:32 [INFO] [stdout] | [INFO] [stdout] 84 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fun/linkedlist.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] 120 + Err(String::from(format!("{} out of bounds.", idx))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:120:20 [INFO] [stdout] | [INFO] [stdout] 120 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | while !left.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | while !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:42:37 [INFO] [stdout] | [INFO] [stdout] 42 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | while !left.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | while !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/fun/dictreq.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / if self.vals.contains_key(&key) { [INFO] [stdout] 37 | | self.vals.insert(key, val); [INFO] [stdout] 38 | | return Ok(()); [INFO] [stdout] 39 | | } else if let Some(ref enclosing) = self.enclosing { [INFO] [stdout] 40 | | return enclosing.borrow_mut().assign(key, val); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/practice/invert_tree.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | return Box::new(tree); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 - return Box::new(tree); [INFO] [stdout] 11 + Box::new(tree) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/practice/invert_tree.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | if tree.left == None && tree.right == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `tree.left.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/practice/invert_tree.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | if tree.left == None && tree.right == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `tree.right.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/practice/invert_tree.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | left: match tree.right { [INFO] [stdout] | ___________________^ [INFO] [stdout] 16 | | Some(t) => Some(invert_tree(*t)), [INFO] [stdout] 17 | | None => None, [INFO] [stdout] 18 | | }, [INFO] [stdout] | |_____________^ help: try: `tree.right.map(|t| invert_tree(*t))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/practice/invert_tree.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | right: match tree.left { [INFO] [stdout] | ____________________^ [INFO] [stdout] 20 | | Some(t) => Some(invert_tree(*t)), [INFO] [stdout] 21 | | None => None, [INFO] [stdout] 22 | | }, [INFO] [stdout] | |_____________^ help: try: `tree.left.map(|t| invert_tree(*t))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.zip()` with a range and `.len()` [INFO] [stdout] --> src/practice/twosum.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | for (i, idx) in nums.iter().zip(0..nums.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_zip_with_len [INFO] [stdout] = note: `#[warn(clippy::range_zip_with_len)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 3 - for (i, idx) in nums.iter().zip(0..nums.len()) { [INFO] [stdout] 3 + for (idx, i) in nums.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/snippets.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | "{5: {6: {7, 8}, 7}}", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 - "Invert_Tree({}) {:?}", [INFO] [stdout] 37 - "{5: {6: {7, 8}, 7}}", [INFO] [stdout] 36 + "Invert_Tree({{5: {{6: {{7, 8}}, 7}}}}) {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/snippets.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | print!("]\n"); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 84 - print!("]\n"); [INFO] [stdout] 84 + println!("]"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/snippets.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | print!("]\n"); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 95 - print!("]\n"); [INFO] [stdout] 95 + println!("]"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/fun/linkedlist.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if v.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `v.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/snippets.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / match env.assign("null".into(), 7) { [INFO] [stdout] 126 | | Err(()) => println!("null is undef"), [INFO] [stdout] 127 | | Ok(()) => {} [INFO] [stdout] 128 | | } [INFO] [stdout] | |_________^ help: try: `if let Err(()) = env.assign("null".into(), 7) { println!("null is undef") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/snippets.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | / match counter.incr() { [INFO] [stdout] 145 | | Ok(_) => {} [INFO] [stdout] 146 | | Err(_) => {} [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________^ help: try: `if let Ok(_) = counter.incr() {}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if args.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/main.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | return Err(println!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 59 | | "Unknown snippet '{}'. [INFO] [stdout] 60 | | Valid Snippets: [INFO] [stdout] 61 | | {}", [INFO] [stdout] ... | [INFO] [stdout] 67 | | .join("\n") [INFO] [stdout] 68 | | )); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ return { [INFO] [stdout] 59 + println!( [INFO] [stdout] 60 + "Unknown snippet '{}'. [INFO] [stdout] 61 + Valid Snippets: [INFO] [stdout] 62 + {}", [INFO] [stdout] 63 + name, [INFO] [stdout] 64 + funcs [INFO] [stdout] 65 + .keys() [INFO] [stdout] 66 + .map(|k| format!("\t{}", k)) [INFO] [stdout] 67 + .collect::>() [INFO] [stdout] 68 + .join("\n") [INFO] [stdout] 69 + ); [INFO] [stdout] 70 + Err(()) [INFO] [stdout] 71 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:67:25 [INFO] [stdout] | [INFO] [stdout] 67 | None => Err(String::from(format!("{:?} not found in linked list", val))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{:?} not found in linked list", val)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/main.rs:76:28 [INFO] [stdout] | [INFO] [stdout] 76 | return Err(println!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 77 | | "Unknown category '{}'. [INFO] [stdout] 78 | | Valid Categories: [INFO] [stdout] 79 | | {}", [INFO] [stdout] ... | [INFO] [stdout] 85 | | .join("\n") [INFO] [stdout] 86 | | )); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 76 ~ return { [INFO] [stdout] 77 + println!( [INFO] [stdout] 78 + "Unknown category '{}'. [INFO] [stdout] 79 + Valid Categories: [INFO] [stdout] 80 + {}", [INFO] [stdout] 81 + category, [INFO] [stdout] 82 + categories [INFO] [stdout] 83 + .keys() [INFO] [stdout] 84 + .map(|k| format!("\t{}", k)) [INFO] [stdout] 85 + .collect::>() [INFO] [stdout] 86 + .join("\n") [INFO] [stdout] 87 + ); [INFO] [stdout] 88 + Err(()) [INFO] [stdout] 89 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:84:32 [INFO] [stdout] | [INFO] [stdout] 84 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::env::Args` [INFO] [stdout] --> src/main.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | let args = args().into_iter().skip(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `args()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:105:22 [INFO] [stdout] | [INFO] [stdout] 105 | Category(s[2..].into()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | } else if s.starts_with("-c") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 104 ~ } else if let Some() = s.strip_prefix("-c") { [INFO] [stdout] 105 ~ Category(.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fun/linkedlist.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] 120 + Err(String::from(format!("{} out of bounds.", idx))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:115:32 [INFO] [stdout] | [INFO] [stdout] 115 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/fun/linkedlist.rs:120:20 [INFO] [stdout] | [INFO] [stdout] 120 | return Err(String::from(format!("{} out of bounds.", idx))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("{} out of bounds.", idx)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:12:37 [INFO] [stdout] | [INFO] [stdout] 12 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | while !left.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | while !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:42:11 [INFO] [stdout] | [INFO] [stdout] 42 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:42:37 [INFO] [stdout] | [INFO] [stdout] 42 | while !left.peek().is_none() && !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | while !left.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `left.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/fun/mergesort.rs:54:11 [INFO] [stdout] | [INFO] [stdout] 54 | while !right.peek().is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `right.peek().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/fun/dictreq.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | / if self.vals.contains_key(&key) { [INFO] [stdout] 37 | | self.vals.insert(key, val); [INFO] [stdout] 38 | | return Ok(()); [INFO] [stdout] 39 | | } else if let Some(ref enclosing) = self.enclosing { [INFO] [stdout] 40 | | return enclosing.borrow_mut().assign(key, val); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/practice/invert_tree.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | return Box::new(tree); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 11 - return Box::new(tree); [INFO] [stdout] 11 + Box::new(tree) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/practice/invert_tree.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | if tree.left == None && tree.right == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `tree.left.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/practice/invert_tree.rs:10:29 [INFO] [stdout] | [INFO] [stdout] 10 | if tree.left == None && tree.right == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `tree.right.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/practice/invert_tree.rs:15:19 [INFO] [stdout] | [INFO] [stdout] 15 | left: match tree.right { [INFO] [stdout] | ___________________^ [INFO] [stdout] 16 | | Some(t) => Some(invert_tree(*t)), [INFO] [stdout] 17 | | None => None, [INFO] [stdout] 18 | | }, [INFO] [stdout] | |_____________^ help: try: `tree.right.map(|t| invert_tree(*t))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/practice/invert_tree.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | right: match tree.left { [INFO] [stdout] | ____________________^ [INFO] [stdout] 20 | | Some(t) => Some(invert_tree(*t)), [INFO] [stdout] 21 | | None => None, [INFO] [stdout] 22 | | }, [INFO] [stdout] | |_____________^ help: try: `tree.left.map(|t| invert_tree(*t))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.zip()` with a range and `.len()` [INFO] [stdout] --> src/practice/twosum.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | for (i, idx) in nums.iter().zip(0..nums.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_zip_with_len [INFO] [stdout] = note: `#[warn(clippy::range_zip_with_len)]` on by default [INFO] [stdout] help: use [INFO] [stdout] | [INFO] [stdout] 3 - for (i, idx) in nums.iter().zip(0..nums.len()) { [INFO] [stdout] 3 + for (idx, i) in nums.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: literal with an empty format string [INFO] [stdout] --> src/snippets.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | "{5: {6: {7, 8}, 7}}", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stdout] = note: `#[warn(clippy::print_literal)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 36 - "Invert_Tree({}) {:?}", [INFO] [stdout] 37 - "{5: {6: {7, 8}, 7}}", [INFO] [stdout] 36 + "Invert_Tree({{5: {{6: {{7, 8}}, 7}}}}) {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/snippets.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | print!("]\n"); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 84 - print!("]\n"); [INFO] [stdout] 84 + println!("]"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/snippets.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | print!("]\n"); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 95 - print!("]\n"); [INFO] [stdout] 95 + println!("]"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/snippets.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / match env.assign("null".into(), 7) { [INFO] [stdout] 126 | | Err(()) => println!("null is undef"), [INFO] [stdout] 127 | | Ok(()) => {} [INFO] [stdout] 128 | | } [INFO] [stdout] | |_________^ help: try: `if let Err(()) = env.assign("null".into(), 7) { println!("null is undef") }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/snippets.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | / match counter.incr() { [INFO] [stdout] 145 | | Ok(_) => {} [INFO] [stdout] 146 | | Err(_) => {} [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________^ help: try: `if let Ok(_) = counter.incr() {}` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/main.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | if args.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `args.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/main.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | return Err(println!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 59 | | "Unknown snippet '{}'. [INFO] [stdout] 60 | | Valid Snippets: [INFO] [stdout] 61 | | {}", [INFO] [stdout] ... | [INFO] [stdout] 67 | | .join("\n") [INFO] [stdout] 68 | | )); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 58 ~ return { [INFO] [stdout] 59 + println!( [INFO] [stdout] 60 + "Unknown snippet '{}'. [INFO] [stdout] 61 + Valid Snippets: [INFO] [stdout] 62 + {}", [INFO] [stdout] 63 + name, [INFO] [stdout] 64 + funcs [INFO] [stdout] 65 + .keys() [INFO] [stdout] 66 + .map(|k| format!("\t{}", k)) [INFO] [stdout] 67 + .collect::>() [INFO] [stdout] 68 + .join("\n") [INFO] [stdout] 69 + ); [INFO] [stdout] 70 + Err(()) [INFO] [stdout] 71 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/main.rs:76:28 [INFO] [stdout] | [INFO] [stdout] 76 | return Err(println!( [INFO] [stdout] | ____________________________^ [INFO] [stdout] 77 | | "Unknown category '{}'. [INFO] [stdout] 78 | | Valid Categories: [INFO] [stdout] 79 | | {}", [INFO] [stdout] ... | [INFO] [stdout] 85 | | .join("\n") [INFO] [stdout] 86 | | )); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 76 ~ return { [INFO] [stdout] 77 + println!( [INFO] [stdout] 78 + "Unknown category '{}'. [INFO] [stdout] 79 + Valid Categories: [INFO] [stdout] 80 + {}", [INFO] [stdout] 81 + category, [INFO] [stdout] 82 + categories [INFO] [stdout] 83 + .keys() [INFO] [stdout] 84 + .map(|k| format!("\t{}", k)) [INFO] [stdout] 85 + .collect::>() [INFO] [stdout] 86 + .join("\n") [INFO] [stdout] 87 + ); [INFO] [stdout] 88 + Err(()) [INFO] [stdout] 89 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::env::Args` [INFO] [stdout] --> src/main.rs:96:16 [INFO] [stdout] | [INFO] [stdout] 96 | let args = args().into_iter().skip(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `args()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/main.rs:105:22 [INFO] [stdout] | [INFO] [stdout] 105 | Category(s[2..].into()) [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/main.rs:104:16 [INFO] [stdout] | [INFO] [stdout] 104 | } else if s.starts_with("-c") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 104 ~ } else if let Some() = s.strip_prefix("-c") { [INFO] [stdout] 105 ~ Category(.into()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.65s [INFO] running `Command { std: "docker" "inspect" "b8cb309e3a8fe5422903594699db766599f0df39e2f415d30cce2d72e771cd62", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8cb309e3a8fe5422903594699db766599f0df39e2f415d30cce2d72e771cd62", kill_on_drop: false }` [INFO] [stdout] b8cb309e3a8fe5422903594699db766599f0df39e2f415d30cce2d72e771cd62