[INFO] cloning repository https://github.com/danielgjackson/rustybar [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/danielgjackson/rustybar" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielgjackson%2Frustybar", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielgjackson%2Frustybar'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6c5b925af7fb881ce07ddf37a416259133f4ac41 [INFO] linting danielgjackson/rustybar against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdanielgjackson%2Frustybar" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/danielgjackson/rustybar [INFO] finished tweaking git repo https://github.com/danielgjackson/rustybar [INFO] tweaked toml for git repo https://github.com/danielgjackson/rustybar written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/danielgjackson/rustybar 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/danielgjackson/rustybar 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] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 6f91f525548aa681dff9e297bdffae03a9f1941217213eaead85a56c6ff2ca72 [INFO] running `Command { std: "docker" "start" "-a" "6f91f525548aa681dff9e297bdffae03a9f1941217213eaead85a56c6ff2ca72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6f91f525548aa681dff9e297bdffae03a9f1941217213eaead85a56c6ff2ca72", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6f91f525548aa681dff9e297bdffae03a9f1941217213eaead85a56c6ff2ca72", kill_on_drop: false }` [INFO] [stdout] 6f91f525548aa681dff9e297bdffae03a9f1941217213eaead85a56c6ff2ca72 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] aac010ad7ca7bd5b2eb0f7c8b42b42a087062d71c103d8dd3de14bd3e56b1898 [INFO] running `Command { std: "docker" "start" "-a" "aac010ad7ca7bd5b2eb0f7c8b42b42a087062d71c103d8dd3de14bd3e56b1898", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking rustybar v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/main.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | 0...32 => Code::CodeA, // Must be Code A [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/main.rs:198:14 [INFO] [stdout] | [INFO] [stdout] 198 | b'\''...b'\x7f' => Code::CodeB, // Must be Code B [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/main.rs:197:10 [INFO] [stdout] | [INFO] [stdout] 197 | 0...32 => Code::CodeA, // Must be Code A [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/main.rs:198:14 [INFO] [stdout] | [INFO] [stdout] 198 | b'\''...b'\x7f' => Code::CodeB, // Must be Code B [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | return out; [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] 148 - return out; [INFO] [stdout] 148 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | return out; [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] 162 - return out; [INFO] [stdout] 162 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | return out; [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] 148 - return out; [INFO] [stdout] 148 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:151:23 [INFO] [stdout] | [INFO] [stdout] 151 | fn render_wide(input: &Vec, invert: bool) -> 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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 151 - fn render_wide(input: &Vec, invert: bool) -> Vec { [INFO] [stdout] 151 + fn render_wide(input: &[bool], invert: bool) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `input` [INFO] [stdout] --> src/main.rs:153:14 [INFO] [stdout] | [INFO] [stdout] 153 | for i in 0..input.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] 153 - for i in 0..input.len() { [INFO] [stdout] 153 + for in &input { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | return out; [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] 162 - return out; [INFO] [stdout] 162 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:151:23 [INFO] [stdout] | [INFO] [stdout] 151 | fn render_wide(input: &Vec, invert: bool) -> 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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 151 - fn render_wide(input: &Vec, invert: bool) -> Vec { [INFO] [stdout] 151 + fn render_wide(input: &[bool], invert: bool) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | return out; [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] 180 - return out; [INFO] [stdout] 180 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `input` [INFO] [stdout] --> src/main.rs:153:14 [INFO] [stdout] | [INFO] [stdout] 153 | for i in 0..input.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] 153 - for i in 0..input.len() { [INFO] [stdout] 153 + for in &input { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | fn render_narrow(input: &Vec, invert: bool) -> 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] 165 - fn render_narrow(input: &Vec, invert: bool) -> Vec { [INFO] [stdout] 165 + fn render_narrow(input: &[bool], invert: bool) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | let out_width = (input.len() + 1) / 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `input.len().div_ceil(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | return out; [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] 180 - return out; [INFO] [stdout] 180 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | fn render_narrow(input: &Vec, invert: bool) -> 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] 165 - fn render_narrow(input: &Vec, invert: bool) -> Vec { [INFO] [stdout] 165 + fn render_narrow(input: &[bool], invert: bool) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/main.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | let out_width = (input.len() + 1) / 2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `input.len().div_ceil(2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / return match (current_code, new_code) { [INFO] [stdout] 185 | | (Code::CodeA, Code::CodeC) | (Code::CodeB, Code::CodeC) => 99, // CODE C [INFO] [stdout] 186 | | (Code::CodeA, Code::CodeB) | (Code::CodeC, Code::CodeB) => 100, // CODE B [INFO] [stdout] 187 | | (Code::CodeB, Code::CodeA) | (Code::CodeC, Code::CodeA) => 101, // CODE A [INFO] [stdout] ... | [INFO] [stdout] 191 | | _ => 108, // (none) [INFO] [stdout] 192 | | } [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] 184 ~ match (current_code, new_code) { [INFO] [stdout] 185 + (Code::CodeA, Code::CodeC) | (Code::CodeB, Code::CodeC) => 99, // CODE C [INFO] [stdout] 186 + (Code::CodeA, Code::CodeB) | (Code::CodeC, Code::CodeB) => 100, // CODE B [INFO] [stdout] 187 + (Code::CodeB, Code::CodeA) | (Code::CodeC, Code::CodeA) => 101, // CODE A [INFO] [stdout] 188 + (Code::None, Code::CodeA) => 103, // START (Code A) [INFO] [stdout] 189 + (Code::None, Code::CodeB) => 104, // START (Code B) [INFO] [stdout] 190 + (Code::None, Code::CodeC) => 105, // START (Code C) [INFO] [stdout] 191 + _ => 108, // (none) [INFO] [stdout] 192 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / return match (current_code, new_code) { [INFO] [stdout] 185 | | (Code::CodeA, Code::CodeC) | (Code::CodeB, Code::CodeC) => 99, // CODE C [INFO] [stdout] 186 | | (Code::CodeA, Code::CodeB) | (Code::CodeC, Code::CodeB) => 100, // CODE B [INFO] [stdout] 187 | | (Code::CodeB, Code::CodeA) | (Code::CodeC, Code::CodeA) => 101, // CODE A [INFO] [stdout] ... | [INFO] [stdout] 191 | | _ => 108, // (none) [INFO] [stdout] 192 | | } [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] 184 ~ match (current_code, new_code) { [INFO] [stdout] 185 + (Code::CodeA, Code::CodeC) | (Code::CodeB, Code::CodeC) => 99, // CODE C [INFO] [stdout] 186 + (Code::CodeA, Code::CodeB) | (Code::CodeC, Code::CodeB) => 100, // CODE B [INFO] [stdout] 187 + (Code::CodeB, Code::CodeA) | (Code::CodeC, Code::CodeA) => 101, // CODE A [INFO] [stdout] 188 + (Code::None, Code::CodeA) => 103, // START (Code A) [INFO] [stdout] 189 + (Code::None, Code::CodeB) => 104, // START (Code B) [INFO] [stdout] 190 + (Code::None, Code::CodeC) => 105, // START (Code C) [INFO] [stdout] 191 + _ => 108, // (none) [INFO] [stdout] 192 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:221:78 [INFO] [stdout] | [INFO] [stdout] 221 | ...) && !((!c2.is_ascii_digit() || !c3.is_ascii_digit()) && (current_code == Code::CodeA || current_code == Code::CodeB)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c2.is_ascii_digit() && c3.is_ascii_digit() || current_code != Code::CodeA && current_code != Code::CodeB` [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: unneeded `return` statement [INFO] [stdout] --> src/main.rs:256:5 [INFO] [stdout] | [INFO] [stdout] 256 | return current_code; [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] 256 - return current_code; [INFO] [stdout] 256 + current_code [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/main.rs:205:44 [INFO] [stdout] | [INFO] [stdout] 205 | fn add_symbols(symbols: &mut Vec, arg: &String, existing_code: Code) -> Code { [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] 205 - fn add_symbols(symbols: &mut Vec, arg: &String, existing_code: Code) -> Code { [INFO] [stdout] 205 + fn add_symbols(symbols: &mut Vec, arg: &str, existing_code: Code) -> Code { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:221:78 [INFO] [stdout] | [INFO] [stdout] 221 | ...) && !((!c2.is_ascii_digit() || !c3.is_ascii_digit()) && (current_code == Code::CodeA || current_code == Code::CodeB)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c2.is_ascii_digit() && c3.is_ascii_digit() || current_code != Code::CodeA && current_code != Code::CodeB` [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: unneeded `return` statement [INFO] [stdout] --> src/main.rs:256:5 [INFO] [stdout] | [INFO] [stdout] 256 | return current_code; [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] 256 - return current_code; [INFO] [stdout] 256 + current_code [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/main.rs:205:44 [INFO] [stdout] | [INFO] [stdout] 205 | fn add_symbols(symbols: &mut Vec, arg: &String, existing_code: Code) -> Code { [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] 205 - fn add_symbols(symbols: &mut Vec, arg: &String, existing_code: Code) -> Code { [INFO] [stdout] 205 + fn add_symbols(symbols: &mut Vec, arg: &str, existing_code: Code) -> Code { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:228:27 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:228:27 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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: casting a character literal to `u8` truncates [INFO] [stdout] --> src/main.rs:228:38 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^ help: use a byte literal instead: `b'0'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] = note: `#[warn(clippy::char_lit_as_u8)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/main.rs:228:38 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^ help: use a byte literal instead: `b'0'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] = note: `#[warn(clippy::char_lit_as_u8)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:228:56 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(c1 as u8 - '0' as u8)` [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 (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:228:56 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(c1 as u8 - '0' as u8)` [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 a character literal to `u8` truncates [INFO] [stdout] --> src/main.rs:228:68 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^ help: use a byte literal instead: `b'0'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting a character literal to `u8` truncates [INFO] [stdout] --> src/main.rs:228:68 [INFO] [stdout] | [INFO] [stdout] 228 | symbols.push((c0 as u8 - '0' as u8) * 10 + (c1 as u8 - '0' as u8) as u8); // Code C double digits [INFO] [stdout] | ^^^^^^^^^ help: use a byte literal instead: `b'0'` [INFO] [stdout] | [INFO] [stdout] = note: `char` is four bytes wide, but `u8` is a single byte [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:242:30 [INFO] [stdout] | [INFO] [stdout] 242 | symbols.push(c0 as u8 + 64); [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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 (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:244:30 [INFO] [stdout] | [INFO] [stdout] 244 | symbols.push(c0 as u8 - 32); [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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/main.rs:251:8 [INFO] [stdout] | [INFO] [stdout] 251 | if symbols.len() == 0 && current_code == Code::None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `symbols.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: casting to the same type is unnecessary (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:242:30 [INFO] [stdout] | [INFO] [stdout] 242 | symbols.push(c0 as u8 + 64); [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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 (`u8` -> `u8`) [INFO] [stdout] --> src/main.rs:244:30 [INFO] [stdout] | [INFO] [stdout] 244 | symbols.push(c0 as u8 - 32); [INFO] [stdout] | ^^^^^^^^ help: try: `c0` [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/main.rs:251:8 [INFO] [stdout] | [INFO] [stdout] 251 | if symbols.len() == 0 && current_code == Code::None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `symbols.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: unneeded `return` statement [INFO] [stdout] --> src/main.rs:274:5 [INFO] [stdout] | [INFO] [stdout] 274 | return checksum as u8; [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] 274 - return checksum as u8; [INFO] [stdout] 274 + checksum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:274:5 [INFO] [stdout] | [INFO] [stdout] 274 | return checksum as u8; [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] 274 - return checksum as u8; [INFO] [stdout] 274 + checksum as u8 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `position` is used as a loop counter [INFO] [stdout] --> src/main.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 265 | for b in symbols { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using: `for (position, b) in (0_u32..).zip(symbols.iter())` [INFO] [stdout] | [INFO] [stdout] = note: `position` is of type `u32`, making it ineligible for `Iterator::enumerate` [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: the variable `position` is used as a loop counter [INFO] [stdout] --> src/main.rs:265:5 [INFO] [stdout] | [INFO] [stdout] 265 | for b in symbols { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using: `for (position, b) in (0_u32..).zip(symbols.iter())` [INFO] [stdout] | [INFO] [stdout] = note: `position` is of type `u32`, making it ineligible for `Iterator::enumerate` [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: unneeded late initialization [INFO] [stdout] --> src/main.rs:310:9 [INFO] [stdout] | [INFO] [stdout] 310 | let out; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `out` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 310 ~ [INFO] [stdout] 311 ~ let out = if narrow { [INFO] [stdout] 312 ~ render_narrow(&bars, invert) [INFO] [stdout] 313 | } else { [INFO] [stdout] 314 ~ render_wide(&bars, invert) [INFO] [stdout] 315 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/main.rs:310:9 [INFO] [stdout] | [INFO] [stdout] 310 | let out; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `out` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 310 ~ [INFO] [stdout] 311 ~ let out = if narrow { [INFO] [stdout] 312 ~ render_narrow(&bars, invert) [INFO] [stdout] 313 | } else { [INFO] [stdout] 314 ~ render_wide(&bars, invert) [INFO] [stdout] 315 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "aac010ad7ca7bd5b2eb0f7c8b42b42a087062d71c103d8dd3de14bd3e56b1898", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aac010ad7ca7bd5b2eb0f7c8b42b42a087062d71c103d8dd3de14bd3e56b1898", kill_on_drop: false }` [INFO] [stdout] aac010ad7ca7bd5b2eb0f7c8b42b42a087062d71c103d8dd3de14bd3e56b1898