[INFO] cloning repository https://github.com/Lastaapps/ctu-bi-psi [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Lastaapps/ctu-bi-psi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLastaapps%2Fctu-bi-psi", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLastaapps%2Fctu-bi-psi'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cef60b1351ad072f2c704e63065bf75b1a34ab31 [INFO] linting Lastaapps/ctu-bi-psi against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLastaapps%2Fctu-bi-psi" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Lastaapps/ctu-bi-psi [INFO] finished tweaking git repo https://github.com/Lastaapps/ctu-bi-psi [INFO] tweaked toml for git repo https://github.com/Lastaapps/ctu-bi-psi written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Lastaapps/ctu-bi-psi 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/Lastaapps/ctu-bi-psi already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 04791bb3d66f78c2cc443f959ec0ab8cc5ad8c615e5c48c00668e2bf18275484 [INFO] running `Command { std: "docker" "start" "-a" "04791bb3d66f78c2cc443f959ec0ab8cc5ad8c615e5c48c00668e2bf18275484", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "04791bb3d66f78c2cc443f959ec0ab8cc5ad8c615e5c48c00668e2bf18275484", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "04791bb3d66f78c2cc443f959ec0ab8cc5ad8c615e5c48c00668e2bf18275484", kill_on_drop: false }` [INFO] [stdout] 04791bb3d66f78c2cc443f959ec0ab8cc5ad8c615e5c48c00668e2bf18275484 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b43919a289b17fd1dfae200e491c1a0c50e54b3899c4fa18ba17ff8e031da26e [INFO] running `Command { std: "docker" "start" "-a" "b43919a289b17fd1dfae200e491c1a0c50e54b3899c4fa18ba17ff8e031da26e", kill_on_drop: false }` [INFO] [stderr] Checking bobika v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | Io(std::io::Error), [INFO] [stdout] | -- ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` 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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 7 - Io(std::io::Error), [INFO] [stdout] 7 + Io(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/errors.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | MessageToLong(String, usize), [INFO] [stdout] | ------------- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 10 - MessageToLong(String, usize), [INFO] [stdout] 10 + MessageToLong((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | FailedToParseNumber(Option), [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - FailedToParseNumber(Option), [INFO] [stdout] 11 + FailedToParseNumber(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | InvalidKeyIndex(i32), [INFO] [stdout] | --------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 14 - InvalidKeyIndex(i32), [INFO] [stdout] 14 + InvalidKeyIndex(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected` and `actual` are never read [INFO] [stdout] --> src/errors.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | HashMismatch{expected: u32, actual: u32}, [INFO] [stdout] | ------------ ^^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/errors.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / match self { [INFO] [stdout] 25 | | Self::Io(_) | Self::ConnectionClosed => false, [INFO] [stdout] 26 | | _ => true, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 24 - match self { [INFO] [stdout] 25 - Self::Io(_) | Self::ConnectionClosed => false, [INFO] [stdout] 26 - _ => true, [INFO] [stdout] 27 - } [INFO] [stdout] 24 + !matches!(self, Self::Io(_) | Self::ConnectionClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/state_machine.rs:120:55 [INFO] [stdout] | [INFO] [stdout] 120 | let sum = username.bytes().map(Into::::into).fold(0u32, |acu, x| acu + x); [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/server.rs:57:52 [INFO] [stdout] | [INFO] [stdout] 57 | fn check_max_len_overflow(max_len: usize, message: &Vec) -> 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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 57 - fn check_max_len_overflow(max_len: usize, message: &Vec) -> bool { [INFO] [stdout] 57 + fn check_max_len_overflow(max_len: usize, message: &[u8]) -> bool { [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/server.rs:62:23 [INFO] [stdout] | [INFO] [stdout] 62 | fn prefix_match(msg1: &Vec, msg2: &Vec) -> 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] 62 - fn prefix_match(msg1: &Vec, msg2: &Vec) -> bool { [INFO] [stdout] 62 + fn prefix_match(msg1: &[u8], msg2: &Vec) -> bool { [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/server.rs:62:39 [INFO] [stdout] | [INFO] [stdout] 62 | fn prefix_match(msg1: &Vec, msg2: &Vec) -> 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] 62 - fn prefix_match(msg1: &Vec, msg2: &Vec) -> bool { [INFO] [stdout] 62 + fn prefix_match(msg1: &Vec, msg2: &[u8]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTH` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `North` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTH` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `South` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EAST` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `East` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WEST` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `West` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] 24 | | || (x < 0 && self == &Orient::EAST) [INFO] [stdout] 25 | | || (y > 0 && self == &Orient::SOUTH) [INFO] [stdout] | |________________________________________________^ help: try: `x > 0 && self == &Orient::WEST || x < 0 && self == &Orient::EAST || y > 0 && self == &Orient::SOUTH` [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/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] 24 | | || (x < 0 && self == &Orient::EAST) [INFO] [stdout] | |_______________________________________________^ help: try: `x > 0 && self == &Orient::WEST || x < 0 && self == &Orient::EAST` [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/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] | |_______________________________________________^ help: try: `x > 0 && self == &Orient::WEST` [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 operation has no effect [INFO] [stdout] --> src/path.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Self::NORTH => (x + 0, y + 1), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | Self::SOUTH => (x + 0, y - 1), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:32:36 [INFO] [stdout] | [INFO] [stdout] 32 | Self::EAST => (x + 1, y + 0), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | Self::WEST => (x - 1, y + 0), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | Io(std::io::Error), [INFO] [stdout] | -- ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` 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] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 7 - Io(std::io::Error), [INFO] [stdout] 7 + Io(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/errors.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | MessageToLong(String, usize), [INFO] [stdout] | ------------- ^^^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 10 - MessageToLong(String, usize), [INFO] [stdout] 10 + MessageToLong((), ()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | FailedToParseNumber(Option), [INFO] [stdout] | ------------------- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - FailedToParseNumber(Option), [INFO] [stdout] 11 + FailedToParseNumber(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/errors.rs:14:21 [INFO] [stdout] | [INFO] [stdout] 14 | InvalidKeyIndex(i32), [INFO] [stdout] | --------------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 14 - InvalidKeyIndex(i32), [INFO] [stdout] 14 + InvalidKeyIndex(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `expected` and `actual` are never read [INFO] [stdout] --> src/errors.rs:15:18 [INFO] [stdout] | [INFO] [stdout] 15 | HashMismatch{expected: u32, actual: u32}, [INFO] [stdout] | ------------ ^^^^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] = note: `BError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/errors.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | / match self { [INFO] [stdout] 25 | | Self::Io(_) | Self::ConnectionClosed => false, [INFO] [stdout] 26 | | _ => true, [INFO] [stdout] 27 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 24 - match self { [INFO] [stdout] 25 - Self::Io(_) | Self::ConnectionClosed => false, [INFO] [stdout] 26 - _ => true, [INFO] [stdout] 27 - } [INFO] [stdout] 24 + !matches!(self, Self::Io(_) | Self::ConnectionClosed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.fold` can be written more succinctly using another method [INFO] [stdout] --> src/state_machine.rs:120:55 [INFO] [stdout] | [INFO] [stdout] 120 | let sum = username.bytes().map(Into::::into).fold(0u32, |acu, x| acu + x); [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/server.rs:57:52 [INFO] [stdout] | [INFO] [stdout] 57 | fn check_max_len_overflow(max_len: usize, message: &Vec) -> 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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 57 - fn check_max_len_overflow(max_len: usize, message: &Vec) -> bool { [INFO] [stdout] 57 + fn check_max_len_overflow(max_len: usize, message: &[u8]) -> bool { [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/server.rs:62:23 [INFO] [stdout] | [INFO] [stdout] 62 | fn prefix_match(msg1: &Vec, msg2: &Vec) -> 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] 62 - fn prefix_match(msg1: &Vec, msg2: &Vec) -> bool { [INFO] [stdout] 62 + fn prefix_match(msg1: &[u8], msg2: &Vec) -> bool { [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/server.rs:62:39 [INFO] [stdout] | [INFO] [stdout] 62 | fn prefix_match(msg1: &Vec, msg2: &Vec) -> 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] 62 - fn prefix_match(msg1: &Vec, msg2: &Vec) -> bool { [INFO] [stdout] 62 + fn prefix_match(msg1: &Vec, msg2: &[u8]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `NORTH` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `North` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SOUTH` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `South` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EAST` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:19 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `East` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `WEST` contains a capitalized acronym [INFO] [stdout] --> src/path.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | NORTH, SOUTH, EAST, WEST, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `West` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] 24 | | || (x < 0 && self == &Orient::EAST) [INFO] [stdout] 25 | | || (y > 0 && self == &Orient::SOUTH) [INFO] [stdout] | |________________________________________________^ help: try: `x > 0 && self == &Orient::WEST || x < 0 && self == &Orient::EAST || y > 0 && self == &Orient::SOUTH` [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/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] 24 | | || (x < 0 && self == &Orient::EAST) [INFO] [stdout] | |_______________________________________________^ help: try: `x > 0 && self == &Orient::WEST || x < 0 && self == &Orient::EAST` [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/path.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / false [INFO] [stdout] 23 | | || (x > 0 && self == &Orient::WEST) [INFO] [stdout] | |_______________________________________________^ help: try: `x > 0 && self == &Orient::WEST` [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 operation has no effect [INFO] [stdout] --> src/path.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | Self::NORTH => (x + 0, y + 1), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] = note: `#[warn(clippy::identity_op)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | Self::SOUTH => (x + 0, y - 1), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:32:36 [INFO] [stdout] | [INFO] [stdout] 32 | Self::EAST => (x + 1, y + 0), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this operation has no effect [INFO] [stdout] --> src/path.rs:33:36 [INFO] [stdout] | [INFO] [stdout] 33 | Self::WEST => (x - 1, y + 0), [INFO] [stdout] | ^^^^^ help: consider reducing it to: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] running `Command { std: "docker" "inspect" "b43919a289b17fd1dfae200e491c1a0c50e54b3899c4fa18ba17ff8e031da26e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b43919a289b17fd1dfae200e491c1a0c50e54b3899c4fa18ba17ff8e031da26e", kill_on_drop: false }` [INFO] [stdout] b43919a289b17fd1dfae200e491c1a0c50e54b3899c4fa18ba17ff8e031da26e