[INFO] cloning repository https://github.com/bit-web24/kalqlator [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/bit-web24/kalqlator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbit-web24%2Fkalqlator", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbit-web24%2Fkalqlator'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dd87407b42d9dae3f67165b29e2fd9439ede48ec [INFO] linting bit-web24/kalqlator against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbit-web24%2Fkalqlator" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/bit-web24/kalqlator [INFO] finished tweaking git repo https://github.com/bit-web24/kalqlator [INFO] tweaked toml for git repo https://github.com/bit-web24/kalqlator written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/bit-web24/kalqlator 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/bit-web24/kalqlator already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 493fdd92f200a577d4d6f05944973b2b789d906eaf05f52f4aee080464e31fea [INFO] running `Command { std: "docker" "start" "-a" "493fdd92f200a577d4d6f05944973b2b789d906eaf05f52f4aee080464e31fea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "493fdd92f200a577d4d6f05944973b2b789d906eaf05f52f4aee080464e31fea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "493fdd92f200a577d4d6f05944973b2b789d906eaf05f52f4aee080464e31fea", kill_on_drop: false }` [INFO] [stdout] 493fdd92f200a577d4d6f05944973b2b789d906eaf05f52f4aee080464e31fea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 27beb0901574e026cdd611d9a4b3e7c11f4d42274627e4552aa1e2afd1734ebf [INFO] running `Command { std: "docker" "start" "-a" "27beb0901574e026cdd611d9a4b3e7c11f4d42274627e4552aa1e2afd1734ebf", kill_on_drop: false }` [INFO] [stderr] Checking kalqlator v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: fields `exp`, `terms`, and `result` are never read [INFO] [stdout] --> src/kalqlator.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct MetaData { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 14 | pub exp: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 15 | pub terms: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | pub result: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `at_char` and `typ` are never read [INFO] [stdout] --> src/kalqlator.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 21 | pub at_char: u32, // with respect to the expression [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | pub typ: ErrorType, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/process.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | if !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) != Some(&utoi))` [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: the variable `at_char` is used as a loop counter [INFO] [stdout] --> src/process.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | for i in exp.trim().chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (at_char, i) in (1_u32..).zip(exp.trim().chars())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `exp`, `terms`, and `result` are never read [INFO] [stdout] --> src/kalqlator.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct MetaData { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 14 | pub exp: String, [INFO] [stdout] | ^^^ [INFO] [stdout] 15 | pub terms: u32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | pub result: i32, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/process.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / if !(utoi >= 48 && utoi <= 57) { [INFO] [stdout] 13 | | if !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] 14 | | return Err(kalqlator::Error { [INFO] [stdout] 15 | | typ: kalqlator::ErrorType::CharNotDefined, [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#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 12 ~ if !(utoi >= 48 && utoi <= 57) [INFO] [stdout] 13 ~ && !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] 14 | return Err(kalqlator::Error { [INFO] [stdout] ... [INFO] [stdout] 17 | }); [INFO] [stdout] 18 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `at_char` and `typ` are never read [INFO] [stdout] --> src/kalqlator.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Error { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 21 | pub at_char: u32, // with respect to the expression [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 22 | pub typ: ErrorType, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/process.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | if !(utoi >= 48 && utoi <= 57) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(48..=57).contains(&utoi)` [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 boolean expression can be simplified [INFO] [stdout] --> src/process.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | if !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) != Some(&utoi))` [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: the variable `at_char` is used as a loop counter [INFO] [stdout] --> src/process.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | for i in exp.trim().chars() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (at_char, i) in (1_u32..).zip(exp.trim().chars())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/process.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 12 | / if !(utoi >= 48 && utoi <= 57) { [INFO] [stdout] 13 | | if !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] 14 | | return Err(kalqlator::Error { [INFO] [stdout] 15 | | typ: kalqlator::ErrorType::CharNotDefined, [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#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 12 ~ if !(utoi >= 48 && utoi <= 57) [INFO] [stdout] 13 ~ && !([32, 37, 42, 43, 45, 47].iter().find(|&&x| x == utoi) == Some(&utoi)) { [INFO] [stdout] 14 | return Err(kalqlator::Error { [INFO] [stdout] ... [INFO] [stdout] 17 | }); [INFO] [stdout] 18 ~ } [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/process.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | exp: &String, [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] 62 - exp: &String, [INFO] [stdout] 62 + exp: &str, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/process.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | if !(utoi >= 48 && utoi <= 57) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(48..=57).contains(&utoi)` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/process.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | exp: &String, [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] 62 - exp: &String, [INFO] [stdout] 62 + exp: &str, [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/process.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | fn chk_psh_trm_vlu(xoperand: &String, operands: &mut Vec) -> Result<(), kalqlator::Error> { [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] 86 - fn chk_psh_trm_vlu(xoperand: &String, operands: &mut Vec) -> Result<(), kalqlator::Error> { [INFO] [stdout] 86 + fn chk_psh_trm_vlu(xoperand: &str, operands: &mut Vec) -> Result<(), kalqlator::Error> { [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/process.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | fn chk_psh_trm_vlu(xoperand: &String, operands: &mut Vec) -> Result<(), kalqlator::Error> { [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] 86 - fn chk_psh_trm_vlu(xoperand: &String, operands: &mut Vec) -> Result<(), kalqlator::Error> { [INFO] [stdout] 86 + fn chk_psh_trm_vlu(xoperand: &str, operands: &mut Vec) -> Result<(), kalqlator::Error> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:123:17 [INFO] [stdout] | [INFO] [stdout] 123 | operands[x] = operands[x] / operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] /= operands[x + 1]` [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/process.rs:135:17 [INFO] [stdout] | [INFO] [stdout] 135 | operands[x] = operands[x] * operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] *= operands[x + 1]` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | operands[x] = operands[x] + operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] += operands[x + 1]` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | operands[x] = operands[x] - operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] -= operands[x + 1]` [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 boolean expression can be simplified [INFO] [stdout] --> src/main.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | if !(input.trim().len() < 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(input.trim().len() >= 1)` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:123:17 [INFO] [stdout] | [INFO] [stdout] 123 | operands[x] = operands[x] / operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] /= operands[x + 1]` [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: length comparison to one [INFO] [stdout] --> src/main.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | if !(input.trim().len() < 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.trim().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/process.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | let tmp = vec![37, 42, 43, 45, 47]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[37, 42, 43, 45, 47]` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:135:17 [INFO] [stdout] | [INFO] [stdout] 135 | operands[x] = operands[x] * operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] *= operands[x + 1]` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | operands[x] = operands[x] + operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] += operands[x + 1]` [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: manual implementation of an assign operation [INFO] [stdout] --> src/process.rs:159:17 [INFO] [stdout] | [INFO] [stdout] 159 | operands[x] = operands[x] - operands[x + 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `operands[x] -= operands[x + 1]` [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 boolean expression can be simplified [INFO] [stdout] --> src/main.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | if !(input.trim().len() < 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(input.trim().len() >= 1)` [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 one [INFO] [stdout] --> src/main.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | if !(input.trim().len() < 1) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `input.trim().is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/process.rs:45:15 [INFO] [stdout] | [INFO] [stdout] 45 | let tmp = vec![37, 42, 43, 45, 47]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[37, 42, 43, 45, 47]` [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.39s [INFO] running `Command { std: "docker" "inspect" "27beb0901574e026cdd611d9a4b3e7c11f4d42274627e4552aa1e2afd1734ebf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "27beb0901574e026cdd611d9a4b3e7c11f4d42274627e4552aa1e2afd1734ebf", kill_on_drop: false }` [INFO] [stdout] 27beb0901574e026cdd611d9a4b3e7c11f4d42274627e4552aa1e2afd1734ebf