[INFO] cloning repository https://github.com/DevdouglasGfs/training-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DevdouglasGfs/training-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDevdouglasGfs%2Ftraining-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDevdouglasGfs%2Ftraining-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f61a81df80fd884eb4d98cb6fdb2e6ccf3a249d7 [INFO] linting DevdouglasGfs/training-rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDevdouglasGfs%2Ftraining-rust" "/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/DevdouglasGfs/training-rust [INFO] finished tweaking git repo https://github.com/DevdouglasGfs/training-rust [INFO] tweaked toml for git repo https://github.com/DevdouglasGfs/training-rust written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/DevdouglasGfs/training-rust 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/DevdouglasGfs/training-rust 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 unicode-ident v1.0.18 [INFO] [stderr] Downloaded strum v0.27.1 [INFO] [stderr] Downloaded rustversion v1.0.20 [INFO] [stderr] Downloaded proc-macro2 v1.0.94 [INFO] [stderr] Downloaded quote v1.0.40 [INFO] [stderr] Downloaded strum_macros v0.27.1 [INFO] [stderr] Downloaded zerocopy-derive v0.8.24 [INFO] [stderr] Downloaded zerocopy v0.8.24 [INFO] [stderr] Downloaded syn v2.0.100 [INFO] [stderr] Downloaded libc v0.2.171 [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] 13d3e1b7bbe93e6fa7513520498ca344f260c8ebdb4b82364d4f487bcf24271b [INFO] running `Command { std: "docker" "start" "-a" "13d3e1b7bbe93e6fa7513520498ca344f260c8ebdb4b82364d4f487bcf24271b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "13d3e1b7bbe93e6fa7513520498ca344f260c8ebdb4b82364d4f487bcf24271b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "13d3e1b7bbe93e6fa7513520498ca344f260c8ebdb4b82364d4f487bcf24271b", kill_on_drop: false }` [INFO] [stdout] 13d3e1b7bbe93e6fa7513520498ca344f260c8ebdb4b82364d4f487bcf24271b [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] dcb28163ed469656379f3d487a619ec67433134f606e152b2ff84b403d95b218 [INFO] running `Command { std: "docker" "start" "-a" "dcb28163ed469656379f3d487a619ec67433134f606e152b2ff84b403d95b218", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling zerocopy v0.8.24 [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling rustversion v1.0.20 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking strum v0.27.1 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Compiling strum_macros v0.27.1 [INFO] [stderr] Checking training v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_trackers_model.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | / return String::from( [INFO] [stdout] 3 | | "I don't was able to read what you did you have wroten... Is better to play again.", [INFO] [stdout] 4 | | ); [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] 2 ~ String::from( [INFO] [stdout] 3 + "I don't was able to read what you did you have wroten... Is better to play again.", [INFO] [stdout] 4 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/validator.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | return is_filled && is_letters; [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] 4 - return is_filled && is_letters; [INFO] [stdout] 4 + is_filled && is_letters [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/validator.rs:3:53 [INFO] [stdout] | [INFO] [stdout] 3 | let is_letters = name.trim().chars().all(|char| !!char.is_alphabetic()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `char.is_alphabetic()` [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: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::{io, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EASY` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | EASY, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Easy` [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 `MEDIUM` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | MEDIUM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Medium` [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 `HARD` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | HARD, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Hard` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:82:27 [INFO] [stdout] | [INFO] [stdout] 82 | fn get_username(username: &String) -> GetUserNameResult { [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] 82 ~ fn get_username(username: &str) -> GetUserNameResult { [INFO] [stdout] 83 ~ let mut name = username.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | format!("it doesn't look like a name, please told me your name ❤️✨"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"it doesn't look like a name, please told me your name ❤️✨".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:93:14 [INFO] [stdout] | [INFO] [stdout] 93 | .expect(&unable_to_read_read_line_message()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` 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/main.rs:107:45 [INFO] [stdout] | [INFO] [stdout] 107 | fn start_game(max_view_space: u8, username: &String, level: GameLevels) { [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] 107 - fn start_game(max_view_space: u8, username: &String, level: GameLevels) { [INFO] [stdout] 107 + fn start_game(max_view_space: u8, username: &str, level: GameLevels) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:120:14 [INFO] [stdout] | [INFO] [stdout] 120 | .expect(&unable_to_read_read_line_message()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:207:37 [INFO] [stdout] | [INFO] [stdout] 207 | let is_valid_mode = !modes.get(choice).is_none(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `modes.get(choice).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: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | / println!( [INFO] [stdout] 164 | | "1 - {}", [INFO] [stdout] 165 | | format!( [INFO] [stdout] 166 | | "😊 {}: it's the better mode to try your lucky. (Default mode)", [INFO] [stdout] ... | [INFO] [stdout] 169 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | / println!( [INFO] [stdout] 173 | | "2 - {}", [INFO] [stdout] 174 | | format!( [INFO] [stdout] 175 | | "🫣 {}: Woo! You have very much lucky or you are trying your lucky with me?!", [INFO] [stdout] ... | [INFO] [stdout] 178 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | println!("3 - {}", format!("💀 {}: Oh my god! What's you?!", mode)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:192:14 [INFO] [stdout] | [INFO] [stdout] 192 | .expect(&unable_to_read_read_line_message()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:195:80 [INFO] [stdout] | [INFO] [stdout] 195 | let was_provided_just_numbers = local_choice.trim().chars().all(|char| !!char.is_numeric()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `char.is_numeric()` [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/main.rs:199:25 [INFO] [stdout] | [INFO] [stdout] 199 | .all(|char| !!char.is_whitespace()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `char.is_whitespace()` [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: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/main.rs:205:30 [INFO] [stdout] | [INFO] [stdout] 205 | let choice = choice.unwrap_or_else(|_| 1).sub(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 205 - let choice = choice.unwrap_or_else(|_| 1).sub(1); [INFO] [stdout] 205 + let choice = choice.unwrap_or(1).sub(1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | / return DefineGameModeResult { [INFO] [stdout] 264 | | view_space: max_view_space, [INFO] [stdout] 265 | | level, [INFO] [stdout] 266 | | }; [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] 263 ~ DefineGameModeResult { [INFO] [stdout] 264 + view_space: max_view_space, [INFO] [stdout] 265 + level, [INFO] [stdout] 266 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.82s [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/error_trackers_model.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | / return String::from( [INFO] [stdout] 3 | | "I don't was able to read what you did you have wroten... Is better to play again.", [INFO] [stdout] 4 | | ); [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] 2 ~ String::from( [INFO] [stdout] 3 + "I don't was able to read what you did you have wroten... Is better to play again.", [INFO] [stdout] 4 ~ ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/validator.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | return is_filled && is_letters; [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] 4 - return is_filled && is_letters; [INFO] [stdout] 4 + is_filled && is_letters [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/validator.rs:3:53 [INFO] [stdout] | [INFO] [stdout] 3 | let is_letters = name.trim().chars().all(|char| !!char.is_alphabetic()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `char.is_alphabetic()` [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: importing legacy numeric constants [INFO] [stdout] --> src/main.rs:10:15 [INFO] [stdout] | [INFO] [stdout] 10 | use std::{io, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `EASY` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | EASY, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Easy` [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 `MEDIUM` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | MEDIUM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Medium` [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 `HARD` contains a capitalized acronym [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | HARD, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Hard` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:82:27 [INFO] [stdout] | [INFO] [stdout] 82 | fn get_username(username: &String) -> GetUserNameResult { [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] 82 ~ fn get_username(username: &str) -> GetUserNameResult { [INFO] [stdout] 83 ~ let mut name = username.to_owned(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | format!("it doesn't look like a name, please told me your name ❤️✨"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"it doesn't look like a name, please told me your name ❤️✨".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:93:14 [INFO] [stdout] | [INFO] [stdout] 93 | .expect(&unable_to_read_read_line_message()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` 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/main.rs:107:45 [INFO] [stdout] | [INFO] [stdout] 107 | fn start_game(max_view_space: u8, username: &String, level: GameLevels) { [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] 107 - fn start_game(max_view_space: u8, username: &String, level: GameLevels) { [INFO] [stdout] 107 + fn start_game(max_view_space: u8, username: &str, level: GameLevels) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:120:14 [INFO] [stdout] | [INFO] [stdout] 120 | .expect(&unable_to_read_read_line_message()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:207:37 [INFO] [stdout] | [INFO] [stdout] 207 | let is_valid_mode = !modes.get(choice).is_none(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `modes.get(choice).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: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:163:13 [INFO] [stdout] | [INFO] [stdout] 163 | / println!( [INFO] [stdout] 164 | | "1 - {}", [INFO] [stdout] 165 | | format!( [INFO] [stdout] 166 | | "😊 {}: it's the better mode to try your lucky. (Default mode)", [INFO] [stdout] ... | [INFO] [stdout] 169 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | / println!( [INFO] [stdout] 173 | | "2 - {}", [INFO] [stdout] 174 | | format!( [INFO] [stdout] 175 | | "🫣 {}: Woo! You have very much lucky or you are trying your lucky with me?!", [INFO] [stdout] ... | [INFO] [stdout] 178 | | ); [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `println!` args [INFO] [stdout] --> src/main.rs:181:13 [INFO] [stdout] | [INFO] [stdout] 181 | println!("3 - {}", format!("💀 {}: Oh my god! What's you?!", mode)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `println!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/main.rs:192:14 [INFO] [stdout] | [INFO] [stdout] 192 | .expect(&unable_to_read_read_line_message()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|_| panic!("{}", unable_to_read_read_line_message()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:195:80 [INFO] [stdout] | [INFO] [stdout] 195 | let was_provided_just_numbers = local_choice.trim().chars().all(|char| !!char.is_numeric()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `char.is_numeric()` [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/main.rs:199:25 [INFO] [stdout] | [INFO] [stdout] 199 | .all(|char| !!char.is_whitespace()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `char.is_whitespace()` [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: unnecessary closure used to substitute value for `Result::Err` [INFO] [stdout] --> src/main.rs:205:30 [INFO] [stdout] | [INFO] [stdout] 205 | let choice = choice.unwrap_or_else(|_| 1).sub(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 205 - let choice = choice.unwrap_or_else(|_| 1).sub(1); [INFO] [stdout] 205 + let choice = choice.unwrap_or(1).sub(1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:263:5 [INFO] [stdout] | [INFO] [stdout] 263 | / return DefineGameModeResult { [INFO] [stdout] 264 | | view_space: max_view_space, [INFO] [stdout] 265 | | level, [INFO] [stdout] 266 | | }; [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] 263 ~ DefineGameModeResult { [INFO] [stdout] 264 + view_space: max_view_space, [INFO] [stdout] 265 + level, [INFO] [stdout] 266 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "dcb28163ed469656379f3d487a619ec67433134f606e152b2ff84b403d95b218", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcb28163ed469656379f3d487a619ec67433134f606e152b2ff84b403d95b218", kill_on_drop: false }` [INFO] [stdout] dcb28163ed469656379f3d487a619ec67433134f606e152b2ff84b403d95b218