[INFO] cloning repository https://github.com/Sociosarbis/rust-boilerplate [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Sociosarbis/rust-boilerplate" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSociosarbis%2Frust-boilerplate", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSociosarbis%2Frust-boilerplate'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cb2785e5c9fdccb682d2c60dc8be2b367117b732 [INFO] linting Sociosarbis/rust-boilerplate against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSociosarbis%2Frust-boilerplate" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Sociosarbis/rust-boilerplate [INFO] finished tweaking git repo https://github.com/Sociosarbis/rust-boilerplate [INFO] tweaked toml for git repo https://github.com/Sociosarbis/rust-boilerplate written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Sociosarbis/rust-boilerplate 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/Sociosarbis/rust-boilerplate 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] [stderr] Downloading crates ... [INFO] [stderr] Downloaded proc-macro2 v1.0.28 [INFO] [stderr] Downloaded syn v1.0.75 [INFO] [stderr] Downloaded libc v0.2.101 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] dd7ea9accb805744acaa062561f987c2eba0b4a7ed9e0b6a788823411982440c [INFO] running `Command { std: "docker" "start" "-a" "dd7ea9accb805744acaa062561f987c2eba0b4a7ed9e0b6a788823411982440c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dd7ea9accb805744acaa062561f987c2eba0b4a7ed9e0b6a788823411982440c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd7ea9accb805744acaa062561f987c2eba0b4a7ed9e0b6a788823411982440c", kill_on_drop: false }` [INFO] [stdout] dd7ea9accb805744acaa062561f987c2eba0b4a7ed9e0b6a788823411982440c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 72c38953cc6c1ed4368101eaa350d0331fbfea08e320507e9109901808bba343 [INFO] running `Command { std: "docker" "start" "-a" "72c38953cc6c1ed4368101eaa350d0331fbfea08e320507e9109901808bba343", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.101 [INFO] [stderr] Compiling anyhow v1.0.69 [INFO] [stderr] Compiling proc-macro2 v1.0.28 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Compiling syn v1.0.75 [INFO] [stderr] Checking solution v0.1.0 (/opt/rustwide/workdir/solution) [INFO] [stderr] Compiling utils v0.1.0 (/opt/rustwide/workdir/utils) [INFO] [stdout] warning: unused imports: `Ordering` and `pin::Pin` [INFO] [stdout] --> utils/src/lib.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | io::{Bytes, Cursor, Read}, iter::Peekable, pin::Pin, sync::atomic::{AtomicU8, Ordering} [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListNode` is never constructed [INFO] [stdout] --> utils/src/lib.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | struct ListNode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge` is never used [INFO] [stdout] --> utils/src/lib.rs:111:4 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InnerBusy` is never constructed [INFO] [stdout] --> utils/src/lib.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | struct InnerBusy { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Time` is never used [INFO] [stdout] --> utils/src/type_erase.rs:123:7 [INFO] [stdout] | [INFO] [stdout] 123 | trait Time { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Logger` is never used [INFO] [stdout] --> utils/src/type_erase.rs:129:7 [INFO] [stdout] | [INFO] [stdout] 129 | trait Logger: Time { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DynamicLogger` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:135:19 [INFO] [stdout] | [INFO] [stdout] 135 | trait Logger => DynamicLogger { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VTable` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | struct VTable { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vt` is never used [INFO] [stdout] --> utils/src/type_erase.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | fn vt(e: &$erased_t) -> &VTable { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `log`, `error`, `type_name`, `downcast_ref`, and `downcast` are never used [INFO] [stdout] --> utils/src/type_erase.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 36 | impl $erased_t { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 37 | $v fn new(v: std::sync::Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | $v fn type_name(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | $v fn downcast_ref(&self) -> Option<&T> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | $v fn downcast(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] | | ^^^ [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] | | ^^^^^ [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CustomLogger` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | struct CustomLogger {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `NonDispatchable` is never used [INFO] [stdout] --> utils/src/type_erase.rs:172:7 [INFO] [stdout] | [INFO] [stdout] 172 | trait NonDispatchable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Dispatchable` is never used [INFO] [stdout] --> utils/src/type_erase.rs:181:7 [INFO] [stdout] | [INFO] [stdout] 181 | trait Dispatchable { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `A` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | struct A {} [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Ordering` and `pin::Pin` [INFO] [stdout] --> utils/src/lib.rs:2:46 [INFO] [stdout] | [INFO] [stdout] 2 | io::{Bytes, Cursor, Read}, iter::Peekable, pin::Pin, sync::atomic::{AtomicU8, Ordering} [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ListNode` is never constructed [INFO] [stdout] --> utils/src/lib.rs:106:8 [INFO] [stdout] | [INFO] [stdout] 106 | struct ListNode { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge` is never used [INFO] [stdout] --> utils/src/lib.rs:111:4 [INFO] [stdout] | [INFO] [stdout] 111 | fn merge( [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InnerBusy` is never constructed [INFO] [stdout] --> utils/src/lib.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | struct InnerBusy { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Time` is never used [INFO] [stdout] --> utils/src/type_erase.rs:123:7 [INFO] [stdout] | [INFO] [stdout] 123 | trait Time { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Logger` is never used [INFO] [stdout] --> utils/src/type_erase.rs:129:7 [INFO] [stdout] | [INFO] [stdout] 129 | trait Logger: Time { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DynamicLogger` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:135:19 [INFO] [stdout] | [INFO] [stdout] 135 | trait Logger => DynamicLogger { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VTable` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | struct VTable { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vt` is never used [INFO] [stdout] --> utils/src/type_erase.rs:32:10 [INFO] [stdout] | [INFO] [stdout] 32 | fn vt(e: &$erased_t) -> &VTable { [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `log`, `error`, `type_name`, `downcast_ref`, and `downcast` are never used [INFO] [stdout] --> utils/src/type_erase.rs:37:15 [INFO] [stdout] | [INFO] [stdout] 36 | impl $erased_t { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 37 | $v fn new(v: std::sync::Arc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 70 | $v fn type_name(&self) -> &'static str { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | $v fn downcast_ref(&self) -> Option<&T> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 83 | $v fn downcast(&self) -> Option> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 134 | / type_erase!( [INFO] [stdout] 135 | | trait Logger => DynamicLogger { [INFO] [stdout] 136 | | fn log(&self, msg: String); [INFO] [stdout] | | ^^^ [INFO] [stdout] 137 | | fn error(&self, msg: String, trace: Option, context: String); [INFO] [stdout] | | ^^^^^ [INFO] [stdout] ... | [INFO] [stdout] 143 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `type_erase` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CustomLogger` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | struct CustomLogger {} [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `NonDispatchable` is never used [INFO] [stdout] --> utils/src/type_erase.rs:172:7 [INFO] [stdout] | [INFO] [stdout] 172 | trait NonDispatchable { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Dispatchable` is never used [INFO] [stdout] --> utils/src/type_erase.rs:181:7 [INFO] [stdout] | [INFO] [stdout] 181 | trait Dispatchable { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `A` is never constructed [INFO] [stdout] --> utils/src/type_erase.rs:187:8 [INFO] [stdout] | [INFO] [stdout] 187 | struct A {} [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking part_3 v0.1.0 (/opt/rustwide/workdir/part_3) [INFO] [stderr] Checking part_2 v0.1.0 (/opt/rustwide/workdir/part_2) [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> part_2/src/bank.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::swap` [INFO] [stdout] --> part_3/src/flip_cups.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::mem::swap; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `j` [INFO] [stdout] --> part_2/src/find_min_steps.rs:55:19 [INFO] [stdout] | [INFO] [stdout] 55 | for j in 0..temp_count { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_j` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> part_2/src/cal_points.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | let mut ret = 0; [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: `ret` [INFO] [stdout] --> part_2/src/cal_points.rs:5:13 [INFO] [stdout] | [INFO] [stdout] 5 | let mut ret = 0; [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> part_2/src/deserialize.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn deserialize(mut s: String) -> NestedInteger { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> part_2/src/construct_maximum_binary_tree.rs:38:21 [INFO] [stdout] | [INFO] [stdout] 38 | let mut leftBranch = numToNode[stack[index] as usize].clone(); [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `node` [INFO] [stdout] --> part_2/src/construct_maximum_binary_tree.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let node: Option>> = None; [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_node` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MedianFinder` is never constructed [INFO] [stdout] --> part_2/src/median_finder.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct MedianFinder { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_num`, and `find_median` are never used [INFO] [stdout] --> part_2/src/median_finder.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl MedianFinder { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 19 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn add_num(&mut self, num: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn find_median(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MedianFinderBest` is never constructed [INFO] [stdout] --> part_2/src/median_finder.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | struct MedianFinderBest { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_num`, and `find_median` are never used [INFO] [stdout] --> part_2/src/median_finder.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 53 | impl MedianFinderBest { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 56 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 63 | fn add_num(&mut self, num: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | fn find_median(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SolutionPickIndex` is never constructed [INFO] [stdout] --> part_2/src/pick_index.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct SolutionPickIndex { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `pick_index` are never used [INFO] [stdout] --> part_2/src/pick_index.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 11 | impl SolutionPickIndex { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 12 | [INFO] [stdout] 13 | fn new(w: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn pick_index(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> part_2/src/get_kth_from_end.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 10 | impl ListNode { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 11 | #[inline] [INFO] [stdout] 12 | fn new(val: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> part_2/src/split_list_to_parts.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 10 | impl ListNode { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 11 | #[inline] [INFO] [stdout] 12 | fn new(val: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SummaryRanges` is never constructed [INFO] [stdout] --> part_2/src/summary_ranges.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct SummaryRanges { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_num`, and `get_intervals` are never used [INFO] [stdout] --> part_2/src/summary_ranges.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 6 | impl SummaryRanges { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 7 | [INFO] [stdout] 8 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn add_num(&mut self, val: i32) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn get_intervals(&self) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entry` is never constructed [INFO] [stdout] --> part_2/src/word_dictionary.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct Entry { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WordDictionary` is never constructed [INFO] [stdout] --> part_2/src/word_dictionary.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct WordDictionary (Entry); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_word`, `search`, and `search_dfs` are never used [INFO] [stdout] --> part_2/src/word_dictionary.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl WordDictionary { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 15 | [INFO] [stdout] 16 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn add_word(&mut self, word: String) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | fn search(&self, word: String) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 43 | fn search_dfs(&self, entry: &Entry, chars: &Vec, index: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Solution` is never constructed [INFO] [stdout] --> part_2/src/shuffle.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Solution { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `reset`, and `shuffle` are never used [INFO] [stdout] --> part_2/src/shuffle.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl Solution { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 16 | [INFO] [stdout] 17 | fn new(nums: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn reset(&mut self) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn shuffle(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StockPrice` is never constructed [INFO] [stdout] --> part_2/src/stock_price.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct StockPrice { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `update`, `current`, `maximum`, and `minimum` are never used [INFO] [stdout] --> part_2/src/stock_price.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl StockPrice { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 19 | [INFO] [stdout] 20 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn update(&mut self, timestamp: i32, price: i32) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 49 | fn current(&self) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | fn maximum(&self) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 65 | fn minimum(&self) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> part_2/src/all_one.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AllOne` is never constructed [INFO] [stdout] --> part_2/src/all_one.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | struct AllOne { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `inc`, `dec`, `get_max_key`, and `get_min_key` are never used [INFO] [stdout] --> part_2/src/all_one.rs:24:6 [INFO] [stdout] | [INFO] [stdout] 22 | impl AllOne { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 23 | [INFO] [stdout] 24 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | fn inc(&mut self, key: String) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn dec(&mut self, key: String) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn get_max_key(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | fn get_min_key(&self) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bank` is never constructed [INFO] [stdout] --> part_2/src/bank.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct Bank { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_valid_account`, `transfer`, `deposit`, and `withdraw` are never used [INFO] [stdout] --> part_2/src/bank.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 12 | impl Bank { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 13 | [INFO] [stdout] 14 | fn new(balance: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 18 | fn is_valid_account(&self, account: i32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn transfer(&mut self, account1: i32, account2: i32, money: i64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn deposit(&mut self, account: i32, money: i64) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn withdraw(&mut self, account: i32, money: i64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Solution` is never constructed [INFO] [stdout] --> part_2/src/rand_point.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct Solution { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `rand_point` are never used [INFO] [stdout] --> part_2/src/rand_point.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 17 | impl Solution { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 18 | fn new(radius: f64, x_center: f64, y_center: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn rand_point(&mut self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement [INFO] [stdout] --> part_2/src/min_jumps.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | for indices in map.get(&arr[index]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(for_loops_over_fallibles)]` on by default [INFO] [stdout] help: to check pattern in a loop use `while let` [INFO] [stdout] | [INFO] [stdout] 37 - for indices in map.get(&arr[index]) { [INFO] [stdout] 37 + while let Some(indices) = map.get(&arr[index]) { [INFO] [stdout] | [INFO] [stdout] help: consider using `if let` to clear intent [INFO] [stdout] | [INFO] [stdout] 37 - for indices in map.get(&arr[index]) { [INFO] [stdout] 37 + if let Some(indices) = map.get(&arr[index]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `numToNode` should have a snake case name [INFO] [stdout] --> part_2/src/construct_maximum_binary_tree.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | let mut numToNode: Vec>>> = vec![None; 1001]; [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to snake case: `num_to_node` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `leftBranch` should have a snake case name [INFO] [stdout] --> part_2/src/construct_maximum_binary_tree.rs:38:25 [INFO] [stdout] | [INFO] [stdout] 38 | let mut leftBranch = numToNode[stack[index] as usize].clone(); [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `left_branch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `subRoot` should have a snake case name [INFO] [stdout] --> part_2/src/construct_maximum_binary_tree.rs:46:25 [INFO] [stdout] | [INFO] [stdout] 46 | let mut subRoot = TreeNode::new(num); [INFO] [stdout] | ^^^^^^^ help: convert the identifier to snake case: `sub_root` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `n` [INFO] [stdout] --> part_3/src/hardest_worker.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn hardest_worker(n: i32, logs: Vec>) -> i32 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `t` is never read [INFO] [stdout] --> part_3/src/store_water.rs:30:20 [INFO] [stdout] | [INFO] [stdout] 30 | if let Some((mut t, v, mut b)) = queue.pop() { [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: unused variable: `num_neg_ones` [INFO] [stdout] --> part_3/src/k_items_with_maximum_sum.rs:4:66 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn k_items_with_maximum_sum(num_ones: i32, num_zeros: i32, num_neg_ones: i32, k: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_neg_ones` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `CustomFunction` is more private than the item `find_solution::::find_solution` [INFO] [stdout] --> part_3/src/find_solution.rs:8:3 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn find_solution(customfunction: &dyn CustomFunction, z: i32) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ associated function `find_solution::::find_solution` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but trait `CustomFunction` is only usable at visibility `pub(self)` [INFO] [stdout] --> part_3/src/find_solution.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | trait CustomFunction { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AuthenticationManager` is never constructed [INFO] [stdout] --> part_3/src/autentication_manager.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct AuthenticationManager { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `generate`, `renew`, and `count_unexpired_tokens` are never used [INFO] [stdout] --> part_3/src/autentication_manager.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl AuthenticationManager { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 14 | fn new(timeToLive: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn generate(&mut self, token_id: String, mut current_time: i32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | fn renew(&mut self, token_id: String, current_time: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn count_unexpired_tokens(&self, current_time: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> part_3/src/next_larger_nodes.rs:11:6 [INFO] [stdout] | [INFO] [stdout] 9 | impl ListNode { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 10 | #[inline] [INFO] [stdout] 11 | fn new(val: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DinnerPlates` is never constructed [INFO] [stdout] --> part_3/src/dinner_plates.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct DinnerPlates { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, and `pop_at_stack` are never used [INFO] [stdout] --> part_3/src/dinner_plates.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl DinnerPlates { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 17 | fn new(capacity: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn push(&mut self, val: i32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | fn pop(&mut self) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 79 | fn pop_at_stack(&mut self, index: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LockingTree` is never constructed [INFO] [stdout] --> part_3/src/locking_tree.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct LockingTree { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `lock`, `unlock`, and `upgrade` are never used [INFO] [stdout] --> part_3/src/locking_tree.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 11 | impl LockingTree { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 12 | fn new(parent: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn lock(&mut self, num: i32, user: i32) -> bool { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | fn unlock(&mut self, num: i32, user: i32) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | fn upgrade(&mut self, num: i32, user: i32) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LRUCache` is never constructed [INFO] [stdout] --> part_3/src/lru_cache.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | struct LRUCache { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `put` are never used [INFO] [stdout] --> part_3/src/lru_cache.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 17 | impl LRUCache { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 18 | fn new(capacity: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | fn get(&mut self, key: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn put(&mut self, key: i32, value: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FrontMiddleBackQueue` is never constructed [INFO] [stdout] --> part_3/src/front_middle_back_queue.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | struct FrontMiddleBackQueue { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> part_3/src/front_middle_back_queue.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 9 | impl FrontMiddleBackQueue { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 10 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | fn push_front(&mut self, val: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | fn push_middle(&mut self, val: i32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn push_back(&mut self, val: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn pop_front(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn pop_middle(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | fn pop_back(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SmallestInfiniteSet` is never constructed [INFO] [stdout] --> part_3/src/smallest_infinite_set.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | struct SmallestInfiniteSet { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `pop_smallest`, and `add_back` are never used [INFO] [stdout] --> part_3/src/smallest_infinite_set.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 12 | impl SmallestInfiniteSet { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 13 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | fn pop_smallest(&mut self) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn add_back(&mut self, num: i32) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `timeToLive` should have a snake case name [INFO] [stdout] --> part_3/src/autentication_manager.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 14 | fn new(timeToLive: i32) -> Self { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `time_to_live` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling macros v0.1.0 (/opt/rustwide/workdir/macros) [INFO] [stdout] warning: struct `ArgLen` is never constructed [INFO] [stdout] --> macros/src/lib.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | struct ArgLen { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking rust-boilerplate v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `part_2::*` [INFO] [stdout] --> src/lib.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use part_2::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tests` [INFO] [stdout] --> src/find_max_average.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | #[cfg(tests)] [INFO] [stdout] | ^^^^^ help: there is a config with a similar name: `test` [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tests)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tests)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_range.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | sum_left: sum_left, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_range.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | sum_right: sum_right, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_region.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | sum_left: sum_left, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_region.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | sum_right: sum_right [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/nested_iterator.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | list: list [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_153.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | if mid > 0 && mid - 1 >= l { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid > l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_153.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | if mid + 1 <= r { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid < r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_154.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | if mid > 0 && mid - 1 >= l { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid > l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_154.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | if mid + 1 <= r { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid < r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/max_uncrossed_lines.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | if index >= j + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change it to: `index > j` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/h_index.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | while ret + 1 <= num && ret + 1 <= (citations.len() - i) as i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change it to: `ret < num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/h_index.rs:10:31 [INFO] [stdout] | [INFO] [stdout] 10 | while ret + 1 <= num && ret + 1 <= (citations.len() - i) as i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `ret < (citations.len() - i) as i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `part_2::*` [INFO] [stdout] --> src/lib.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use part_2::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `tests` [INFO] [stdout] --> src/find_max_average.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | #[cfg(tests)] [INFO] [stdout] | ^^^^^ help: there is a config with a similar name: `test` [INFO] [stdout] | [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tests)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(tests)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_range.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | sum_left: sum_left, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_range.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | sum_right: sum_right, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_region.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | sum_left: sum_left, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/sum_region.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | sum_right: sum_right [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum_right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/nested_iterator.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | list: list [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_153.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | if mid > 0 && mid - 1 >= l { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid > l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] = note: `#[warn(clippy::int_plus_one)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_153.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | if mid + 1 <= r { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid < r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_154.rs:18:19 [INFO] [stdout] | [INFO] [stdout] 18 | if mid > 0 && mid - 1 >= l { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid > l` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/find_min/solution_154.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | if mid + 1 <= r { [INFO] [stdout] | ^^^^^^^^^^^^ help: change it to: `mid < r` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/max_uncrossed_lines.rs:26:10 [INFO] [stdout] | [INFO] [stdout] 26 | if index >= j + 1 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change it to: `index > j` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/h_index.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | while ret + 1 <= num && ret + 1 <= (citations.len() - i) as i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change it to: `ret < num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `>= y + 1` or `x - 1 >=` [INFO] [stdout] --> src/h_index.rs:10:31 [INFO] [stdout] | [INFO] [stdout] 10 | while ret + 1 <= num && ret + 1 <= (citations.len() - i) as i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `ret < (citations.len() - i) as i32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#int_plus_one [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/reverse_between.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | while let Some(mut node) = cur { [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: struct `TimeMap` is never constructed [INFO] [stdout] --> src/time_map.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct TimeMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set`, and `get` are never used [INFO] [stdout] --> src/time_map.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl TimeMap { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn set(&mut self, key: String, value: String, timestamp: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn get(&self, key: String, timestamp: i32) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `ret_digits` [INFO] [stdout] --> src/monotone_increasing_digits.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | for k in j + 1..ret_digits.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 [INFO] [stdout] | [INFO] [stdout] 30 - for k in j + 1..ret_digits.len() { [INFO] [stdout] 30 + for in ret_digits.iter_mut().skip(j + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unique_paths.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return (ret / d) 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return (ret / d) as i32; [INFO] [stdout] 35 + (ret / d) as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unique_paths.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | return a; [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] 19 - return a; [INFO] [stdout] 19 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/unique_paths.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | return (ret / d) as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `(ret / d)` [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: the loop variable `i` is used to index `cost` [INFO] [stdout] --> src/min_cost_climbing_stairs.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 2..cost.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for i in 2..cost.len() { [INFO] [stdout] 8 + for (i, ) in cost.iter().enumerate().skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:41:18 [INFO] [stdout] | [INFO] [stdout] 41 | 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/zigzag_level_order.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | 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: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | 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: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | 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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/zigzag_level_order.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | while bfs.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bfs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/zigzag_level_order.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | / if let Some(item) = opt { [INFO] [stdout] 39 | | let node = item.borrow(); [INFO] [stdout] 40 | | if !is_rev { [INFO] [stdout] 41 | | if !node.left.is_none() { [INFO] [stdout] ... | [INFO] [stdout] 55 | | tmp.push(node.val); [INFO] [stdout] 56 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/zigzag_level_order.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(opt) = bfs.pop() { [INFO] [stdout] | ^^^ replace this binding [INFO] [stdout] 38 | if let Some(item) = opt { [INFO] [stdout] | ^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/max_profit_4.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | return if max_ret > ret { max_ret } else { ret }; [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] 38 - return if max_ret > ret { max_ret } else { ret }; [INFO] [stdout] 38 + if max_ret > ret { max_ret } else { ret } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/erase_overlap_intervals.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | if intervals.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `intervals.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `intervals` [INFO] [stdout] --> src/erase_overlap_intervals.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | for i in 1..intervals.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] 19 - for i in 1..intervals.len() { [INFO] [stdout] 19 + for in intervals.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return roll[0] + roll[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] 13 - return roll[0] + roll[1]; [INFO] [stdout] 13 + roll[0] + roll[1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `chars` [INFO] [stdout] --> src/large_group_positions.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | for i in 1..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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 11 - for i in 1..chars.len() { [INFO] [stdout] 11 + for (i, ) in chars.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/calc_equation.rs:19:50 [INFO] [stdout] | [INFO] [stdout] 19 | let mut m1 = graph.get(&g1.borrow().to_owned()).unwrap().borrow_mut(); [INFO] [stdout] | ^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/calc_equation.rs:20:46 [INFO] [stdout] | [INFO] [stdout] 20 | let m2 = graph.get(&g2.borrow().to_owned()).unwrap().borrow().to_owned(); [INFO] [stdout] | ^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/calc_equation.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | if g2.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!g2.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/find_circle_num.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return if !visited[i] { [INFO] [stdout] 15 | | visited[i] = true; [INFO] [stdout] 16 | | for j in 0..is_connected[i].len() { [INFO] [stdout] 17 | | if is_connected[i][j] == 1 && !visited[j] { [INFO] [stdout] ... | [INFO] [stdout] 21 | | 1 [INFO] [stdout] 22 | | } else { 0 } [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] 14 ~ if !visited[i] { [INFO] [stdout] 15 + visited[i] = true; [INFO] [stdout] 16 + for j in 0..is_connected[i].len() { [INFO] [stdout] 17 + if is_connected[i][j] == 1 && !visited[j] { [INFO] [stdout] 18 + Solution::dfs(is_connected, j, visited); [INFO] [stdout] 19 + } [INFO] [stdout] 20 + } [INFO] [stdout] 21 + 1 [INFO] [stdout] 22 + } else { 0 } [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/rotate.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn rotate(nums: &mut Vec, k: 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] 4 - pub fn rotate(nums: &mut Vec, k: i32) { [INFO] [stdout] 4 + pub fn rotate(nums: &mut [i32], k: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `nums` manually [INFO] [stdout] --> src/rotate.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / let tmp = nums[next_i]; [INFO] [stdout] 14 | | nums[next_i] = nums[target_i]; [INFO] [stdout] 15 | | nums[target_i] = tmp; [INFO] [stdout] | |_____________________________^ help: try: `nums.swap(next_i, target_i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sort_items.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 - return true; [INFO] [stdout] 80 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/sort_items.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | for item in tp[i as usize].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `tp[i as usize].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/sort_items.rs:67:11 [INFO] [stdout] | [INFO] [stdout] 67 | / if !has_add[item as usize] { [INFO] [stdout] 68 | | if !Solution::sort_items_dfs(item, new_group, has_add, tp, visited) { [INFO] [stdout] 69 | | return false; [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | } [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] 67 ~ if !has_add[item as usize] [INFO] [stdout] 68 ~ && !Solution::sort_items_dfs(item, new_group, has_add, tp, visited) { [INFO] [stdout] 69 | return false; [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/remove_stones.rs:37:22 [INFO] [stdout] | [INFO] [stdout] 37 | for m in groups[s].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `groups[s].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/accounts_merge.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | for i in 1..a.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] 11 - for i in 1..a.len() { [INFO] [stdout] 11 + for in a.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/accounts_merge.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | if map.insert(m.to_owned(), id) == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `map.insert(m.to_owned(), id).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `mails` [INFO] [stdout] --> src/accounts_merge.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for j in 0..mails.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] 27 - for j in 0..mails.len() { [INFO] [stdout] 27 + for in &mails { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/min_cost_connect_points.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | for m in groups[old_group_id].1.to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].1.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/maximum_product.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | return if left < right { right } else { left } [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] 10 - return if left < right { right } else { left } [INFO] [stdout] 10 + if left < right { right } else { left } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for i in 0..edges.len() { [INFO] [stdout] 7 + for (i, ) in edges.iter_mut().enumerate() { [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/find_critical_and_pseudo_critical_edges.rs:45:70 [INFO] [stdout] | [INFO] [stdout] 45 | fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &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] 45 - fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] 45 + fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &[Vec], i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [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/find_critical_and_pseudo_critical_edges.rs:45:98 [INFO] [stdout] | [INFO] [stdout] 45 | fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &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] 45 - fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] 45 + fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut [usize], groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | for i in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 47 - for i in 0..edges.len() { [INFO] [stdout] 47 + for (i, ) in edges.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | for item in groups[old_group_id].1.to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].1.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:81:38 [INFO] [stdout] | [INFO] [stdout] 81 | if groups[group_id].1.len() == n as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `n` [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: length comparison to zero [INFO] [stdout] --> src/add_to_array_form.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | if res != 0 || k_arr.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!k_arr.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `grid` [INFO] [stdout] --> src/regions_by_slashes.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..grid.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] 8 - for i in 0..grid.len() { [INFO] [stdout] 8 + for in &grid { [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/regions_by_slashes.rs:70:41 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usi... [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] 70 - pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] 70 + pub fn may_merge_group(grid_to_group: &mut [Vec>], groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [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/regions_by_slashes.rs:70:76 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usi... [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] 70 - pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] 70 + pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut [Vec<(usize, usize, usize)>], target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/regions_by_slashes.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 77 | for g in groups[old_group_id].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `r` and `l` manually [INFO] [stdout] --> src/num_equiv_domino_pairs.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / let tmp = r; [INFO] [stdout] 11 | | r = l; [INFO] [stdout] 12 | | l = tmp; [INFO] [stdout] | |________________^ help: try: `std::mem::swap(&mut r, &mut l);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | for j in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 21 - for j in 0..edges.len() { [INFO] [stdout] 21 + for (j, ) in edges.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:45:29 [INFO] [stdout] | [INFO] [stdout] 45 | for member in g[old_group_id].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `g[old_group_id].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `groups` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | for i in 0..2 { [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] 57 - for i in 0..2 { [INFO] [stdout] 57 + for in &groups { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `groups` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | for j in 0..groups[i].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] 59 - for j in 0..groups[i].len() { [INFO] [stdout] 59 + for in groups.iter().take(groups[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `unused_edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:72:14 [INFO] [stdout] | [INFO] [stdout] 72 | for i in 0..2 { [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] 72 - for i in 0..2 { [INFO] [stdout] 72 + for in &unused_edges { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `unused_edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | for j in 0..unused_edges[i].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] 73 - for j in 0..unused_edges[i].len() { [INFO] [stdout] 73 + for in unused_edges.iter().take(unused_edges[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/pivot_index.rs:9:33 [INFO] [stdout] | [INFO] [stdout] 9 | let mut right = nums.iter().fold(0, |acc, num| { acc + num }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/minimum_effort_path.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return dp[m - 1][n - 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] 30 - return dp[m - 1][n - 1]; [INFO] [stdout] 30 + dp[m - 1][n - 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/fair_candy_swap.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | let sum1 = a.iter().fold(0, |acc, item| { acc + item }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/fair_candy_swap.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | let sum2 = b.iter().fold(0, |acc, item| { acc + item }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/fair_candy_swap.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 0..a.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] 12 - for i in 0..a.len() { [INFO] [stdout] 12 + for in &a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/median_sliding_window.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..k as usize { [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] 8 - for i in 0..k as usize { [INFO] [stdout] 8 + for in nums.iter().take(k as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/longest_ones.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return if ret > a.len() as i32 { a.len() as i32 } else { ret }; [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] 41 - return if ret > a.len() as i32 { a.len() as i32 } else { ret }; [INFO] [stdout] 41 + if ret > a.len() as i32 { a.len() as i32 } else { ret } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `a` [INFO] [stdout] --> src/longest_ones.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for j in 0..a.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for j in 0..a.len() { [INFO] [stdout] 7 + for (j, ) in a.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/find_shortest_sub_array.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return num_map[degree_i].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] 26 - return num_map[degree_i].1; [INFO] [stdout] 26 + num_map[degree_i].1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nums` [INFO] [stdout] --> src/find_shortest_sub_array.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 1..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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 10 - for i in 1..nums.len() { [INFO] [stdout] 10 + for (i, ) in nums.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/find_shortest_sub_array.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | / if num != degree_i { [INFO] [stdout] 21 | | if num_map[num].2 > num_map[degree_i].2 || (num_map[num].2 == num_map[degree_i].2 && num_map[num].1 < num_map[degree_i].1) { [INFO] [stdout] 22 | | degree_i = num; [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ if num != degree_i [INFO] [stdout] 21 ~ && (num_map[num].2 > num_map[degree_i].2 || (num_map[num].2 == num_map[degree_i].2 && num_map[num].1 < num_map[degree_i].1)) { [INFO] [stdout] 22 | degree_i = num; [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/longest_subarray.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return ret 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] 26 - return ret as i32; [INFO] [stdout] 26 + ret as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/is_toeplitz_matrix.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | 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] 27 - return true; [INFO] [stdout] 27 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/max_satisfied.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | return acc; [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] 9 - return acc; [INFO] [stdout] 9 + acc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/max_satisfied.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return acc; [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] 36 - return acc; [INFO] [stdout] 36 + acc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/flip_and_invert_image.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | return a; [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] 19 - return a; [INFO] [stdout] 19 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..m { [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] 7 - for i in 0..m { [INFO] [stdout] 7 + for in a.iter_mut().take(m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `a[i]` manually [INFO] [stdout] --> src/flip_and_invert_image.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | / let tmp = a[i][j]; [INFO] [stdout] 10 | | a[i][j] = a[i][n - 1 - j]; [INFO] [stdout] 11 | | a[i][n - 1 - j] = tmp; [INFO] [stdout] | |________________________________^ help: try: `a[i].swap(j, n - 1 - j);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..m { [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] 14 - for i in 0..m { [INFO] [stdout] 14 + for in a.iter_mut().take(m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | for j in 0..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] 15 - for j in 0..n { [INFO] [stdout] 15 + for in a.iter_mut().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transpose.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | return ret; [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] 12 - return ret; [INFO] [stdout] 12 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sum_range.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | / return self.sum_left[self.sum_left.len() - 1] - [INFO] [stdout] 38 | | (if i > 0 { self.sum_left[i as usize - 1] } else { 0 }) [INFO] [stdout] 39 | | - (if j < self.sum_right.len() as i32 - 1 { self.sum_right[j as usize + 1] } else { 0 }) [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] 37 ~ self.sum_left[self.sum_left.len() - 1] - [INFO] [stdout] 38 + (if i > 0 { self.sum_left[i as usize - 1] } else { 0 }) [INFO] [stdout] 39 + - (if j < self.sum_right.len() as i32 - 1 { self.sum_right[j as usize + 1] } else { 0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sum_region.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | return ret; [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] 45 - return ret; [INFO] [stdout] 45 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `envelopes` [INFO] [stdout] --> src/max_envelopes.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 19 | for i in 0..envelopes.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] 19 - for i in 0..envelopes.len() { [INFO] [stdout] 19 + for in &envelopes { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/remove_duplicates/solution_1047.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 1..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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 8 - for i in 1..chars.len() { [INFO] [stdout] 8 + for in chars.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/remove_duplicates/solution_80.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | / if count == 2 { [INFO] [stdout] 9 | | if nums[i] == nums[i - 1] { [INFO] [stdout] 10 | | continue [INFO] [stdout] 11 | | } [INFO] [stdout] 12 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 8 ~ if count == 2 [INFO] [stdout] 9 ~ && nums[i] == nums[i - 1] { [INFO] [stdout] 10 | continue [INFO] [stdout] 11 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 22 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 23 | r.unwrap() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate.rs:34:27 [INFO] [stdout] | [INFO] [stdout] 33 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 34 | let num = r.unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate.rs:55:46 [INFO] [stdout] | [INFO] [stdout] 55 | while index + 1 < chars.len() && chars[index + 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `chars[index + 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate2.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 23 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 24 | r.unwrap() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate2.rs:35:27 [INFO] [stdout] | [INFO] [stdout] 34 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 35 | let num = r.unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate2.rs:57:46 [INFO] [stdout] | [INFO] [stdout] 57 | while index + 1 < chars.len() && chars[index + 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `chars[index + 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculate2.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | / if stack.len() > 2 { [INFO] [stdout] 71 | | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] 72 | | let right = stack[stack.len() - 1].parse::().unwrap(); [INFO] [stdout] 73 | | let left = stack[stack.len() - 3].parse::().unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ if stack.len() > 2 [INFO] [stdout] 71 ~ && (stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string()) { [INFO] [stdout] 72 | let right = stack[stack.len() - 1].parse::().unwrap(); [INFO] [stdout] ... [INFO] [stdout] 82 | stack.push(res.to_string()); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:71:40 [INFO] [stdout] | [INFO] [stdout] 71 | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"*"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:71:85 [INFO] [stdout] | [INFO] [stdout] 71 | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"/"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:75:44 [INFO] [stdout] | [INFO] [stdout] 75 | if stack[stack.len() - 2] == "*".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"*"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `matrix` [INFO] [stdout] --> src/spiral_order.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | for i in ranges[1][0]..ranges[1][1] { [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] 15 - for i in ranges[1][0]..ranges[1][1] { [INFO] [stdout] 15 + for in matrix.iter().take(ranges[1][1]).skip(ranges[1][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `matrix` [INFO] [stdout] --> src/spiral_order.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | for i in ranges[0][0]..ranges[0][1] { [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] 25 - for i in ranges[0][0]..ranges[0][1] { [INFO] [stdout] 25 + for in matrix.iter().take(ranges[0][1]).skip(ranges[0][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ret` [INFO] [stdout] --> src/generate_matrix.rs:16:20 [INFO] [stdout] | [INFO] [stdout] 16 | for i in ranges[1][0]..ranges[1][1] { [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] 16 - for i in ranges[1][0]..ranges[1][1] { [INFO] [stdout] 16 + for in ret.iter_mut().take(ranges[1][1]).skip(ranges[1][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ret` [INFO] [stdout] --> src/generate_matrix.rs:27:20 [INFO] [stdout] | [INFO] [stdout] 27 | for i in ranges[0][0]..ranges[0][1] { [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] 27 - for i in ranges[0][0]..ranges[0][1] { [INFO] [stdout] 27 + for in ret.iter_mut().take(ranges[0][1]).skip(ranges[0][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/num_distinct.rs:43:43 [INFO] [stdout] | [INFO] [stdout] 43 | dp[index][t_chars.len() - 1..].iter().fold(0, |acc, num| { acc + num }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | 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] 31 ~ false [INFO] [stdout] 32 | } else { [INFO] [stdout] 33 | return true; [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | 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] 33 ~ true [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | 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] 36 - return false; [INFO] [stdout] 36 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/search_matrix.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | / if i == -1 { [INFO] [stdout] 31 | | return false; [INFO] [stdout] 32 | | } else { [INFO] [stdout] 33 | | return true; [INFO] [stdout] 34 | | }; [INFO] [stdout] | |_______^ help: you can reduce it to: `return i != -1` [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 `j` is only used to index `height` [INFO] [stdout] --> src/trap.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | for j in start + 1..i-1 { [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] 14 - for j in start + 1..i-1 { [INFO] [stdout] 14 + for in height.iter_mut().take(i-1).skip(start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/trap.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 27 | } else if height[i] - height[i - 1] > 0 { [INFO] [stdout] | ______________^ [INFO] [stdout] 28 | | if dir != 1 { [INFO] [stdout] 29 | | dir = 1; [INFO] [stdout] 30 | | } [INFO] [stdout] 31 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 27 ~ } else if height[i] - height[i - 1] > 0 [INFO] [stdout] 28 ~ && dir != 1 { [INFO] [stdout] 29 | dir = 1; [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/search.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | return Solution::_binary_search(&nums, target, left as i32, mid as i32 - 1) != -1; [INFO] [stdout] | ^^^^^ help: change this to: `nums` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/search.rs:23:41 [INFO] [stdout] | [INFO] [stdout] 23 | return Solution::_binary_search(&nums, target, mid as i32 + 1, right as i32) != -1; [INFO] [stdout] | ^^^^^ help: change this to: `nums` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/search.rs:41:27 [INFO] [stdout] | [INFO] [stdout] 41 | fn _binary_search(nums: &Vec, target: i32, left: i32, right: 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] 41 - fn _binary_search(nums: &Vec, target: i32, left: i32, right: i32) -> i32 { [INFO] [stdout] 41 + fn _binary_search(nums: &[i32], target: i32, left: i32, right: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/min_diff_in_bst.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | while !cur.is_none() || !stack.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `cur.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/min_diff_in_bst.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | if !top_node.right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `top_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: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 30 - for i in 0..chars.len() { [INFO] [stdout] 30 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/trie.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if !cur.children.contains_key(&chars[i]) { [INFO] [stdout] 32 | | cur.children.insert(chars[i], Trie::new()); [INFO] [stdout] 33 | | } [INFO] [stdout] | |_________^ help: try: `cur.children.entry(chars[i]).or_insert_with(|| Trie::new());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 44 - for i in 0..chars.len() { [INFO] [stdout] 44 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 58 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 58 - for i in 0..chars.len() { [INFO] [stdout] 58 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/rob.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 1..nums.len() - 1 { [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] 10 - for i in 1..nums.len() - 1 { [INFO] [stdout] 10 + for in nums.iter().take(nums.len() - 1).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/rob.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 2..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] 20 - for i in 2..nums.len() { [INFO] [stdout] 20 + for in nums.iter().skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/is_scramble.rs:16:14 [INFO] [stdout] | [INFO] [stdout] 16 | return if dp[i1][i2][len - 1] == 1 { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `dp[i1][i2][len - 1] == 1` [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/is_scramble.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | / if count1 == 0 && i != len - 1 { [INFO] [stdout] 67 | | if Solution::is_scramble_dfs(chars1, chars2, i1, i2, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i... [INFO] [stdout] 68 | | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 69 | | return true [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 66 ~ if count1 == 0 && i != len - 1 [INFO] [stdout] 67 ~ && Solution::is_scramble_dfs(chars1, chars2, i1, i2, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i2 + i + 1, len - i - 1, dp) { [INFO] [stdout] 68 | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 69 | return true [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/is_scramble.rs:73:7 [INFO] [stdout] | [INFO] [stdout] 73 | / if count2 == 0 && i != len - 1 { [INFO] [stdout] 74 | | if Solution::is_scramble_dfs(chars1, chars2, i1, i2 + len - 1 - i, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2,... [INFO] [stdout] 75 | | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 76 | | return true [INFO] [stdout] 77 | | } [INFO] [stdout] 78 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 73 ~ if count2 == 0 && i != len - 1 [INFO] [stdout] 74 ~ && Solution::is_scramble_dfs(chars1, chars2, i1, i2 + len - 1 - i, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i2, len - i - 1, dp) { [INFO] [stdout] 75 | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 76 | return true [INFO] [stdout] 77 ~ } [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/remove_element.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn remove_element(nums: &mut Vec, val: 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] 4 - pub fn remove_element(nums: &mut Vec, val: i32) -> i32 { [INFO] [stdout] 4 + pub fn remove_element(nums: &mut [i32], val: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `dp` [INFO] [stdout] --> src/max_sum_submatrix.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..matrix.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for i in 0..matrix.len() { [INFO] [stdout] 7 + for (i, ) in dp.iter_mut().enumerate().take(matrix.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `dp` [INFO] [stdout] --> src/max_sum_submatrix.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for j in 0..matrix[0].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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for j in 0..matrix[0].len() { [INFO] [stdout] 8 + for (j, ) in dp.iter_mut().enumerate().take(matrix[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/max_sum_submatrix.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 49 | / if index < row_sum.len() { [INFO] [stdout] 50 | | if s - row_sum[index] > ret || ret > k { [INFO] [stdout] 51 | | ret = s - row_sum[index]; [INFO] [stdout] 52 | | if ret == k { [INFO] [stdout] ... | [INFO] [stdout] 56 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if index < row_sum.len() [INFO] [stdout] 50 ~ && (s - row_sum[index] > ret || ret > k) { [INFO] [stdout] 51 | ret = s - row_sum[index]; [INFO] [stdout] ... [INFO] [stdout] 54 | } [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/largest_divisible_subset.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / if num % divisor == 0 { [INFO] [stdout] 20 | | if j <= r && nums[j] == target && (dp[j].len() > dp[k].len() || k == i) { [INFO] [stdout] 21 | | k = j; [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 19 ~ if num % divisor == 0 [INFO] [stdout] 20 ~ && j <= r && nums[j] == target && (dp[j].len() > dp[k].len() || k == i) { [INFO] [stdout] 21 | k = j; [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/increasing_bst.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | ret.unwrap().borrow().right.clone() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/increasing_bst.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | let ret = Some(Rc::new(RefCell::new(TreeNode::new(0)))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_literal_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `weights` [INFO] [stdout] --> src/ship_within_days.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | for i in 0..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_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 13 - for i in 0..n as usize { [INFO] [stdout] 13 + for (i, ) in weights.iter().enumerate().take(n as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/ship_within_days.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | left as i32 [INFO] [stdout] | ^^^^^^^^^^^ help: try: `left` [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 `stones` [INFO] [stdout] --> src/can_cross.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 0..stones.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] 9 - for i in 0..stones.len() { [INFO] [stdout] 9 + for in &stones { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `stones` [INFO] [stdout] --> src/can_cross.rs:14:14 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..stones.len() - 1 { [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] 14 - for i in 0..stones.len() - 1 { [INFO] [stdout] 14 + for in stones.iter().take(stones.len() - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/single_number.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | b = b ^ num & !a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `b ^= num & !a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/single_number.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | a = a ^ num & !b; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `a ^= num & !b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nodes` [INFO] [stdout] --> src/is_cousins.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | for i in 0..nodes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 30 - for i in 0..nodes.len() { [INFO] [stdout] 30 + for (i, ) in nodes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/is_cousins.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | / if i as i32 == first + 1 && first & 1 == 0 { [INFO] [stdout] 40 | | return false; [INFO] [stdout] 41 | | } else { [INFO] [stdout] 42 | | return true; [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `return !(i as i32 == first + 1 && first & 1 == 0)` [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: the loop variable `j` is used to index `arr` [INFO] [stdout] --> src/count_triplets.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for j in i + 1..arr.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for j in i + 1..arr.len() { [INFO] [stdout] 8 + for (j, ) in arr.iter().enumerate().skip(i + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/top_k_frequent.rs:58:30 [INFO] [stdout] | [INFO] [stdout] 58 | fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [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] 58 - fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [INFO] [stdout] 58 + fn is_alpha_bigger(word_1: &str, word_2: &String) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/top_k_frequent.rs:58:47 [INFO] [stdout] | [INFO] [stdout] 58 | fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [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] 58 - fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [INFO] [stdout] 58 + fn is_alpha_bigger(word_1: &String, word_2: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/min_changes.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | for j in (i..nums.len() as usize).step_by(k as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `nums.len()` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/min_changes.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | for j in (i..nums.len() as usize).step_by(k as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `nums.len()` [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 `chars` [INFO] [stdout] --> src/reverse_parentheses.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 10 - for i in 0..chars.len() { [INFO] [stdout] 10 + for in &chars { [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/reverse_parentheses.rs:37:30 [INFO] [stdout] | [INFO] [stdout] 37 | fn reverse_char_seq(chars: &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] 37 - fn reverse_char_seq(chars: &mut Vec) { [INFO] [stdout] 37 + fn reverse_char_seq(chars: &mut [char]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nums` [INFO] [stdout] --> src/find_max_length.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | 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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 11 - for i in 0..nums.len() { [INFO] [stdout] 11 + for (i, ) in nums.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `points` [INFO] [stdout] --> src/max_points.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | for j in 0..i { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 13 - for j in 0..i { [INFO] [stdout] 13 + for (j, ) in points.iter().enumerate().take(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/max_points.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / if line_to_count.contains_key(&hash) { [INFO] [stdout] 28 | | let pair = line_to_count.get_mut(&hash).unwrap(); [INFO] [stdout] 29 | | if pair.1 != i { [INFO] [stdout] 30 | | pair.0 += 1; [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/open_lock.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | 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] 70 - return -1; [INFO] [stdout] 70 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `routes` [INFO] [stdout] --> src/num_buses_to_destination.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 0..routes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 9 - for i in 0..routes.len() { [INFO] [stdout] 9 + for (i, ) in routes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/convert_to_title.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | column_number = column_number / 26; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `column_number /= 26` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/count_of_atoms.rs:13:20 [INFO] [stdout] | [INFO] [stdout] 13 | ret.push_str(&atom.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `atom.as_str()` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/count_of_atoms.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | if (c >= 'A' && c <= 'Z') || index == chars.len() || c == ')' || c == '(' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('A'..='Z').contains(&c)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/count_of_atoms.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | } else if c >= '0' && c <= '9' { [INFO] [stdout] | ______________^ [INFO] [stdout] 81 | | if digit_from == -1 { [INFO] [stdout] 82 | | if from != -1 { [INFO] [stdout] 83 | | temp_str = chars[from as usize..index].iter().collect(); [INFO] [stdout] ... | [INFO] [stdout] 88 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ } else if c >= '0' && c <= '9' [INFO] [stdout] 81 ~ && digit_from == -1 { [INFO] [stdout] 82 | if from != -1 { [INFO] [stdout] ... [INFO] [stdout] 86 | digit_from = index as i32; [INFO] [stdout] 87 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/count_of_atoms.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 80 | } else if c >= '0' && c <= '9' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `('0'..='9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/display_table.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | / if !table_to_dishes.contains_key(&table) { [INFO] [stdout] 15 | | table_to_dishes.insert(table, HashMap::new()); [INFO] [stdout] 16 | | } [INFO] [stdout] | |_______^ help: try: `table_to_dishes.entry(table).or_insert_with(|| HashMap::new());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/count_pairs.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | / if !num_to_count.contains_key(&d) { [INFO] [stdout] 14 | | num_to_count.insert(d, 0); [INFO] [stdout] 15 | | unique.push(d); [INFO] [stdout] 16 | | if d > max { [INFO] [stdout] ... | [INFO] [stdout] 19 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 13 ~ if let std::collections::hash_map::Entry::Vacant(e) = num_to_count.entry(d) { [INFO] [stdout] 14 + e.insert(0); [INFO] [stdout] 15 + unique.push(d); [INFO] [stdout] 16 + if d > max { [INFO] [stdout] 17 + max = d; [INFO] [stdout] 18 + } [INFO] [stdout] 19 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `unique` [INFO] [stdout] --> src/count_pairs.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | for i in 0..unique.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] 23 - for i in 0..unique.len() { [INFO] [stdout] 23 + for in &unique { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/get_skyline.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | if !(!ret.is_empty() && ret[ret.len() - 1][1] == next_num) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ret.is_empty() || ret[ret.len() - 1][1] != next_num` [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: the loop variable `i` is only used to index `prefix_sum` [INFO] [stdout] --> src/is_covered.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | for i in r + 1..prefix_sum.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] 12 - for i in r + 1..prefix_sum.len() { [INFO] [stdout] 12 + for in prefix_sum.iter_mut().skip(r + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target` [INFO] [stdout] --> src/min_operations.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 0..target.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 10 - for i in 0..target.len() { [INFO] [stdout] 10 + for (i, ) in target.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/distance_k.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | 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] 56 - return false; [INFO] [stdout] 56 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/find_unsorted_subarray.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 1..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] 9 - for i in 1..nums.len() { [INFO] [stdout] 9 + for in nums.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `nums` [INFO] [stdout] --> src/find_unsorted_subarray.rs:31:20 [INFO] [stdout] | [INFO] [stdout] 31 | for j in i + 1..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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 31 - for j in i + 1..nums.len() { [INFO] [stdout] 31 + for (j, ) in nums.iter().enumerate().skip(i + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `node_to_dep_count` [INFO] [stdout] --> src/eventual_safe_nodes.rs:31:14 [INFO] [stdout] | [INFO] [stdout] 31 | for i in 0..node_to_dep_count.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 31 - for i in 0..node_to_dep_count.len() { [INFO] [stdout] 31 + for (i, ) in node_to_dep_count.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `step_count` [INFO] [stdout] --> src/shortest_path_length.rs:34:16 [INFO] [stdout] | [INFO] [stdout] 34 | for i in 0..graph.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] 34 - for i in 0..graph.len() { [INFO] [stdout] 34 + for in step_count.iter().take(graph.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `primes` [INFO] [stdout] --> src/nth_super_ugly_number.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 0..primes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 12 - for i in 0..primes.len() { [INFO] [stdout] 12 + for (i, ) in primes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/number_of_arithmetic_slices/solution_446.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / if !dp[i].contains_key(&delta) { [INFO] [stdout] 15 | | dp[i].insert(delta, 1); [INFO] [stdout] 16 | | } [INFO] [stdout] | |_________^ help: try: `dp[i].entry(delta).or_insert(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/number_of_arithmetic_slices/solution_446.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / if !counter.contains_key(&delta) { [INFO] [stdout] 31 | | counter.insert(delta, 0); [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________^ help: try: `counter.entry(delta).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/count_arrangement.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | num_to_options[res as usize].push(i); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `{ res }` [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 `num_to_options` [INFO] [stdout] --> src/count_arrangement.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 1..num_to_options.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] 20 - for i in 1..num_to_options.len() { [INFO] [stdout] 20 + for in num_to_options.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/count_arrangement.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | / if !new_dp.contains_key(&key) { [INFO] [stdout] 27 | | new_dp.insert(key, 0); [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____________^ help: try: `new_dp.entry(key).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/reverse_vowels.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / if j > 0 { [INFO] [stdout] 31 | | j -= 1; [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________^ help: try: `j = j.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/reverse_str.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / if j != 0 { [INFO] [stdout] 17 | | j -= 1; [INFO] [stdout] 18 | | } [INFO] [stdout] | |_________^ help: try: `j = j.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `changes` [INFO] [stdout] --> src/best_rotation.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | for i in 1..changes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 30 - for i in 1..changes.len() { [INFO] [stdout] 30 + for (i, ) in changes.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/is_scramble.rs:32:20 [INFO] [stdout] | [INFO] [stdout] 32 | let mut head = vec![0;26]; [INFO] [stdout] | ^^^^^^^^^^ help: you can use an array directly: `[0; 26]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/is_scramble.rs:34:20 [INFO] [stdout] | [INFO] [stdout] 34 | let mut tail = vec![0;26]; [INFO] [stdout] | ^^^^^^^^^^ help: you can use an array directly: `[0; 26]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/reverse_between.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | while let Some(mut node) = cur { [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: struct `TimeMap` is never constructed [INFO] [stdout] --> src/time_map.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct TimeMap { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `set`, and `get` are never used [INFO] [stdout] --> src/time_map.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl TimeMap { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn set(&mut self, key: String, value: String, timestamp: i32) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn get(&self, key: String, timestamp: i32) -> String { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `k` is only used to index `ret_digits` [INFO] [stdout] --> src/monotone_increasing_digits.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | for k in j + 1..ret_digits.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 [INFO] [stdout] | [INFO] [stdout] 30 - for k in j + 1..ret_digits.len() { [INFO] [stdout] 30 + for in ret_digits.iter_mut().skip(j + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unique_paths.rs:35:9 [INFO] [stdout] | [INFO] [stdout] 35 | return (ret / d) 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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 35 - return (ret / d) as i32; [INFO] [stdout] 35 + (ret / d) as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/unique_paths.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | return a; [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] 19 - return a; [INFO] [stdout] 19 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/unique_paths.rs:35:16 [INFO] [stdout] | [INFO] [stdout] 35 | return (ret / d) as i32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `(ret / d)` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/word_pattern.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | assert_eq!(Solution::word_pattern("abba".to_owned(), "dog cat cat dog".to_owned()), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 39 - assert_eq!(Solution::word_pattern("abba".to_owned(), "dog cat cat dog".to_owned()), true); [INFO] [stdout] 39 + assert!(Solution::word_pattern("abba".to_owned(), "dog cat cat dog".to_owned())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/word_pattern.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | assert_eq!(Solution::word_pattern("abba".to_owned(), "dog cat cat fish".to_owned()), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 40 - assert_eq!(Solution::word_pattern("abba".to_owned(), "dog cat cat fish".to_owned()), false); [INFO] [stdout] 40 + assert!(!Solution::word_pattern("abba".to_owned(), "dog cat cat fish".to_owned())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/word_pattern.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | assert_eq!(Solution::word_pattern("aaaa".to_owned(), "dog cat cat dog".to_owned()), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 41 - assert_eq!(Solution::word_pattern("aaaa".to_owned(), "dog cat cat dog".to_owned()), false); [INFO] [stdout] 41 + assert!(!Solution::word_pattern("aaaa".to_owned(), "dog cat cat dog".to_owned())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/word_pattern.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | assert_eq!(Solution::word_pattern("abba".to_owned(), "dog dog dog dog".to_owned()), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 42 - assert_eq!(Solution::word_pattern("abba".to_owned(), "dog dog dog dog".to_owned()), false); [INFO] [stdout] 42 + assert!(!Solution::word_pattern("abba".to_owned(), "dog dog dog dog".to_owned())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `cost` [INFO] [stdout] --> src/min_cost_climbing_stairs.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 2..cost.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for i in 2..cost.len() { [INFO] [stdout] 8 + for (i, ) in cost.iter().enumerate().skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:41:18 [INFO] [stdout] | [INFO] [stdout] 41 | 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/zigzag_level_order.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | 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: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | 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: this boolean expression can be simplified [INFO] [stdout] --> src/zigzag_level_order.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | 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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/zigzag_level_order.rs:32:11 [INFO] [stdout] | [INFO] [stdout] 32 | while bfs.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!bfs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `if let` [INFO] [stdout] --> src/zigzag_level_order.rs:38:11 [INFO] [stdout] | [INFO] [stdout] 38 | / if let Some(item) = opt { [INFO] [stdout] 39 | | let node = item.borrow(); [INFO] [stdout] 40 | | if !is_rev { [INFO] [stdout] 41 | | if !node.left.is_none() { [INFO] [stdout] ... | [INFO] [stdout] 55 | | tmp.push(node.val); [INFO] [stdout] 56 | | } [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/zigzag_level_order.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | if let Some(opt) = bfs.pop() { [INFO] [stdout] | ^^^ replace this binding [INFO] [stdout] 38 | if let Some(item) = opt { [INFO] [stdout] | ^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `val` after checking its variant with `is_none` [INFO] [stdout] --> src/zigzag_level_order.rs:72:78 [INFO] [stdout] | [INFO] [stdout] 72 | if val.is_none() { None } else { Some(Rc::new(RefCell::new(TreeNode::new(val.unwrap())))) } [INFO] [stdout] | ---------------- help: try: `if let Some() = val` ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/zigzag_level_order.rs:97:26 [INFO] [stdout] | [INFO] [stdout] 97 | dfs(tree.clone(), 0, &arr); [INFO] [stdout] | ^^^^ help: change this to: `arr` [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: unneeded `return` statement [INFO] [stdout] --> src/max_profit_4.rs:38:7 [INFO] [stdout] | [INFO] [stdout] 38 | return if max_ret > ret { max_ret } else { ret }; [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] 38 - return if max_ret > ret { max_ret } else { ret }; [INFO] [stdout] 38 + if max_ret > ret { max_ret } else { ret } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/erase_overlap_intervals.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | if intervals.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `intervals.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `intervals` [INFO] [stdout] --> src/erase_overlap_intervals.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | for i in 1..intervals.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] 19 - for i in 1..intervals.len() { [INFO] [stdout] 19 + for in intervals.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fib.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | return roll[0] + roll[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] 13 - return roll[0] + roll[1]; [INFO] [stdout] 13 + roll[0] + roll[1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `chars` [INFO] [stdout] --> src/large_group_positions.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | for i in 1..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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 11 - for i in 1..chars.len() { [INFO] [stdout] 11 + for (i, ) in chars.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/calc_equation.rs:19:50 [INFO] [stdout] | [INFO] [stdout] 19 | let mut m1 = graph.get(&g1.borrow().to_owned()).unwrap().borrow_mut(); [INFO] [stdout] | ^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/calc_equation.rs:20:46 [INFO] [stdout] | [INFO] [stdout] 20 | let m2 = graph.get(&g2.borrow().to_owned()).unwrap().borrow().to_owned(); [INFO] [stdout] | ^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/calc_equation.rs:39:10 [INFO] [stdout] | [INFO] [stdout] 39 | if g2.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!g2.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/calc_equation.rs:96:13 [INFO] [stdout] | [INFO] [stdout] 96 | arr_str.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/calc_equation.rs:98:11 [INFO] [stdout] | [INFO] [stdout] 98 | a.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/find_circle_num.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | / return if !visited[i] { [INFO] [stdout] 15 | | visited[i] = true; [INFO] [stdout] 16 | | for j in 0..is_connected[i].len() { [INFO] [stdout] 17 | | if is_connected[i][j] == 1 && !visited[j] { [INFO] [stdout] ... | [INFO] [stdout] 21 | | 1 [INFO] [stdout] 22 | | } else { 0 } [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] 14 ~ if !visited[i] { [INFO] [stdout] 15 + visited[i] = true; [INFO] [stdout] 16 + for j in 0..is_connected[i].len() { [INFO] [stdout] 17 + if is_connected[i][j] == 1 && !visited[j] { [INFO] [stdout] 18 + Solution::dfs(is_connected, j, visited); [INFO] [stdout] 19 + } [INFO] [stdout] 20 + } [INFO] [stdout] 21 + 1 [INFO] [stdout] 22 + } else { 0 } [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/rotate.rs:4:23 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn rotate(nums: &mut Vec, k: 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] 4 - pub fn rotate(nums: &mut Vec, k: i32) { [INFO] [stdout] 4 + pub fn rotate(nums: &mut [i32], k: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `nums` manually [INFO] [stdout] --> src/rotate.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / let tmp = nums[next_i]; [INFO] [stdout] 14 | | nums[next_i] = nums[target_i]; [INFO] [stdout] 15 | | nums[target_i] = tmp; [INFO] [stdout] | |_____________________________^ help: try: `nums.swap(next_i, target_i);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] = note: `#[warn(clippy::manual_swap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sort_items.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | 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] 80 - return true; [INFO] [stdout] 80 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/sort_items.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | for item in tp[i as usize].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `tp[i as usize].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/sort_items.rs:67:11 [INFO] [stdout] | [INFO] [stdout] 67 | / if !has_add[item as usize] { [INFO] [stdout] 68 | | if !Solution::sort_items_dfs(item, new_group, has_add, tp, visited) { [INFO] [stdout] 69 | | return false; [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | } [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] 67 ~ if !has_add[item as usize] [INFO] [stdout] 68 ~ && !Solution::sort_items_dfs(item, new_group, has_add, tp, visited) { [INFO] [stdout] 69 | return false; [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/remove_stones.rs:37:22 [INFO] [stdout] | [INFO] [stdout] 37 | for m in groups[s].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `groups[s].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/accounts_merge.rs:11:16 [INFO] [stdout] | [INFO] [stdout] 11 | for i in 1..a.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] 11 - for i in 1..a.len() { [INFO] [stdout] 11 + for in a.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/accounts_merge.rs:21:14 [INFO] [stdout] | [INFO] [stdout] 21 | if map.insert(m.to_owned(), id) == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `map.insert(m.to_owned(), id).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `mails` [INFO] [stdout] --> src/accounts_merge.rs:27:18 [INFO] [stdout] | [INFO] [stdout] 27 | for j in 0..mails.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] 27 - for j in 0..mails.len() { [INFO] [stdout] 27 + for in &mails { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/min_cost_connect_points.rs:44:22 [INFO] [stdout] | [INFO] [stdout] 44 | for m in groups[old_group_id].1.to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].1.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/maximum_product.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | return if left < right { right } else { left } [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] 10 - return if left < right { right } else { left } [INFO] [stdout] 10 + if left < right { right } else { left } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for i in 0..edges.len() { [INFO] [stdout] 7 + for (i, ) in edges.iter_mut().enumerate() { [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/find_critical_and_pseudo_critical_edges.rs:45:70 [INFO] [stdout] | [INFO] [stdout] 45 | fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &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] 45 - fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] 45 + fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &[Vec], i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [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/find_critical_and_pseudo_critical_edges.rs:45:98 [INFO] [stdout] | [INFO] [stdout] 45 | fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &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] 45 - fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut Vec, groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] 45 + fn find_critical_and_pseudo_critical_edges_search(n: usize, edges: &Vec>, i_to_group: &mut [usize], groups: &mut Vec<(i32, Vec)>, skip: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `edges` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:47:14 [INFO] [stdout] | [INFO] [stdout] 47 | for i in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 47 - for i in 0..edges.len() { [INFO] [stdout] 47 + for (i, ) in edges.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | for item in groups[old_group_id].1.to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].1.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/find_critical_and_pseudo_critical_edges.rs:81:38 [INFO] [stdout] | [INFO] [stdout] 81 | if groups[group_id].1.len() == n as usize { [INFO] [stdout] | ^^^^^^^^^^ help: try: `n` [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: length comparison to zero [INFO] [stdout] --> src/add_to_array_form.rs:9:24 [INFO] [stdout] | [INFO] [stdout] 9 | if res != 0 || k_arr.len() != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!k_arr.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `grid` [INFO] [stdout] --> src/regions_by_slashes.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..grid.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] 8 - for i in 0..grid.len() { [INFO] [stdout] 8 + for in &grid { [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/regions_by_slashes.rs:70:41 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usi... [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] 70 - pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] 70 + pub fn may_merge_group(grid_to_group: &mut [Vec>], groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [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/regions_by_slashes.rs:70:76 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usi... [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] 70 - pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut Vec>, target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] 70 + pub fn may_merge_group(grid_to_group: &mut Vec>>, groups: &mut [Vec<(usize, usize, usize)>], target: (usize, usize, usize), source: (usize, usize, usize)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/regions_by_slashes.rs:77:16 [INFO] [stdout] | [INFO] [stdout] 77 | for g in groups[old_group_id].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `groups[old_group_id].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping `r` and `l` manually [INFO] [stdout] --> src/num_equiv_domino_pairs.rs:10:9 [INFO] [stdout] | [INFO] [stdout] 10 | / let tmp = r; [INFO] [stdout] 11 | | r = l; [INFO] [stdout] 12 | | l = tmp; [INFO] [stdout] | |________________^ help: try: `std::mem::swap(&mut r, &mut l);` [INFO] [stdout] | [INFO] [stdout] = note: or maybe you should use `std::mem::replace`? [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | for j in 0..edges.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 21 - for j in 0..edges.len() { [INFO] [stdout] 21 + for (j, ) in edges.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_owned` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:45:29 [INFO] [stdout] | [INFO] [stdout] 45 | for member in g[old_group_id].to_owned() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `g[old_group_id].iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `groups` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:57:14 [INFO] [stdout] | [INFO] [stdout] 57 | for i in 0..2 { [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] 57 - for i in 0..2 { [INFO] [stdout] 57 + for in &groups { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `groups` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:59:16 [INFO] [stdout] | [INFO] [stdout] 59 | for j in 0..groups[i].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] 59 - for j in 0..groups[i].len() { [INFO] [stdout] 59 + for in groups.iter().take(groups[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `unused_edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:72:14 [INFO] [stdout] | [INFO] [stdout] 72 | for i in 0..2 { [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] 72 - for i in 0..2 { [INFO] [stdout] 72 + for in &unused_edges { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `unused_edges` [INFO] [stdout] --> src/max_num_edges_to_remove.rs:73:16 [INFO] [stdout] | [INFO] [stdout] 73 | for j in 0..unused_edges[i].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] 73 - for j in 0..unused_edges[i].len() { [INFO] [stdout] 73 + for in unused_edges.iter().take(unused_edges[i].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/pivot_index.rs:9:33 [INFO] [stdout] | [INFO] [stdout] 9 | let mut right = nums.iter().fold(0, |acc, num| { acc + num }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] = note: `#[warn(clippy::unnecessary_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/minimum_effort_path.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | return dp[m - 1][n - 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] 30 - return dp[m - 1][n - 1]; [INFO] [stdout] 30 + dp[m - 1][n - 1] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/fair_candy_swap.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | let sum1 = a.iter().fold(0, |acc, item| { acc + item }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/fair_candy_swap.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | let sum2 = b.iter().fold(0, |acc, item| { acc + item }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum::()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/fair_candy_swap.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 0..a.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] 12 - for i in 0..a.len() { [INFO] [stdout] 12 + for in &a { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/median_sliding_window.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 0..k as usize { [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] 8 - for i in 0..k as usize { [INFO] [stdout] 8 + for in nums.iter().take(k as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/longest_ones.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | return if ret > a.len() as i32 { a.len() as i32 } else { ret }; [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] 41 - return if ret > a.len() as i32 { a.len() as i32 } else { ret }; [INFO] [stdout] 41 + if ret > a.len() as i32 { a.len() as i32 } else { ret } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `a` [INFO] [stdout] --> src/longest_ones.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for j in 0..a.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for j in 0..a.len() { [INFO] [stdout] 7 + for (j, ) in a.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/find_shortest_sub_array.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return num_map[degree_i].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] 26 - return num_map[degree_i].1; [INFO] [stdout] 26 + num_map[degree_i].1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nums` [INFO] [stdout] --> src/find_shortest_sub_array.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 1..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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 10 - for i in 1..nums.len() { [INFO] [stdout] 10 + for (i, ) in nums.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/find_shortest_sub_array.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | / if num != degree_i { [INFO] [stdout] 21 | | if num_map[num].2 > num_map[degree_i].2 || (num_map[num].2 == num_map[degree_i].2 && num_map[num].1 < num_map[degree_i].1) { [INFO] [stdout] 22 | | degree_i = num; [INFO] [stdout] 23 | | } [INFO] [stdout] 24 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 20 ~ if num != degree_i [INFO] [stdout] 21 ~ && (num_map[num].2 > num_map[degree_i].2 || (num_map[num].2 == num_map[degree_i].2 && num_map[num].1 < num_map[degree_i].1)) { [INFO] [stdout] 22 | degree_i = num; [INFO] [stdout] 23 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/longest_subarray.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | return ret 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] 26 - return ret as i32; [INFO] [stdout] 26 + ret as i32 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/is_toeplitz_matrix.rs:27:7 [INFO] [stdout] | [INFO] [stdout] 27 | 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] 27 - return true; [INFO] [stdout] 27 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/max_satisfied.rs:9:9 [INFO] [stdout] | [INFO] [stdout] 9 | return acc; [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] 9 - return acc; [INFO] [stdout] 9 + acc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/max_satisfied.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return acc; [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] 36 - return acc; [INFO] [stdout] 36 + acc [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/flip_and_invert_image.rs:19:7 [INFO] [stdout] | [INFO] [stdout] 19 | return a; [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] 19 - return a; [INFO] [stdout] 19 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..m { [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] 7 - for i in 0..m { [INFO] [stdout] 7 + for in a.iter_mut().take(m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this looks like you are swapping elements of `a[i]` manually [INFO] [stdout] --> src/flip_and_invert_image.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | / let tmp = a[i][j]; [INFO] [stdout] 10 | | a[i][j] = a[i][n - 1 - j]; [INFO] [stdout] 11 | | a[i][n - 1 - j] = tmp; [INFO] [stdout] | |________________________________^ help: try: `a[i].swap(j, n - 1 - j);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:14:16 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..m { [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] 14 - for i in 0..m { [INFO] [stdout] 14 + for in a.iter_mut().take(m) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is only used to index `a` [INFO] [stdout] --> src/flip_and_invert_image.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | for j in 0..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] 15 - for j in 0..n { [INFO] [stdout] 15 + for in a.iter_mut().take(n) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/transpose.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | return ret; [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] 12 - return ret; [INFO] [stdout] 12 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sum_range.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | / return self.sum_left[self.sum_left.len() - 1] - [INFO] [stdout] 38 | | (if i > 0 { self.sum_left[i as usize - 1] } else { 0 }) [INFO] [stdout] 39 | | - (if j < self.sum_right.len() as i32 - 1 { self.sum_right[j as usize + 1] } else { 0 }) [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] 37 ~ self.sum_left[self.sum_left.len() - 1] - [INFO] [stdout] 38 + (if i > 0 { self.sum_left[i as usize - 1] } else { 0 }) [INFO] [stdout] 39 + - (if j < self.sum_right.len() as i32 - 1 { self.sum_right[j as usize + 1] } else { 0 }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/sum_region.rs:45:7 [INFO] [stdout] | [INFO] [stdout] 45 | return ret; [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] 45 - return ret; [INFO] [stdout] 45 + ret [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `envelopes` [INFO] [stdout] --> src/max_envelopes.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 19 | for i in 0..envelopes.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] 19 - for i in 0..envelopes.len() { [INFO] [stdout] 19 + for in &envelopes { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/remove_duplicates/solution_1047.rs:8:14 [INFO] [stdout] | [INFO] [stdout] 8 | for i in 1..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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 8 - for i in 1..chars.len() { [INFO] [stdout] 8 + for in chars.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/remove_duplicates/solution_80.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | / if count == 2 { [INFO] [stdout] 9 | | if nums[i] == nums[i - 1] { [INFO] [stdout] 10 | | continue [INFO] [stdout] 11 | | } [INFO] [stdout] 12 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 8 ~ if count == 2 [INFO] [stdout] 9 ~ && nums[i] == nums[i - 1] { [INFO] [stdout] 10 | continue [INFO] [stdout] 11 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 22 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 23 | r.unwrap() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate.rs:34:27 [INFO] [stdout] | [INFO] [stdout] 33 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 34 | let num = r.unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate.rs:55:46 [INFO] [stdout] | [INFO] [stdout] 55 | while index + 1 < chars.len() && chars[index + 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `chars[index + 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate2.rs:24:17 [INFO] [stdout] | [INFO] [stdout] 23 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 24 | r.unwrap() [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `r` after checking its variant with `is_ok` [INFO] [stdout] --> src/calculate2.rs:35:27 [INFO] [stdout] | [INFO] [stdout] 34 | if r.is_ok() { [INFO] [stdout] | ------------ help: try: `if let Ok() = r` [INFO] [stdout] 35 | let num = r.unwrap(); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate2.rs:55:14 [INFO] [stdout] | [INFO] [stdout] 55 | if c.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/calculate2.rs:57:46 [INFO] [stdout] | [INFO] [stdout] 57 | while index + 1 < chars.len() && chars[index + 1].is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `chars[index + 1].is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/calculate2.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | / if stack.len() > 2 { [INFO] [stdout] 71 | | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] 72 | | let right = stack[stack.len() - 1].parse::().unwrap(); [INFO] [stdout] 73 | | let left = stack[stack.len() - 3].parse::().unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 84 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 70 ~ if stack.len() > 2 [INFO] [stdout] 71 ~ && (stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string()) { [INFO] [stdout] 72 | let right = stack[stack.len() - 1].parse::().unwrap(); [INFO] [stdout] ... [INFO] [stdout] 82 | stack.push(res.to_string()); [INFO] [stdout] 83 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:71:40 [INFO] [stdout] | [INFO] [stdout] 71 | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"*"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] = note: `#[warn(clippy::cmp_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:71:85 [INFO] [stdout] | [INFO] [stdout] 71 | if stack[stack.len() - 2] == "*".to_string() || stack[stack.len() - 2] == "/".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"/"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this creates an owned instance just for comparison [INFO] [stdout] --> src/calculate2.rs:75:44 [INFO] [stdout] | [INFO] [stdout] 75 | if stack[stack.len() - 2] == "*".to_string() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `"*"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `matrix` [INFO] [stdout] --> src/spiral_order.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | for i in ranges[1][0]..ranges[1][1] { [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] 15 - for i in ranges[1][0]..ranges[1][1] { [INFO] [stdout] 15 + for in matrix.iter().take(ranges[1][1]).skip(ranges[1][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `matrix` [INFO] [stdout] --> src/spiral_order.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | for i in ranges[0][0]..ranges[0][1] { [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] 25 - for i in ranges[0][0]..ranges[0][1] { [INFO] [stdout] 25 + for in matrix.iter().take(ranges[0][1]).skip(ranges[0][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ret` [INFO] [stdout] --> src/generate_matrix.rs:16:20 [INFO] [stdout] | [INFO] [stdout] 16 | for i in ranges[1][0]..ranges[1][1] { [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] 16 - for i in ranges[1][0]..ranges[1][1] { [INFO] [stdout] 16 + for in ret.iter_mut().take(ranges[1][1]).skip(ranges[1][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `ret` [INFO] [stdout] --> src/generate_matrix.rs:27:20 [INFO] [stdout] | [INFO] [stdout] 27 | for i in ranges[0][0]..ranges[0][1] { [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] 27 - for i in ranges[0][0]..ranges[0][1] { [INFO] [stdout] 27 + for in ret.iter_mut().take(ranges[0][1]).skip(ranges[0][0]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/num_distinct.rs:43:43 [INFO] [stdout] | [INFO] [stdout] 43 | dp[index][t_chars.len() - 1..].iter().fold(0, |acc, num| { acc + num }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `sum()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | 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] 31 ~ false [INFO] [stdout] 32 | } else { [INFO] [stdout] 33 | return true; [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | 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] 33 ~ true [INFO] [stdout] 34 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/search_matrix.rs:36:7 [INFO] [stdout] | [INFO] [stdout] 36 | 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] 36 - return false; [INFO] [stdout] 36 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/search_matrix.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | / if i == -1 { [INFO] [stdout] 31 | | return false; [INFO] [stdout] 32 | | } else { [INFO] [stdout] 33 | | return true; [INFO] [stdout] 34 | | }; [INFO] [stdout] | |_______^ help: you can reduce it to: `return i != -1` [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 `j` is only used to index `height` [INFO] [stdout] --> src/trap.rs:14:20 [INFO] [stdout] | [INFO] [stdout] 14 | for j in start + 1..i-1 { [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] 14 - for j in start + 1..i-1 { [INFO] [stdout] 14 + for in height.iter_mut().take(i-1).skip(start + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/trap.rs:27:14 [INFO] [stdout] | [INFO] [stdout] 27 | } else if height[i] - height[i - 1] > 0 { [INFO] [stdout] | ______________^ [INFO] [stdout] 28 | | if dir != 1 { [INFO] [stdout] 29 | | dir = 1; [INFO] [stdout] 30 | | } [INFO] [stdout] 31 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 27 ~ } else if height[i] - height[i - 1] > 0 [INFO] [stdout] 28 ~ && dir != 1 { [INFO] [stdout] 29 | dir = 1; [INFO] [stdout] 30 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/search.rs:21:41 [INFO] [stdout] | [INFO] [stdout] 21 | return Solution::_binary_search(&nums, target, left as i32, mid as i32 - 1) != -1; [INFO] [stdout] | ^^^^^ help: change this to: `nums` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/search.rs:23:41 [INFO] [stdout] | [INFO] [stdout] 23 | return Solution::_binary_search(&nums, target, mid as i32 + 1, right as i32) != -1; [INFO] [stdout] | ^^^^^ help: change this to: `nums` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/search.rs:41:27 [INFO] [stdout] | [INFO] [stdout] 41 | fn _binary_search(nums: &Vec, target: i32, left: i32, right: 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] 41 - fn _binary_search(nums: &Vec, target: i32, left: i32, right: i32) -> i32 { [INFO] [stdout] 41 + fn _binary_search(nums: &[i32], target: i32, left: i32, right: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/min_diff_in_bst.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | while !cur.is_none() || !stack.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `cur.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/min_diff_in_bst.rs:65:18 [INFO] [stdout] | [INFO] [stdout] 65 | if !top_node.right.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `top_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: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 30 - for i in 0..chars.len() { [INFO] [stdout] 30 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/trie.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if !cur.children.contains_key(&chars[i]) { [INFO] [stdout] 32 | | cur.children.insert(chars[i], Trie::new()); [INFO] [stdout] 33 | | } [INFO] [stdout] | |_________^ help: try: `cur.children.entry(chars[i]).or_insert_with(|| Trie::new());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 44 - for i in 0..chars.len() { [INFO] [stdout] 44 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `chars` [INFO] [stdout] --> src/trie.rs:58:16 [INFO] [stdout] | [INFO] [stdout] 58 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 58 - for i in 0..chars.len() { [INFO] [stdout] 58 + for in &chars { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/rob.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 1..nums.len() - 1 { [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] 10 - for i in 1..nums.len() - 1 { [INFO] [stdout] 10 + for in nums.iter().take(nums.len() - 1).skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/rob.rs:20:16 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 2..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] 20 - for i in 2..nums.len() { [INFO] [stdout] 20 + for in nums.iter().skip(2) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/is_scramble.rs:16:14 [INFO] [stdout] | [INFO] [stdout] 16 | return if dp[i1][i2][len - 1] == 1 { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `dp[i1][i2][len - 1] == 1` [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/is_scramble.rs:66:7 [INFO] [stdout] | [INFO] [stdout] 66 | / if count1 == 0 && i != len - 1 { [INFO] [stdout] 67 | | if Solution::is_scramble_dfs(chars1, chars2, i1, i2, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i... [INFO] [stdout] 68 | | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 69 | | return true [INFO] [stdout] 70 | | } [INFO] [stdout] 71 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 66 ~ if count1 == 0 && i != len - 1 [INFO] [stdout] 67 ~ && Solution::is_scramble_dfs(chars1, chars2, i1, i2, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i2 + i + 1, len - i - 1, dp) { [INFO] [stdout] 68 | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 69 | return true [INFO] [stdout] 70 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/is_scramble.rs:73:7 [INFO] [stdout] | [INFO] [stdout] 73 | / if count2 == 0 && i != len - 1 { [INFO] [stdout] 74 | | if Solution::is_scramble_dfs(chars1, chars2, i1, i2 + len - 1 - i, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2,... [INFO] [stdout] 75 | | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 76 | | return true [INFO] [stdout] 77 | | } [INFO] [stdout] 78 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 73 ~ if count2 == 0 && i != len - 1 [INFO] [stdout] 74 ~ && Solution::is_scramble_dfs(chars1, chars2, i1, i2 + len - 1 - i, i + 1, dp) && Solution::is_scramble_dfs(chars1, chars2, i1 + i + 1, i2, len - i - 1, dp) { [INFO] [stdout] 75 | dp[i1][i2][len - 1] = 1; [INFO] [stdout] 76 | return true [INFO] [stdout] 77 ~ } [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/remove_element.rs:4:31 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn remove_element(nums: &mut Vec, val: 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] 4 - pub fn remove_element(nums: &mut Vec, val: i32) -> i32 { [INFO] [stdout] 4 + pub fn remove_element(nums: &mut [i32], val: i32) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `dp` [INFO] [stdout] --> src/max_sum_submatrix.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | for i in 0..matrix.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 7 - for i in 0..matrix.len() { [INFO] [stdout] 7 + for (i, ) in dp.iter_mut().enumerate().take(matrix.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `dp` [INFO] [stdout] --> src/max_sum_submatrix.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for j in 0..matrix[0].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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for j in 0..matrix[0].len() { [INFO] [stdout] 8 + for (j, ) in dp.iter_mut().enumerate().take(matrix[0].len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/max_sum_submatrix.rs:49:11 [INFO] [stdout] | [INFO] [stdout] 49 | / if index < row_sum.len() { [INFO] [stdout] 50 | | if s - row_sum[index] > ret || ret > k { [INFO] [stdout] 51 | | ret = s - row_sum[index]; [INFO] [stdout] 52 | | if ret == k { [INFO] [stdout] ... | [INFO] [stdout] 56 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 49 ~ if index < row_sum.len() [INFO] [stdout] 50 ~ && (s - row_sum[index] > ret || ret > k) { [INFO] [stdout] 51 | ret = s - row_sum[index]; [INFO] [stdout] ... [INFO] [stdout] 54 | } [INFO] [stdout] 55 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/largest_divisible_subset.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | / if num % divisor == 0 { [INFO] [stdout] 20 | | if j <= r && nums[j] == target && (dp[j].len() > dp[k].len() || k == i) { [INFO] [stdout] 21 | | k = j; [INFO] [stdout] 22 | | } [INFO] [stdout] 23 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 19 ~ if num % divisor == 0 [INFO] [stdout] 20 ~ && j <= r && nums[j] == target && (dp[j].len() > dp[k].len() || k == i) { [INFO] [stdout] 21 | k = j; [INFO] [stdout] 22 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `unwrap()` on `Some` value [INFO] [stdout] --> src/increasing_bst.rs:47:7 [INFO] [stdout] | [INFO] [stdout] 47 | ret.unwrap().borrow().right.clone() [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: remove the `Some` and `unwrap()` [INFO] [stdout] --> src/increasing_bst.rs:26:17 [INFO] [stdout] | [INFO] [stdout] 26 | let ret = Some(Rc::new(RefCell::new(TreeNode::new(0)))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_literal_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_literal_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `weights` [INFO] [stdout] --> src/ship_within_days.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | for i in 0..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_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 13 - for i in 0..n as usize { [INFO] [stdout] 13 + for (i, ) in weights.iter().enumerate().take(n as usize) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/ship_within_days.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | left as i32 [INFO] [stdout] | ^^^^^^^^^^^ help: try: `left` [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 `stones` [INFO] [stdout] --> src/can_cross.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 0..stones.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] 9 - for i in 0..stones.len() { [INFO] [stdout] 9 + for in &stones { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `stones` [INFO] [stdout] --> src/can_cross.rs:14:14 [INFO] [stdout] | [INFO] [stdout] 14 | for i in 0..stones.len() - 1 { [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] 14 - for i in 0..stones.len() - 1 { [INFO] [stdout] 14 + for in stones.iter().take(stones.len() - 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/single_number.rs:16:7 [INFO] [stdout] | [INFO] [stdout] 16 | b = b ^ num & !a; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `b ^= num & !a` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/single_number.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | a = a ^ num & !b; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `a ^= num & !b` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nodes` [INFO] [stdout] --> src/is_cousins.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | for i in 0..nodes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 30 - for i in 0..nodes.len() { [INFO] [stdout] 30 + for (i, ) in nodes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/is_cousins.rs:39:17 [INFO] [stdout] | [INFO] [stdout] 39 | / if i as i32 == first + 1 && first & 1 == 0 { [INFO] [stdout] 40 | | return false; [INFO] [stdout] 41 | | } else { [INFO] [stdout] 42 | | return true; [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________________^ help: you can reduce it to: `return !(i as i32 == first + 1 && first & 1 == 0)` [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: the loop variable `j` is used to index `arr` [INFO] [stdout] --> src/count_triplets.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 8 | for j in i + 1..arr.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 8 - for j in i + 1..arr.len() { [INFO] [stdout] 8 + for (j, ) in arr.iter().enumerate().skip(i + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/top_k_frequent.rs:58:30 [INFO] [stdout] | [INFO] [stdout] 58 | fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [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] 58 - fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [INFO] [stdout] 58 + fn is_alpha_bigger(word_1: &str, word_2: &String) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/top_k_frequent.rs:58:47 [INFO] [stdout] | [INFO] [stdout] 58 | fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [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] 58 - fn is_alpha_bigger(word_1: &String, word_2: &String) -> bool { [INFO] [stdout] 58 + fn is_alpha_bigger(word_1: &String, word_2: &str) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/min_changes.rs:15:20 [INFO] [stdout] | [INFO] [stdout] 15 | for j in (i..nums.len() as usize).step_by(k as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `nums.len()` [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: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/min_changes.rs:36:24 [INFO] [stdout] | [INFO] [stdout] 36 | for j in (i..nums.len() as usize).step_by(k as usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `nums.len()` [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 `chars` [INFO] [stdout] --> src/reverse_parentheses.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | 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] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 10 - for i in 0..chars.len() { [INFO] [stdout] 10 + for in &chars { [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/reverse_parentheses.rs:37:30 [INFO] [stdout] | [INFO] [stdout] 37 | fn reverse_char_seq(chars: &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] 37 - fn reverse_char_seq(chars: &mut Vec) { [INFO] [stdout] 37 + fn reverse_char_seq(chars: &mut [char]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `nums` [INFO] [stdout] --> src/find_max_length.rs:11:14 [INFO] [stdout] | [INFO] [stdout] 11 | 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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 11 - for i in 0..nums.len() { [INFO] [stdout] 11 + for (i, ) in nums.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `points` [INFO] [stdout] --> src/max_points.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | for j in 0..i { [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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 13 - for j in 0..i { [INFO] [stdout] 13 + for (j, ) in points.iter().enumerate().take(i) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/max_points.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / if line_to_count.contains_key(&hash) { [INFO] [stdout] 28 | | let pair = line_to_count.get_mut(&hash).unwrap(); [INFO] [stdout] 29 | | if pair.1 != i { [INFO] [stdout] 30 | | pair.0 += 1; [INFO] [stdout] ... | [INFO] [stdout] 41 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: consider using the `Entry` API: https://doc.rust-lang.org/std/collections/struct.HashMap.html#entry-api [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/open_lock.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | 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] 70 - return -1; [INFO] [stdout] 70 + -1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `routes` [INFO] [stdout] --> src/num_buses_to_destination.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 0..routes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 9 - for i in 0..routes.len() { [INFO] [stdout] 9 + for (i, ) in routes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/convert_to_title.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | column_number = column_number / 26; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `column_number /= 26` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/count_of_atoms.rs:13:20 [INFO] [stdout] | [INFO] [stdout] 13 | ret.push_str(&atom.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: change this to: `atom.as_str()` [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: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/count_of_atoms.rs:36:10 [INFO] [stdout] | [INFO] [stdout] 36 | if (c >= 'A' && c <= 'Z') || index == chars.len() || c == ')' || c == '(' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `('A'..='Z').contains(&c)` [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 `if` statement can be collapsed [INFO] [stdout] --> src/count_of_atoms.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | } else if c >= '0' && c <= '9' { [INFO] [stdout] | ______________^ [INFO] [stdout] 81 | | if digit_from == -1 { [INFO] [stdout] 82 | | if from != -1 { [INFO] [stdout] 83 | | temp_str = chars[from as usize..index].iter().collect(); [INFO] [stdout] ... | [INFO] [stdout] 88 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 80 ~ } else if c >= '0' && c <= '9' [INFO] [stdout] 81 ~ && digit_from == -1 { [INFO] [stdout] 82 | if from != -1 { [INFO] [stdout] ... [INFO] [stdout] 86 | digit_from = index as i32; [INFO] [stdout] 87 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/count_of_atoms.rs:80:17 [INFO] [stdout] | [INFO] [stdout] 80 | } else if c >= '0' && c <= '9' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use: `('0'..='9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/display_table.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | / if !table_to_dishes.contains_key(&table) { [INFO] [stdout] 15 | | table_to_dishes.insert(table, HashMap::new()); [INFO] [stdout] 16 | | } [INFO] [stdout] | |_______^ help: try: `table_to_dishes.entry(table).or_insert_with(|| HashMap::new());` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/count_pairs.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | / if !num_to_count.contains_key(&d) { [INFO] [stdout] 14 | | num_to_count.insert(d, 0); [INFO] [stdout] 15 | | unique.push(d); [INFO] [stdout] 16 | | if d > max { [INFO] [stdout] ... | [INFO] [stdout] 19 | | } [INFO] [stdout] | |_______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 13 ~ if let std::collections::hash_map::Entry::Vacant(e) = num_to_count.entry(d) { [INFO] [stdout] 14 + e.insert(0); [INFO] [stdout] 15 + unique.push(d); [INFO] [stdout] 16 + if d > max { [INFO] [stdout] 17 + max = d; [INFO] [stdout] 18 + } [INFO] [stdout] 19 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `unique` [INFO] [stdout] --> src/count_pairs.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | for i in 0..unique.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] 23 - for i in 0..unique.len() { [INFO] [stdout] 23 + for in &unique { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/get_skyline.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | if !(!ret.is_empty() && ret[ret.len() - 1][1] == next_num) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ret.is_empty() || ret[ret.len() - 1][1] != next_num` [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: the loop variable `i` is only used to index `prefix_sum` [INFO] [stdout] --> src/is_covered.rs:12:20 [INFO] [stdout] | [INFO] [stdout] 12 | for i in r + 1..prefix_sum.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] 12 - for i in r + 1..prefix_sum.len() { [INFO] [stdout] 12 + for in prefix_sum.iter_mut().skip(r + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `target` [INFO] [stdout] --> src/min_operations.rs:10:14 [INFO] [stdout] | [INFO] [stdout] 10 | for i in 0..target.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 10 - for i in 0..target.len() { [INFO] [stdout] 10 + for (i, ) in target.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/distance_k.rs:56:7 [INFO] [stdout] | [INFO] [stdout] 56 | 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] 56 - return false; [INFO] [stdout] 56 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `nums` [INFO] [stdout] --> src/find_unsorted_subarray.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | for i in 1..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] 9 - for i in 1..nums.len() { [INFO] [stdout] 9 + for in nums.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `nums` [INFO] [stdout] --> src/find_unsorted_subarray.rs:31:20 [INFO] [stdout] | [INFO] [stdout] 31 | for j in i + 1..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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 31 - for j in i + 1..nums.len() { [INFO] [stdout] 31 + for (j, ) in nums.iter().enumerate().skip(i + 1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `node_to_dep_count` [INFO] [stdout] --> src/eventual_safe_nodes.rs:31:14 [INFO] [stdout] | [INFO] [stdout] 31 | for i in 0..node_to_dep_count.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 31 - for i in 0..node_to_dep_count.len() { [INFO] [stdout] 31 + for (i, ) in node_to_dep_count.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `step_count` [INFO] [stdout] --> src/shortest_path_length.rs:34:16 [INFO] [stdout] | [INFO] [stdout] 34 | for i in 0..graph.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] 34 - for i in 0..graph.len() { [INFO] [stdout] 34 + for in step_count.iter().take(graph.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `primes` [INFO] [stdout] --> src/nth_super_ugly_number.rs:12:14 [INFO] [stdout] | [INFO] [stdout] 12 | for i in 0..primes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 12 - for i in 0..primes.len() { [INFO] [stdout] 12 + for (i, ) in primes.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/number_of_arithmetic_slices/solution_446.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | / if !dp[i].contains_key(&delta) { [INFO] [stdout] 15 | | dp[i].insert(delta, 1); [INFO] [stdout] 16 | | } [INFO] [stdout] | |_________^ help: try: `dp[i].entry(delta).or_insert(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/number_of_arithmetic_slices/solution_446.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / if !counter.contains_key(&delta) { [INFO] [stdout] 31 | | counter.insert(delta, 0); [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________^ help: try: `counter.entry(delta).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/count_arrangement.rs:13:26 [INFO] [stdout] | [INFO] [stdout] 13 | num_to_options[res as usize].push(i); [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `{ res }` [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 `num_to_options` [INFO] [stdout] --> src/count_arrangement.rs:20:14 [INFO] [stdout] | [INFO] [stdout] 20 | for i in 1..num_to_options.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] 20 - for i in 1..num_to_options.len() { [INFO] [stdout] 20 + for in num_to_options.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/count_arrangement.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 26 | / if !new_dp.contains_key(&key) { [INFO] [stdout] 27 | | new_dp.insert(key, 0); [INFO] [stdout] 28 | | } [INFO] [stdout] | |_____________^ help: try: `new_dp.entry(key).or_insert(0);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/reverse_vowels.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | / if j > 0 { [INFO] [stdout] 31 | | j -= 1; [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________^ help: try: `j = j.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] = note: `#[warn(clippy::implicit_saturating_sub)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: implicitly performing saturating subtraction [INFO] [stdout] --> src/reverse_str.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / if j != 0 { [INFO] [stdout] 17 | | j -= 1; [INFO] [stdout] 18 | | } [INFO] [stdout] | |_________^ help: try: `j = j.saturating_sub(1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_saturating_sub [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `changes` [INFO] [stdout] --> src/best_rotation.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | for i in 1..changes.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 and enumerate() [INFO] [stdout] | [INFO] [stdout] 30 - for i in 1..changes.len() { [INFO] [stdout] 30 + for (i, ) in changes.iter().enumerate().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/is_scramble.rs:32:20 [INFO] [stdout] | [INFO] [stdout] 32 | let mut head = vec![0;26]; [INFO] [stdout] | ^^^^^^^^^^ help: you can use an array directly: `[0; 26]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/is_scramble.rs:34:20 [INFO] [stdout] | [INFO] [stdout] 34 | let mut tail = vec![0;26]; [INFO] [stdout] | ^^^^^^^^^^ help: you can use an array directly: `[0; 26]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.61s [INFO] running `Command { std: "docker" "inspect" "72c38953cc6c1ed4368101eaa350d0331fbfea08e320507e9109901808bba343", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72c38953cc6c1ed4368101eaa350d0331fbfea08e320507e9109901808bba343", kill_on_drop: false }` [INFO] [stdout] 72c38953cc6c1ed4368101eaa350d0331fbfea08e320507e9109901808bba343