[INFO] cloning repository https://github.com/Chaitanya-exe/DSA_practice [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Chaitanya-exe/DSA_practice" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaitanya-exe%2FDSA_practice", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaitanya-exe%2FDSA_practice'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f0380e40c2ae2cad0b978cf4970b01b7127e8e5b [INFO] linting Chaitanya-exe/DSA_practice against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaitanya-exe%2FDSA_practice" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Chaitanya-exe/DSA_practice [INFO] finished tweaking git repo https://github.com/Chaitanya-exe/DSA_practice [INFO] tweaked toml for git repo https://github.com/Chaitanya-exe/DSA_practice written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Chaitanya-exe/DSA_practice 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/Chaitanya-exe/DSA_practice 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-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 3b77bec007f03c98c0aeb8142d452d73b2202428cad090b8582835f971208747 [INFO] running `Command { std: "docker" "start" "-a" "3b77bec007f03c98c0aeb8142d452d73b2202428cad090b8582835f971208747", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3b77bec007f03c98c0aeb8142d452d73b2202428cad090b8582835f971208747", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b77bec007f03c98c0aeb8142d452d73b2202428cad090b8582835f971208747", kill_on_drop: false }` [INFO] [stdout] 3b77bec007f03c98c0aeb8142d452d73b2202428cad090b8582835f971208747 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] f1ab6756285c2207ffde7cc7a6d674ba4b91bf158cbaeed2c47fae352492ca09 [INFO] running `Command { std: "docker" "start" "-a" "f1ab6756285c2207ffde7cc7a6d674ba4b91bf158cbaeed2c47fae352492ca09", kill_on_drop: false }` [INFO] [stderr] Checking dsa v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1480:9 [INFO] [stdout] | [INFO] [stdout] 1480 | let mut output: Vec = vec![]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/main.rs:1457:19 [INFO] [stdout] | [INFO] [stdout] 1457 | pub fn find_words(board: Vec>, words: Vec) -> Vec { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/main.rs:1491:9 [INFO] [stdout] | [INFO] [stdout] 1491 | output: Vec, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1827:9 [INFO] [stdout] | [INFO] [stdout] 1827 | let mut length = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/main.rs:1823:50 [INFO] [stdout] | [INFO] [stdout] 1823 | pub fn max_value_after_partition(nums: Vec, k: i32) -> i32 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `length` [INFO] [stdout] --> src/main.rs:1827:9 [INFO] [stdout] | [INFO] [stdout] 1827 | let mut length = 2; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `prev2` is never read [INFO] [stdout] --> src/main.rs:1846:21 [INFO] [stdout] | [INFO] [stdout] 1846 | let mut prev2 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traverse_board` is never used [INFO] [stdout] --> src/main.rs:1486:8 [INFO] [stdout] | [INFO] [stdout] 1486 | fn traverse_board( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::i32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | low as i32 [INFO] [stdout] | ^^^^^^^^^^ help: try: `low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | return students; [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] 82 - return students; [INFO] [stdout] 82 + students [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | result as i32 [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `result` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/main.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 140 | let count = upper_bound - lower_bound; [INFO] [stdout] | -------------------------------------- unnecessary `let` binding [INFO] [stdout] 141 | [INFO] [stdout] 142 | count [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 140 ~ [INFO] [stdout] 141 | [INFO] [stdout] 142 ~ upper_bound - lower_bound [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | fn lower_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 107 - fn lower_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] 107 + fn lower_bound(nums: &[i32], target: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | fn upper_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 122 - fn upper_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] 122 + fn upper_bound(nums: &[i32], target: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | return length as i32; [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] 216 - return length as i32; [INFO] [stdout] 216 + length as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `chars` [INFO] [stdout] --> src/main.rs:202:14 [INFO] [stdout] | [INFO] [stdout] 202 | for i in 0..chars.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 202 - for i in 0..chars.len() { [INFO] [stdout] 202 + for (i, ) in chars.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 216 | return length as i32; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:241:5 [INFO] [stdout] | [INFO] [stdout] 241 | return min_energy as i32; [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] 241 - return min_energy as i32; [INFO] [stdout] 241 + min_energy as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | return min_energy as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `min_energy` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | return max_len as i32; [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] 275 - return max_len as i32; [INFO] [stdout] 275 + max_len as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:354:5 [INFO] [stdout] | [INFO] [stdout] 354 | return (max_char, max_freq); [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] 354 - return (max_char, max_freq); [INFO] [stdout] 354 + (max_char, max_freq) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:387:5 [INFO] [stdout] | [INFO] [stdout] 387 | if freq1 == freq2 { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `freq1 == freq2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | for i in 0..nums.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 399 - for i in 0..nums.len() { [INFO] [stdout] 399 + for in &nums { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:409:5 [INFO] [stdout] | [INFO] [stdout] 409 | count as i32 [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `count` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:431:5 [INFO] [stdout] | [INFO] [stdout] 431 | return max_len as i32; [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] 431 - return max_len as i32; [INFO] [stdout] 431 + max_len as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:463:14 [INFO] [stdout] | [INFO] [stdout] 463 | for i in 0..nums.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 463 - for i in 0..nums.len() { [INFO] [stdout] 463 + for in &nums { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:509:5 [INFO] [stdout] | [INFO] [stdout] 509 | return false; [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] 509 - return false; [INFO] [stdout] 509 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `if let` to pattern match a bool [INFO] [stdout] --> src/main.rs:502:12 [INFO] [stdout] | [INFO] [stdout] 502 | if let true = frequency.contains(&num) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using the condition directly: `frequency.contains(&num)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | return true; [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] 554 - return true; [INFO] [stdout] 554 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | return false; [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] 556 - return false; [INFO] [stdout] 556 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:553:5 [INFO] [stdout] | [INFO] [stdout] 553 | / if s_freq == t_freq { [INFO] [stdout] 554 | | return true; [INFO] [stdout] 555 | | } else { [INFO] [stdout] 556 | | return false; [INFO] [stdout] 557 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `return s_freq == t_freq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:645:19 [INFO] [stdout] | [INFO] [stdout] 645 | fn add_edge(tree: &mut Vec>, u: i32, v: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 645 - fn add_edge(tree: &mut Vec>, u: i32, v: i32) { [INFO] [stdout] 645 + fn add_edge(tree: &mut [Vec], u: i32, v: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:676:21 [INFO] [stdout] | [INFO] [stdout] 676 | return false; [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] 676 - return false; [INFO] [stdout] 676 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/main.rs:681:21 [INFO] [stdout] | [INFO] [stdout] 681 | / match (check_left, check_right) { [INFO] [stdout] 682 | | (true, true) => true, [INFO] [stdout] 683 | | _ => false, [INFO] [stdout] 684 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 681 - match (check_left, check_right) { [INFO] [stdout] 682 - (true, true) => true, [INFO] [stdout] 683 - _ => false, [INFO] [stdout] 684 - } [INFO] [stdout] 681 + matches!((check_left, check_right), (true, true)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:749:17 [INFO] [stdout] | [INFO] [stdout] 749 | return check_balance(&n.left) && check_balance(&n.right); [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] 749 - return check_balance(&n.left) && check_balance(&n.right); [INFO] [stdout] 749 + check_balance(&n.left) && check_balance(&n.right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:754:5 [INFO] [stdout] | [INFO] [stdout] 754 | if check_balance(&root) { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_balance(&root)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/main.rs:799:18 [INFO] [stdout] | [INFO] [stdout] 799 | prefix = String::from(test); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `test` [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: equality checks against true are unnecessary [INFO] [stdout] --> src/main.rs:881:16 [INFO] [stdout] | [INFO] [stdout] 881 | if left_to_right == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `left_to_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:950:21 [INFO] [stdout] | [INFO] [stdout] 950 | / if compare_subtree(&n1.left, &n2.left) && compare_subtree(&n1.right, &n2.right) [INFO] [stdout] 951 | | { [INFO] [stdout] 952 | | true [INFO] [stdout] 953 | | } else { [INFO] [stdout] 954 | | false [INFO] [stdout] 955 | | } [INFO] [stdout] | |_____________________^ help: you can reduce it to: `compare_subtree(&n1.left, &n2.left) && compare_subtree(&n1.right, &n2.right)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:981:17 [INFO] [stdout] | [INFO] [stdout] 981 | / if node.val == sub_root_value { [INFO] [stdout] 982 | | if compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] 983 | | res = true; [INFO] [stdout] 984 | | break; [INFO] [stdout] 985 | | } [INFO] [stdout] 986 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 981 ~ if node.val == sub_root_value [INFO] [stdout] 982 ~ && compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] 983 | res = true; [INFO] [stdout] 984 | break; [INFO] [stdout] 985 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:982:64 [INFO] [stdout] | [INFO] [stdout] 982 | if compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `sub_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` 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/main.rs:1006:9 [INFO] [stdout] | [INFO] [stdout] 1006 | / match node { [INFO] [stdout] 1007 | | Some(ref_cell) => { [INFO] [stdout] 1008 | | let n = ref_cell.borrow(); [INFO] [stdout] 1009 | | max_el = if n.val > max_el { [INFO] [stdout] ... | [INFO] [stdout] 1019 | | None => {} [INFO] [stdout] 1020 | | } [INFO] [stdout] | |_________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 1006 ~ if let Some(ref_cell) = node { [INFO] [stdout] 1007 + let n = ref_cell.borrow(); [INFO] [stdout] 1008 + max_el = if n.val > max_el { [INFO] [stdout] 1009 + *results += 1; [INFO] [stdout] 1010 + n.val [INFO] [stdout] 1011 + } else { [INFO] [stdout] 1012 + max_el [INFO] [stdout] 1013 + }; [INFO] [stdout] 1014 + println!("{}", max_el); [INFO] [stdout] 1015 + count_nodes(&n.left, results, max_el); [INFO] [stdout] 1016 + count_nodes(&n.right, results, max_el); [INFO] [stdout] 1017 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:1058:27 [INFO] [stdout] | [INFO] [stdout] 1058 | let val = n.val.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `n.val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Codec` [INFO] [stdout] --> src/main.rs:1076:5 [INFO] [stdout] | [INFO] [stdout] 1076 | / pub fn new() -> Self { [INFO] [stdout] 1077 | | Codec [INFO] [stdout] 1078 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1075 + impl Default for Codec { [INFO] [stdout] 1076 + fn default() -> Self { [INFO] [stdout] 1077 + Self::new() [INFO] [stdout] 1078 + } [INFO] [stdout] 1079 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:1090:31 [INFO] [stdout] | [INFO] [stdout] 1090 | let val = n.val.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `n.val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1197:17 [INFO] [stdout] | [INFO] [stdout] 1197 | return validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max); [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] 1197 - return validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max); [INFO] [stdout] 1197 + validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/main.rs:1190:20 [INFO] [stdout] | [INFO] [stdout] 1190 | if min.map_or(false, |m| val <= m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1190 - if min.map_or(false, |m| val <= m) { [INFO] [stdout] 1190 + if min.is_some_and(|m| val <= m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/main.rs:1193:20 [INFO] [stdout] | [INFO] [stdout] 1193 | if max.map_or(false, |m| val >= m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1193 - if max.map_or(false, |m| val >= m) { [INFO] [stdout] 1193 + if max.is_some_and(|m| val >= m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1243:9 [INFO] [stdout] | [INFO] [stdout] 1243 | return -1; [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] 1243 - return -1; [INFO] [stdout] 1243 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1245:9 [INFO] [stdout] | [INFO] [stdout] 1245 | return *order.iter().max().unwrap(); [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] 1245 - return *order.iter().max().unwrap(); [INFO] [stdout] 1245 + *order.iter().max().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1288:20 [INFO] [stdout] | [INFO] [stdout] 1288 | if !node.left.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `node.left.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/main.rs:1292:20 [INFO] [stdout] | [INFO] [stdout] 1292 | if !node.right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `node.right.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: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1305:5 [INFO] [stdout] | [INFO] [stdout] 1305 | answer_level as i32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `answer_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Trie` [INFO] [stdout] --> src/main.rs:1314:5 [INFO] [stdout] | [INFO] [stdout] 1314 | / pub fn new() -> Self { [INFO] [stdout] 1315 | | Trie { [INFO] [stdout] 1316 | | children: HashMap::new(), [INFO] [stdout] 1317 | | is_end_of_word: false, [INFO] [stdout] 1318 | | } [INFO] [stdout] 1319 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1313 + impl Default for Trie { [INFO] [stdout] 1314 + fn default() -> Self { [INFO] [stdout] 1315 + Self::new() [INFO] [stdout] 1316 + } [INFO] [stdout] 1317 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1325:65 [INFO] [stdout] | [INFO] [stdout] 1325 | current = current.children.entry(ch).or_insert_with(|| Trie::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Trie::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WordDictionary` [INFO] [stdout] --> src/main.rs:1409:5 [INFO] [stdout] | [INFO] [stdout] 1409 | / pub fn new() -> Self { [INFO] [stdout] 1410 | | WordDictionary { [INFO] [stdout] 1411 | | children: HashMap::new(), [INFO] [stdout] 1412 | | is_end: false, [INFO] [stdout] 1413 | | } [INFO] [stdout] 1414 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1408 + impl Default for WordDictionary { [INFO] [stdout] 1409 + fn default() -> Self { [INFO] [stdout] 1410 + Self::new() [INFO] [stdout] 1411 + } [INFO] [stdout] 1412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1423:33 [INFO] [stdout] | [INFO] [stdout] 1423 | .or_insert_with(|| WordDictionary::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `WordDictionary::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1446:29 [INFO] [stdout] | [INFO] [stdout] 1446 | None => return false, [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] 1446 - None => return false, [INFO] [stdout] 1446 + None => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:1438:28 [INFO] [stdout] | [INFO] [stdout] 1438 | if dfs(&child, chars, index + 1) { [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1475:69 [INFO] [stdout] | [INFO] [stdout] 1475 | current = current.children.entry(ch).or_insert_with(|| Trie::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Trie::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1498:13 [INFO] [stdout] | [INFO] [stdout] 1498 | return; [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] 1497 - if (row >= board.len() || col >= board[0].len()) || board[row][col] == '#' { [INFO] [stdout] 1498 - return; [INFO] [stdout] 1497 + if (row >= board.len() || col >= board[0].len()) || board[row][col] == '#' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1487:16 [INFO] [stdout] | [INFO] [stdout] 1487 | board: &mut Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1487 - board: &mut Vec>, [INFO] [stdout] 1487 + board: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1517:5 [INFO] [stdout] | [INFO] [stdout] 1517 | return vec![]; [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] 1517 - return vec![]; [INFO] [stdout] 1517 + vec![] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `prices` [INFO] [stdout] --> src/main.rs:1565:14 [INFO] [stdout] | [INFO] [stdout] 1565 | for i in 0..prices.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1565 - for i in 0..prices.len() { [INFO] [stdout] 1565 + for in &prices { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1632:9 [INFO] [stdout] | [INFO] [stdout] 1632 | return hrs_taken < hours; [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] 1632 - return hrs_taken < hours; [INFO] [stdout] 1632 + hrs_taken < hours [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1645:5 [INFO] [stdout] | [INFO] [stdout] 1645 | low as i32 [INFO] [stdout] | ^^^^^^^^^^ help: try: `low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1663:9 [INFO] [stdout] | [INFO] [stdout] 1663 | return days_taken <= days; [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] 1663 - return days_taken <= days; [INFO] [stdout] 1663 + days_taken <= days [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1709:5 [INFO] [stdout] | [INFO] [stdout] 1709 | length as i32 [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1723:13 [INFO] [stdout] | [INFO] [stdout] 1723 | return f_n[n as usize]; [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] 1723 - return f_n[n as usize]; [INFO] [stdout] 1723 + f_n[n as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1741:5 [INFO] [stdout] | [INFO] [stdout] 1741 | return dp[n as usize]; [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] 1741 - return dp[n as usize]; [INFO] [stdout] 1741 + dp[n as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1751:5 [INFO] [stdout] | [INFO] [stdout] 1751 | return dp[n]; [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] 1751 - return dp[n]; [INFO] [stdout] 1751 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/main.rs:1745:36 [INFO] [stdout] | [INFO] [stdout] 1745 | let mut dp: Vec = vec![0; (cost.len() + 1) as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((cost.len() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1764:5 [INFO] [stdout] | [INFO] [stdout] 1764 | return prev1 as i32; [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] 1764 - return prev1 as i32; [INFO] [stdout] 1764 + prev1 as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:1759:14 [INFO] [stdout] | [INFO] [stdout] 1759 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1759 - for i in 2..n { [INFO] [stdout] 1759 + for in nums.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1764:12 [INFO] [stdout] | [INFO] [stdout] 1764 | return prev1 as i32; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `prev1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1776:5 [INFO] [stdout] | [INFO] [stdout] 1776 | return max_reach >= (n - 1) as i32; [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] 1776 - return max_reach >= (n - 1) as i32; [INFO] [stdout] 1776 + max_reach >= (n - 1) as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1803:5 [INFO] [stdout] | [INFO] [stdout] 1803 | return ans1.max(ans2); [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] 1803 - return ans1.max(ans2); [INFO] [stdout] 1803 + ans1.max(ans2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1797:9 [INFO] [stdout] | [INFO] [stdout] 1797 | return prev1 as i32; [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] 1797 - return prev1 as i32; [INFO] [stdout] 1797 + prev1 as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `range` [INFO] [stdout] --> src/main.rs:1792:18 [INFO] [stdout] | [INFO] [stdout] 1792 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1792 - for i in 2..n { [INFO] [stdout] 1792 + for in range.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1797:16 [INFO] [stdout] | [INFO] [stdout] 1797 | return prev1 as i32; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `prev1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1838:5 [INFO] [stdout] | [INFO] [stdout] 1838 | return dp[n] as i32; [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] 1838 - return dp[n] as i32; [INFO] [stdout] 1838 + dp[n] as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/main.rs:1825:26 [INFO] [stdout] | [INFO] [stdout] 1825 | let mut dp = vec![0; (n+1) as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `((n+1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:1831:14 [INFO] [stdout] | [INFO] [stdout] 1831 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1831 - for i in 2..n { [INFO] [stdout] 1831 + for in nums.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:1862:36 [INFO] [stdout] | [INFO] [stdout] 1862 | if encode[i - 2] != '0' && (num >= 10 && num <= 26) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(10..=26).contains(&num)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/main.rs:1880:21 [INFO] [stdout] | [INFO] [stdout] 1880 | let mut prev1 = 1 * freq.get(&1).unwrap_or(&0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `*freq.get(&1).unwrap_or(&0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1480:9 [INFO] [stdout] | [INFO] [stdout] 1480 | let mut output: Vec = vec![]; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `board` [INFO] [stdout] --> src/main.rs:1457:19 [INFO] [stdout] | [INFO] [stdout] 1457 | pub fn find_words(board: Vec>, words: Vec) -> Vec { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_board` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> src/main.rs:1491:9 [INFO] [stdout] | [INFO] [stdout] 1491 | output: Vec, [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:1827:9 [INFO] [stdout] | [INFO] [stdout] 1827 | let mut length = 2; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/main.rs:1823:50 [INFO] [stdout] | [INFO] [stdout] 1823 | pub fn max_value_after_partition(nums: Vec, k: i32) -> i32 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `length` [INFO] [stdout] --> src/main.rs:1827:9 [INFO] [stdout] | [INFO] [stdout] 1827 | let mut length = 2; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_length` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `prev2` is never read [INFO] [stdout] --> src/main.rs:1846:21 [INFO] [stdout] | [INFO] [stdout] 1846 | let mut prev2 = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `traverse_board` is never used [INFO] [stdout] --> src/main.rs:1486:8 [INFO] [stdout] | [INFO] [stdout] 1486 | fn traverse_board( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::i32; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | low as i32 [INFO] [stdout] | ^^^^^^^^^^ help: try: `low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | return students; [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] 82 - return students; [INFO] [stdout] 82 + students [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 103 | result as i32 [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `result` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/main.rs:142:5 [INFO] [stdout] | [INFO] [stdout] 140 | let count = upper_bound - lower_bound; [INFO] [stdout] | -------------------------------------- unnecessary `let` binding [INFO] [stdout] 141 | [INFO] [stdout] 142 | count [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 140 ~ [INFO] [stdout] 141 | [INFO] [stdout] 142 ~ upper_bound - lower_bound [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:107:26 [INFO] [stdout] | [INFO] [stdout] 107 | fn lower_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 107 - fn lower_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] 107 + fn lower_bound(nums: &[i32], target: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:122:26 [INFO] [stdout] | [INFO] [stdout] 122 | fn upper_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 122 - fn upper_bound(nums: &Vec, target: i32) -> i32 { [INFO] [stdout] 122 + fn upper_bound(nums: &[i32], target: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | return length as i32; [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] 216 - return length as i32; [INFO] [stdout] 216 + length as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `chars` [INFO] [stdout] --> src/main.rs:202:14 [INFO] [stdout] | [INFO] [stdout] 202 | for i in 0..chars.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 202 - for i in 0..chars.len() { [INFO] [stdout] 202 + for (i, ) in chars.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:216:12 [INFO] [stdout] | [INFO] [stdout] 216 | return length as i32; [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:241:5 [INFO] [stdout] | [INFO] [stdout] 241 | return min_energy as i32; [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] 241 - return min_energy as i32; [INFO] [stdout] 241 + min_energy as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | return min_energy as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `min_energy` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:275:5 [INFO] [stdout] | [INFO] [stdout] 275 | return max_len as i32; [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] 275 - return max_len as i32; [INFO] [stdout] 275 + max_len as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:354:5 [INFO] [stdout] | [INFO] [stdout] 354 | return (max_char, max_freq); [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] 354 - return (max_char, max_freq); [INFO] [stdout] 354 + (max_char, max_freq) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:387:5 [INFO] [stdout] | [INFO] [stdout] 387 | if freq1 == freq2 { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `freq1 == freq2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:399:14 [INFO] [stdout] | [INFO] [stdout] 399 | for i in 0..nums.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 399 - for i in 0..nums.len() { [INFO] [stdout] 399 + for in &nums { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:409:5 [INFO] [stdout] | [INFO] [stdout] 409 | count as i32 [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `count` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:431:5 [INFO] [stdout] | [INFO] [stdout] 431 | return max_len as i32; [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] 431 - return max_len as i32; [INFO] [stdout] 431 + max_len as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:463:14 [INFO] [stdout] | [INFO] [stdout] 463 | for i in 0..nums.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 463 - for i in 0..nums.len() { [INFO] [stdout] 463 + for in &nums { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:509:5 [INFO] [stdout] | [INFO] [stdout] 509 | return false; [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] 509 - return false; [INFO] [stdout] 509 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `if let` to pattern match a bool [INFO] [stdout] --> src/main.rs:502:12 [INFO] [stdout] | [INFO] [stdout] 502 | if let true = frequency.contains(&num) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using the condition directly: `frequency.contains(&num)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:554:9 [INFO] [stdout] | [INFO] [stdout] 554 | return true; [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] 554 - return true; [INFO] [stdout] 554 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:556:9 [INFO] [stdout] | [INFO] [stdout] 556 | return false; [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] 556 - return false; [INFO] [stdout] 556 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:553:5 [INFO] [stdout] | [INFO] [stdout] 553 | / if s_freq == t_freq { [INFO] [stdout] 554 | | return true; [INFO] [stdout] 555 | | } else { [INFO] [stdout] 556 | | return false; [INFO] [stdout] 557 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `return s_freq == t_freq` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:645:19 [INFO] [stdout] | [INFO] [stdout] 645 | fn add_edge(tree: &mut Vec>, u: i32, v: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 645 - fn add_edge(tree: &mut Vec>, u: i32, v: i32) { [INFO] [stdout] 645 + fn add_edge(tree: &mut [Vec], u: i32, v: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:676:21 [INFO] [stdout] | [INFO] [stdout] 676 | return false; [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] 676 - return false; [INFO] [stdout] 676 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/main.rs:681:21 [INFO] [stdout] | [INFO] [stdout] 681 | / match (check_left, check_right) { [INFO] [stdout] 682 | | (true, true) => true, [INFO] [stdout] 683 | | _ => false, [INFO] [stdout] 684 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 681 - match (check_left, check_right) { [INFO] [stdout] 682 - (true, true) => true, [INFO] [stdout] 683 - _ => false, [INFO] [stdout] 684 - } [INFO] [stdout] 681 + matches!((check_left, check_right), (true, true)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:749:17 [INFO] [stdout] | [INFO] [stdout] 749 | return check_balance(&n.left) && check_balance(&n.right); [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] 749 - return check_balance(&n.left) && check_balance(&n.right); [INFO] [stdout] 749 + check_balance(&n.left) && check_balance(&n.right) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:754:5 [INFO] [stdout] | [INFO] [stdout] 754 | if check_balance(&root) { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `check_balance(&root)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::string::String` [INFO] [stdout] --> src/main.rs:799:18 [INFO] [stdout] | [INFO] [stdout] 799 | prefix = String::from(test); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `test` [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: equality checks against true are unnecessary [INFO] [stdout] --> src/main.rs:881:16 [INFO] [stdout] | [INFO] [stdout] 881 | if left_to_right == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `left_to_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/main.rs:950:21 [INFO] [stdout] | [INFO] [stdout] 950 | / if compare_subtree(&n1.left, &n2.left) && compare_subtree(&n1.right, &n2.right) [INFO] [stdout] 951 | | { [INFO] [stdout] 952 | | true [INFO] [stdout] 953 | | } else { [INFO] [stdout] 954 | | false [INFO] [stdout] 955 | | } [INFO] [stdout] | |_____________________^ help: you can reduce it to: `compare_subtree(&n1.left, &n2.left) && compare_subtree(&n1.right, &n2.right)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:981:17 [INFO] [stdout] | [INFO] [stdout] 981 | / if node.val == sub_root_value { [INFO] [stdout] 982 | | if compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] 983 | | res = true; [INFO] [stdout] 984 | | break; [INFO] [stdout] 985 | | } [INFO] [stdout] 986 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 981 ~ if node.val == sub_root_value [INFO] [stdout] 982 ~ && compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] 983 | res = true; [INFO] [stdout] 984 | break; [INFO] [stdout] 985 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:982:64 [INFO] [stdout] | [INFO] [stdout] 982 | if compare_subtree(&Some(node_rc.clone()), &sub_root) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `sub_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` 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/main.rs:1006:9 [INFO] [stdout] | [INFO] [stdout] 1006 | / match node { [INFO] [stdout] 1007 | | Some(ref_cell) => { [INFO] [stdout] 1008 | | let n = ref_cell.borrow(); [INFO] [stdout] 1009 | | max_el = if n.val > max_el { [INFO] [stdout] ... | [INFO] [stdout] 1019 | | None => {} [INFO] [stdout] 1020 | | } [INFO] [stdout] | |_________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 1006 ~ if let Some(ref_cell) = node { [INFO] [stdout] 1007 + let n = ref_cell.borrow(); [INFO] [stdout] 1008 + max_el = if n.val > max_el { [INFO] [stdout] 1009 + *results += 1; [INFO] [stdout] 1010 + n.val [INFO] [stdout] 1011 + } else { [INFO] [stdout] 1012 + max_el [INFO] [stdout] 1013 + }; [INFO] [stdout] 1014 + println!("{}", max_el); [INFO] [stdout] 1015 + count_nodes(&n.left, results, max_el); [INFO] [stdout] 1016 + count_nodes(&n.right, results, max_el); [INFO] [stdout] 1017 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:1058:27 [INFO] [stdout] | [INFO] [stdout] 1058 | let val = n.val.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `n.val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Codec` [INFO] [stdout] --> src/main.rs:1076:5 [INFO] [stdout] | [INFO] [stdout] 1076 | / pub fn new() -> Self { [INFO] [stdout] 1077 | | Codec [INFO] [stdout] 1078 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1075 + impl Default for Codec { [INFO] [stdout] 1076 + fn default() -> Self { [INFO] [stdout] 1077 + Self::new() [INFO] [stdout] 1078 + } [INFO] [stdout] 1079 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:1090:31 [INFO] [stdout] | [INFO] [stdout] 1090 | let val = n.val.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `n.val` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1197:17 [INFO] [stdout] | [INFO] [stdout] 1197 | return validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max); [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] 1197 - return validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max); [INFO] [stdout] 1197 + validate(&n.left, min, Some(val)) && validate(&n.right, Some(val), max) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/main.rs:1190:20 [INFO] [stdout] | [INFO] [stdout] 1190 | if min.map_or(false, |m| val <= m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1190 - if min.map_or(false, |m| val <= m) { [INFO] [stdout] 1190 + if min.is_some_and(|m| val <= m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/main.rs:1193:20 [INFO] [stdout] | [INFO] [stdout] 1193 | if max.map_or(false, |m| val >= m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1193 - if max.map_or(false, |m| val >= m) { [INFO] [stdout] 1193 + if max.is_some_and(|m| val >= m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1243:9 [INFO] [stdout] | [INFO] [stdout] 1243 | return -1; [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] 1243 - return -1; [INFO] [stdout] 1243 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1245:9 [INFO] [stdout] | [INFO] [stdout] 1245 | return *order.iter().max().unwrap(); [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] 1245 - return *order.iter().max().unwrap(); [INFO] [stdout] 1245 + *order.iter().max().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:1288:20 [INFO] [stdout] | [INFO] [stdout] 1288 | if !node.left.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `node.left.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/main.rs:1292:20 [INFO] [stdout] | [INFO] [stdout] 1292 | if !node.right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `node.right.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: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1305:5 [INFO] [stdout] | [INFO] [stdout] 1305 | answer_level as i32 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `answer_level` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Trie` [INFO] [stdout] --> src/main.rs:1314:5 [INFO] [stdout] | [INFO] [stdout] 1314 | / pub fn new() -> Self { [INFO] [stdout] 1315 | | Trie { [INFO] [stdout] 1316 | | children: HashMap::new(), [INFO] [stdout] 1317 | | is_end_of_word: false, [INFO] [stdout] 1318 | | } [INFO] [stdout] 1319 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1313 + impl Default for Trie { [INFO] [stdout] 1314 + fn default() -> Self { [INFO] [stdout] 1315 + Self::new() [INFO] [stdout] 1316 + } [INFO] [stdout] 1317 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1325:65 [INFO] [stdout] | [INFO] [stdout] 1325 | current = current.children.entry(ch).or_insert_with(|| Trie::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Trie::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WordDictionary` [INFO] [stdout] --> src/main.rs:1409:5 [INFO] [stdout] | [INFO] [stdout] 1409 | / pub fn new() -> Self { [INFO] [stdout] 1410 | | WordDictionary { [INFO] [stdout] 1411 | | children: HashMap::new(), [INFO] [stdout] 1412 | | is_end: false, [INFO] [stdout] 1413 | | } [INFO] [stdout] 1414 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 1408 + impl Default for WordDictionary { [INFO] [stdout] 1409 + fn default() -> Self { [INFO] [stdout] 1410 + Self::new() [INFO] [stdout] 1411 + } [INFO] [stdout] 1412 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1423:33 [INFO] [stdout] | [INFO] [stdout] 1423 | .or_insert_with(|| WordDictionary::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `WordDictionary::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1446:29 [INFO] [stdout] | [INFO] [stdout] 1446 | None => return false, [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] 1446 - None => return false, [INFO] [stdout] 1446 + None => false, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:1438:28 [INFO] [stdout] | [INFO] [stdout] 1438 | if dfs(&child, chars, index + 1) { [INFO] [stdout] | ^^^^^^ help: change this to: `child` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:1475:69 [INFO] [stdout] | [INFO] [stdout] 1475 | current = current.children.entry(ch).or_insert_with(|| Trie::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Trie::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1498:13 [INFO] [stdout] | [INFO] [stdout] 1498 | return; [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] 1497 - if (row >= board.len() || col >= board[0].len()) || board[row][col] == '#' { [INFO] [stdout] 1498 - return; [INFO] [stdout] 1497 + if (row >= board.len() || col >= board[0].len()) || board[row][col] == '#' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:1487:16 [INFO] [stdout] | [INFO] [stdout] 1487 | board: &mut Vec>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1487 - board: &mut Vec>, [INFO] [stdout] 1487 + board: &mut [Vec], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1517:5 [INFO] [stdout] | [INFO] [stdout] 1517 | return vec![]; [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] 1517 - return vec![]; [INFO] [stdout] 1517 + vec![] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `prices` [INFO] [stdout] --> src/main.rs:1565:14 [INFO] [stdout] | [INFO] [stdout] 1565 | for i in 0..prices.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1565 - for i in 0..prices.len() { [INFO] [stdout] 1565 + for in &prices { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1632:9 [INFO] [stdout] | [INFO] [stdout] 1632 | return hrs_taken < hours; [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] 1632 - return hrs_taken < hours; [INFO] [stdout] 1632 + hrs_taken < hours [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1645:5 [INFO] [stdout] | [INFO] [stdout] 1645 | low as i32 [INFO] [stdout] | ^^^^^^^^^^ help: try: `low` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1663:9 [INFO] [stdout] | [INFO] [stdout] 1663 | return days_taken <= days; [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] 1663 - return days_taken <= days; [INFO] [stdout] 1663 + days_taken <= days [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1709:5 [INFO] [stdout] | [INFO] [stdout] 1709 | length as i32 [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `length` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1723:13 [INFO] [stdout] | [INFO] [stdout] 1723 | return f_n[n as usize]; [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] 1723 - return f_n[n as usize]; [INFO] [stdout] 1723 + f_n[n as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1741:5 [INFO] [stdout] | [INFO] [stdout] 1741 | return dp[n as usize]; [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] 1741 - return dp[n as usize]; [INFO] [stdout] 1741 + dp[n as usize] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1751:5 [INFO] [stdout] | [INFO] [stdout] 1751 | return dp[n]; [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] 1751 - return dp[n]; [INFO] [stdout] 1751 + dp[n] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/main.rs:1745:36 [INFO] [stdout] | [INFO] [stdout] 1745 | let mut dp: Vec = vec![0; (cost.len() + 1) as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `((cost.len() + 1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1764:5 [INFO] [stdout] | [INFO] [stdout] 1764 | return prev1 as i32; [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] 1764 - return prev1 as i32; [INFO] [stdout] 1764 + prev1 as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:1759:14 [INFO] [stdout] | [INFO] [stdout] 1759 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1759 - for i in 2..n { [INFO] [stdout] 1759 + for in nums.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1764:12 [INFO] [stdout] | [INFO] [stdout] 1764 | return prev1 as i32; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `prev1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1776:5 [INFO] [stdout] | [INFO] [stdout] 1776 | return max_reach >= (n - 1) as i32; [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] 1776 - return max_reach >= (n - 1) as i32; [INFO] [stdout] 1776 + max_reach >= (n - 1) as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1803:5 [INFO] [stdout] | [INFO] [stdout] 1803 | return ans1.max(ans2); [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] 1803 - return ans1.max(ans2); [INFO] [stdout] 1803 + ans1.max(ans2) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1797:9 [INFO] [stdout] | [INFO] [stdout] 1797 | return prev1 as i32; [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] 1797 - return prev1 as i32; [INFO] [stdout] 1797 + prev1 as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `range` [INFO] [stdout] --> src/main.rs:1792:18 [INFO] [stdout] | [INFO] [stdout] 1792 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1792 - for i in 2..n { [INFO] [stdout] 1792 + for in range.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/main.rs:1797:16 [INFO] [stdout] | [INFO] [stdout] 1797 | return prev1 as i32; [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `prev1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:1838:5 [INFO] [stdout] | [INFO] [stdout] 1838 | return dp[n] as i32; [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] 1838 - return dp[n] as i32; [INFO] [stdout] 1838 + dp[n] as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/main.rs:1825:26 [INFO] [stdout] | [INFO] [stdout] 1825 | let mut dp = vec![0; (n+1) as usize]; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `((n+1))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/main.rs:1831:14 [INFO] [stdout] | [INFO] [stdout] 1831 | for i in 2..n { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1831 - for i in 2..n { [INFO] [stdout] 1831 + for in nums.iter().take(n).skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:1862:36 [INFO] [stdout] | [INFO] [stdout] 1862 | if encode[i - 2] != '0' && (num >= 10 && num <= 26) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(10..=26).contains(&num)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/main.rs:1880:21 [INFO] [stdout] | [INFO] [stdout] 1880 | let mut prev1 = 1 * freq.get(&1).unwrap_or(&0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider reducing it to: `*freq.get(&1).unwrap_or(&0)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.62s [INFO] running `Command { std: "docker" "inspect" "f1ab6756285c2207ffde7cc7a6d674ba4b91bf158cbaeed2c47fae352492ca09", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f1ab6756285c2207ffde7cc7a6d674ba4b91bf158cbaeed2c47fae352492ca09", kill_on_drop: false }` [INFO] [stdout] f1ab6756285c2207ffde7cc7a6d674ba4b91bf158cbaeed2c47fae352492ca09