[INFO] cloning repository https://github.com/ItsBaZs112/mmmproc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ItsBaZs112/mmmproc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FItsBaZs112%2Fmmmproc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FItsBaZs112%2Fmmmproc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2ee6d4899dfa1fade5b99a801316e01b878e5b8d [INFO] linting ItsBaZs112/mmmproc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FItsBaZs112%2Fmmmproc" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ItsBaZs112/mmmproc [INFO] finished tweaking git repo https://github.com/ItsBaZs112/mmmproc [INFO] tweaked toml for git repo https://github.com/ItsBaZs112/mmmproc written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ItsBaZs112/mmmproc 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/ItsBaZs112/mmmproc 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded markov v1.1.0 [INFO] [stderr] Downloaded async_load v1.0.3 [INFO] [stderr] Downloaded cc v1.1.25 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 061e7f11eceb1c3ee0cb45adf77fe9b755816f3175835fcce912bdd269971722 [INFO] running `Command { std: "docker" "start" "-a" "061e7f11eceb1c3ee0cb45adf77fe9b755816f3175835fcce912bdd269971722", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "061e7f11eceb1c3ee0cb45adf77fe9b755816f3175835fcce912bdd269971722", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "061e7f11eceb1c3ee0cb45adf77fe9b755816f3175835fcce912bdd269971722", kill_on_drop: false }` [INFO] [stdout] 061e7f11eceb1c3ee0cb45adf77fe9b755816f3175835fcce912bdd269971722 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d9678bdcfa2d01df536e5c4129671014271c42ffa7c5e8aecc1a8f9f0f8db2ac [INFO] running `Command { std: "docker" "start" "-a" "d9678bdcfa2d01df536e5c4129671014271c42ffa7c5e8aecc1a8f9f0f8db2ac", kill_on_drop: false }` [INFO] [stderr] Checking bytes v1.7.2 [INFO] [stderr] Compiling cc v1.1.25 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking hashbrown v0.15.0 [INFO] [stderr] Compiling syn v2.0.79 [INFO] [stderr] Checking getrandom v0.1.16 [INFO] [stderr] Checking unicode-normalization v0.1.24 [INFO] [stderr] Checking unicode-bidi v0.3.17 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking rustls-pki-types v1.9.0 [INFO] [stderr] Checking fixedbitset v0.2.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking petgraph v0.5.1 [INFO] [stderr] Checking getopts v0.2.21 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking ipnet v2.10.1 [INFO] [stderr] Checking indexmap v2.6.0 [INFO] [stderr] Checking async_load v1.0.3 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling openssl-sys v0.9.103 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Compiling openssl v0.10.66 [INFO] [stderr] Compiling native-tls v0.2.12 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking h2 v0.4.6 [INFO] [stderr] Checking serde_yaml v0.8.26 [INFO] [stderr] Checking serde_json v1.0.128 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking markov v1.1.0 [INFO] [stderr] Checking hyper v1.4.1 [INFO] [stderr] Checking hyper-util v0.1.9 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Checking reqwest v0.12.8 [INFO] [stderr] Checking mmmproc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/traditional.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `thread_rng` [INFO] [stdout] --> src/traditional.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/traditional_old.rs:629:28 [INFO] [stdout] | [INFO] [stdout] 629 | if (vecheights[i].ypos != ceiling_y) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 629 - if (vecheights[i].ypos != ceiling_y) { [INFO] [stdout] 629 + if vecheights[i].ypos != ceiling_y { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/traditional_old.rs:629:28 [INFO] [stdout] | [INFO] [stdout] 629 | if (vecheights[i].ypos != ceiling_y) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 629 - if (vecheights[i].ypos != ceiling_y) { [INFO] [stdout] 629 + if vecheights[i].ypos != ceiling_y { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `f` is never read [INFO] [stdout] --> src/plot.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | let mut f = "0"; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `past_chunk` [INFO] [stdout] --> src/traditional.rs:15:46 [INFO] [stdout] | [INFO] [stdout] 15 | fn new(offset_x: u64, offset_y: u64, past_chunk: Chunk, vert: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_past_chunk` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vert` [INFO] [stdout] --> src/traditional.rs:15:65 [INFO] [stdout] | [INFO] [stdout] 15 | fn new(offset_x: u64, offset_y: u64, past_chunk: Chunk, vert: bool) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_vert` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/traditional.rs:75:29 [INFO] [stdout] | [INFO] [stdout] 75 | let id = 0; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/traditional.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let mut falsechunk = Chunk::new( [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `past` is never read [INFO] [stdout] --> src/traditional.rs:108:24 [INFO] [stdout] | [INFO] [stdout] 108 | let mut past = r.clone(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mus` is never read [INFO] [stdout] --> src/traditional.rs:182:23 [INFO] [stdout] | [INFO] [stdout] 182 | let mut mus = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `bossx` is never read [INFO] [stdout] --> src/traditional.rs:191:25 [INFO] [stdout] | [INFO] [stdout] 191 | let mut bossx = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `bossy` is never read [INFO] [stdout] --> src/traditional.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | let mut bossy = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vecheights` [INFO] [stdout] --> src/traditional.rs:381:13 [INFO] [stdout] | [INFO] [stdout] 381 | let vecheights: Vec = binding.1; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vecheights` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `objpoints` [INFO] [stdout] --> src/traditional.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | let objpoints = transpoints.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_objpoints` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `FloorTo` is never used [INFO] [stdout] --> src/traditional.rs:133:11 [INFO] [stdout] | [INFO] [stdout] 133 | trait FloorTo: Sized { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `choose` is never used [INFO] [stdout] --> src/traditional.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | fn choose(ops: Vec) -> T { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/classic.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, 0), dfwpn_rng); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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 `format!` args [INFO] [stdout] --> src/classic.rs:14:24 [INFO] [stdout] | [INFO] [stdout] 14 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), -1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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 `format!` args [INFO] [stdout] --> src/classic.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: value assigned to `f` is never read [INFO] [stdout] --> src/plot.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | let mut f = "0"; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/classic.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | let can_charge; //can megaman charge buster? [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 `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 223 ~ //can megaman charge buster? [INFO] [stdout] 224 | let can_charge_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 225 ~ let can_charge = if can_charge_rng == 4 { [INFO] [stdout] 226 ~ 0 [INFO] [stdout] 227 | } else { [INFO] [stdout] 228 ~ 1 [INFO] [stdout] 229 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `past_chunk` [INFO] [stdout] --> src/traditional.rs:15:46 [INFO] [stdout] | [INFO] [stdout] 15 | fn new(offset_x: u64, offset_y: u64, past_chunk: Chunk, vert: bool) -> Self { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_past_chunk` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vert` [INFO] [stdout] --> src/traditional.rs:15:65 [INFO] [stdout] | [INFO] [stdout] 15 | fn new(offset_x: u64, offset_y: u64, past_chunk: Chunk, vert: bool) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_vert` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/classic.rs:237:9 [INFO] [stdout] | [INFO] [stdout] 237 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 237 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 238 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 239 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 240 ~ 0 [INFO] [stdout] 241 | } else { [INFO] [stdout] 242 ~ 1 [INFO] [stdout] 243 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/traditional.rs:75:29 [INFO] [stdout] | [INFO] [stdout] 75 | let id = 0; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/traditional.rs:97:13 [INFO] [stdout] | [INFO] [stdout] 97 | let mut falsechunk = Chunk::new( [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `past` is never read [INFO] [stdout] --> src/traditional.rs:108:24 [INFO] [stdout] | [INFO] [stdout] 108 | let mut past = r.clone(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mus` is never read [INFO] [stdout] --> src/traditional.rs:182:23 [INFO] [stdout] | [INFO] [stdout] 182 | let mut mus = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `bossx` is never read [INFO] [stdout] --> src/traditional.rs:191:25 [INFO] [stdout] | [INFO] [stdout] 191 | let mut bossx = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `bossy` is never read [INFO] [stdout] --> src/traditional.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | let mut bossy = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vecheights` [INFO] [stdout] --> src/traditional.rs:381:13 [INFO] [stdout] | [INFO] [stdout] 381 | let vecheights: Vec = binding.1; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vecheights` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `objpoints` [INFO] [stdout] --> src/traditional.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | let objpoints = transpoints.clone(); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_objpoints` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/plot.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | print!("{}\n", f.repeat(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 12 - print!("{}\n", f.repeat(i)); [INFO] [stdout] 12 + println!("{}", f.repeat(i)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `w` is only used to index `grab` [INFO] [stdout] --> src/traditional.rs:50:26 [INFO] [stdout] | [INFO] [stdout] 50 | for w in 0..width { [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] 50 - for w in 0..width { [INFO] [stdout] 50 + for in grab.iter().take(width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/traditional.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 84 | let f = finally.clone(); [INFO] [stdout] | ------------------------ unnecessary `let` binding [INFO] [stdout] 85 | f [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 84 ~ [INFO] [stdout] 85 ~ finally.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/traditional.rs:242:20 [INFO] [stdout] | [INFO] [stdout] 242 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: unneeded late initialization [INFO] [stdout] --> src/traditional.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | let can_charge; //can megaman charge buster? [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] help: move the declaration `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 250 ~ //can megaman charge buster? [INFO] [stdout] 251 | let can_charge_rng = rand::thread_rng().gen_bool(8.0 / 10.0); // 8/22/24: updated rng [INFO] [stdout] 252 ~ let can_charge = if can_charge_rng { [INFO] [stdout] 253 ~ 0 [INFO] [stdout] 254 | } else { [INFO] [stdout] 255 ~ 1 [INFO] [stdout] 256 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 265 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 266 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 267 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 268 ~ 0 [INFO] [stdout] 269 | } else { [INFO] [stdout] 270 ~ 1 [INFO] [stdout] 271 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `FloorTo` is never used [INFO] [stdout] --> src/traditional.rs:133:11 [INFO] [stdout] | [INFO] [stdout] 133 | trait FloorTo: Sized { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `choose` is never used [INFO] [stdout] --> src/traditional.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | fn choose(ops: Vec) -> T { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/classic.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, 0), dfwpn_rng); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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 `format!` args [INFO] [stdout] --> src/classic.rs:14:24 [INFO] [stdout] | [INFO] [stdout] 14 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), -1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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 `format!` args [INFO] [stdout] --> src/classic.rs:17:24 [INFO] [stdout] | [INFO] [stdout] 17 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: unneeded late initialization [INFO] [stdout] --> src/classic.rs:223:9 [INFO] [stdout] | [INFO] [stdout] 223 | let can_charge; //can megaman charge buster? [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 `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 223 ~ //can megaman charge buster? [INFO] [stdout] 224 | let can_charge_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 225 ~ let can_charge = if can_charge_rng == 4 { [INFO] [stdout] 226 ~ 0 [INFO] [stdout] 227 | } else { [INFO] [stdout] 228 ~ 1 [INFO] [stdout] 229 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/classic.rs:237:9 [INFO] [stdout] | [INFO] [stdout] 237 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 237 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 238 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 239 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 240 ~ 0 [INFO] [stdout] 241 | } else { [INFO] [stdout] 242 ~ 1 [INFO] [stdout] 243 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PLC` contains a capitalized acronym [INFO] [stdout] --> src/traditional_old.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | struct PLC { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Plc` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/traditional_old.rs:140:50 [INFO] [stdout] | [INFO] [stdout] 140 | fn autotile_prep(tiles: &TileData, data: &Vec) -> TileData { [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] 140 - fn autotile_prep(tiles: &TileData, data: &Vec) -> TileData { [INFO] [stdout] 140 + fn autotile_prep(tiles: &TileData, data: &[TileData]) -> TileData { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/traditional_old.rs:328:20 [INFO] [stdout] | [INFO] [stdout] 328 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: this boolean expression can be simplified [INFO] [stdout] --> src/traditional_old.rs:893:20 [INFO] [stdout] | [INFO] [stdout] 893 | if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] | ____________________^ [INFO] [stdout] 894 | | && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 | | || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 | | && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] | |_____________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 893 - if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] 894 - && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 - || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 - && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] 893 + if !(vecheights[i].xpos > (level_length - 256) as u64 || vecheights[i].ypos >= (bosschecky + bossentrance_y) + 16 && vecheights[i].ypos <= ((bosschecky + bossentrance_y) + 64)) [INFO] [stdout] | [INFO] [stdout] 893 - if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] 894 - && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 - || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 - && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] 893 + if (vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) || (vecheights[i].ypos < (bosschecky + bossentrance_y) + 16)) && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `vecheights` [INFO] [stdout] --> src/traditional_old.rs:554:18 [INFO] [stdout] | [INFO] [stdout] 554 | for i in 0..vecheights.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 554 - for i in 0..vecheights.len() { [INFO] [stdout] 554 + for in &vecheights { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:556:20 [INFO] [stdout] | [INFO] [stdout] 556 | && vecheights[i].ypos % 224 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if vecheights[i].ypos % 224 == 0 && bosschecky == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:612:24 [INFO] [stdout] | [INFO] [stdout] 612 | if vecheights[i].xpos % 32 == 0 && vecheights[i].ypos % 32 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].xpos.is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:612:56 [INFO] [stdout] | [INFO] [stdout] 612 | if vecheights[i].xpos % 32 == 0 && vecheights[i].ypos % 32 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:613:25 [INFO] [stdout] | [INFO] [stdout] 613 | / if vecheights[i].ypos != 0 { [INFO] [stdout] 614 | | if vecheights[i].ypos % 224 == 0 [INFO] [stdout] 615 | | && vecheights[i].ypos / ceiling_index != ceiling_y [INFO] [stdout] 616 | | && vecheights[i].ypos != ceiling_y [INFO] [stdout] ... | [INFO] [stdout] 623 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 613 ~ if vecheights[i].ypos != 0 [INFO] [stdout] 614 ~ && vecheights[i].ypos % 224 == 0 [INFO] [stdout] 615 | && vecheights[i].ypos / ceiling_index != ceiling_y [INFO] [stdout] ... [INFO] [stdout] 621 | println!("ceiling go brrrrrr??????? ypos is {}", ceiling_y); [INFO] [stdout] 622 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:614:32 [INFO] [stdout] | [INFO] [stdout] 614 | ... if vecheights[i].ypos % 224 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `print!()` with a format string that ends in a single newline [INFO] [stdout] --> src/plot.rs:12:13 [INFO] [stdout] | [INFO] [stdout] 12 | print!("{}\n", f.repeat(i)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_with_newline [INFO] [stdout] = note: `#[warn(clippy::print_with_newline)]` on by default [INFO] [stdout] help: use `println!` instead [INFO] [stdout] | [INFO] [stdout] 12 - print!("{}\n", f.repeat(i)); [INFO] [stdout] 12 + println!("{}", f.repeat(i)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `w` is only used to index `grab` [INFO] [stdout] --> src/traditional.rs:50:26 [INFO] [stdout] | [INFO] [stdout] 50 | for w in 0..width { [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] 50 - for w in 0..width { [INFO] [stdout] 50 + for in grab.iter().take(width) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/traditional.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 84 | let f = finally.clone(); [INFO] [stdout] | ------------------------ unnecessary `let` binding [INFO] [stdout] 85 | f [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 84 ~ [INFO] [stdout] 85 ~ finally.clone() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:811:32 [INFO] [stdout] | [INFO] [stdout] 811 | ... if vecheights[i].xpos % (256 * 3) == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].xpos.is_multiple_of(256 * 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/traditional_old.rs:815:33 [INFO] [stdout] | [INFO] [stdout] 815 | / ... if vecheights[i].xpos >= has_hole_position [INFO] [stdout] 816 | | ... && vecheights[i].xpos <= has_hole_position + hole_width [INFO] [stdout] 817 | | ... { [INFO] [stdout] 818 | | ... true [INFO] [stdout] 819 | | ... } else { [INFO] [stdout] 820 | | ... false [INFO] [stdout] 821 | | ... } [INFO] [stdout] | |_______________________^ help: you can reduce it to: `vecheights[i].xpos >= has_hole_position && vecheights[i].xpos <= has_hole_position + hole_width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/traditional_old.rs:824:48 [INFO] [stdout] | [INFO] [stdout] 824 | ... if !in_hole || has_hole == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `!has_hole` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:830:41 [INFO] [stdout] | [INFO] [stdout] 830 | / ... if jk.enabled == true && jk.xpos == vecheights[i].xpos { [INFO] [stdout] 831 | | ... if jk.ypos < ceiling_y && jk.ypos > ceiling_y - 224 { [INFO] [stdout] 832 | | ... jk.enabled = false; [INFO] [stdout] 833 | | ... jk.ypos = 4480 - 32; [INFO] [stdout] 834 | | ... } [INFO] [stdout] 835 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 830 ~ if jk.enabled == true && jk.xpos == vecheights[i].xpos [INFO] [stdout] 831 ~ && jk.ypos < ceiling_y && jk.ypos > ceiling_y - 224 { [INFO] [stdout] 832 | jk.enabled = false; [INFO] [stdout] 833 | jk.ypos = 4480 - 32; [INFO] [stdout] 834 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/traditional_old.rs:830:44 [INFO] [stdout] | [INFO] [stdout] 830 | ... if jk.enabled == true && jk.xpos == vecheights[i].xpos { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `jk.enabled` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fa` is only used to index `meta` [INFO] [stdout] --> src/traditional_old.rs:854:39 [INFO] [stdout] | [INFO] [stdout] 854 | ... for fa in 0..meta.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 854 - for fa in 0..meta.len() { [INFO] [stdout] 854 + for in &meta { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `jk` is only used to index `v` [INFO] [stdout] --> src/traditional_old.rs:861:35 [INFO] [stdout] | [INFO] [stdout] 861 | for jk in 0..v.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 861 - for jk in 0..v.len() { [INFO] [stdout] 861 + for in &mut v { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:863:33 [INFO] [stdout] | [INFO] [stdout] 863 | / ... if v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 864 | | ... || v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 865 | | ... { [INFO] [stdout] 866 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] ... | [INFO] [stdout] 870 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 863 ~ if (v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 864 ~ || v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 865 ~ || v[jk].xpos == vecheights[i].xpos + 16) [INFO] [stdout] 866 | { [INFO] [stdout] 867 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 868 | v[jk].enabled = false; [INFO] [stdout] 869 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 870 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:872:33 [INFO] [stdout] | [INFO] [stdout] 872 | / ... if v[jk].xpos == vecheights[i].xpos + 16 { [INFO] [stdout] 873 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 874 | | ... v[jk].enabled = false; [INFO] [stdout] 875 | | ... v[jk].ypos = 4480 - 32; [INFO] [stdout] 876 | | ... } [INFO] [stdout] 877 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 872 ~ if v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 873 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 874 | v[jk].enabled = false; [INFO] [stdout] 875 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 876 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:878:36 [INFO] [stdout] | [INFO] [stdout] 878 | ... } else if mtt == MetaTile::LineRight { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 879 | | ... if v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | | ... v[jk].enabled = false; [INFO] [stdout] ... | [INFO] [stdout] 885 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 878 ~ } else if mtt == MetaTile::LineRight [INFO] [stdout] 879 ~ && v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] ... [INFO] [stdout] 883 | } [INFO] [stdout] 884 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:879:33 [INFO] [stdout] | [INFO] [stdout] 879 | / ... if v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | | ... v[jk].enabled = false; [INFO] [stdout] 882 | | ... v[jk].ypos = 4480 - 32; [INFO] [stdout] 883 | | ... } [INFO] [stdout] 884 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 879 ~ if v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 880 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | v[jk].enabled = false; [INFO] [stdout] 882 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 883 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:890:20 [INFO] [stdout] | [INFO] [stdout] 890 | if vecheights[i].ypos % 224 == 0 && bosschecky == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/traditional.rs:242:20 [INFO] [stdout] | [INFO] [stdout] 242 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: unneeded late initialization [INFO] [stdout] --> src/traditional.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | let can_charge; //can megaman charge buster? [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] help: move the declaration `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 250 ~ //can megaman charge buster? [INFO] [stdout] 251 | let can_charge_rng = rand::thread_rng().gen_bool(8.0 / 10.0); // 8/22/24: updated rng [INFO] [stdout] 252 ~ let can_charge = if can_charge_rng { [INFO] [stdout] 253 ~ 0 [INFO] [stdout] 254 | } else { [INFO] [stdout] 255 ~ 1 [INFO] [stdout] 256 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional.rs:265:9 [INFO] [stdout] | [INFO] [stdout] 265 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 265 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 266 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 267 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 268 ~ 0 [INFO] [stdout] 269 | } else { [INFO] [stdout] 270 ~ 1 [INFO] [stdout] 271 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional_old.rs:1005:9 [INFO] [stdout] | [INFO] [stdout] 1005 | let can_charge; //can megaman charge buster? [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] help: move the declaration `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 1005 ~ //can megaman charge buster? [INFO] [stdout] 1006 | let can_charge_rng = rand::thread_rng().gen_bool(8.0 / 10.0); // 8/22/24: updated rng [INFO] [stdout] 1007 ~ let can_charge = if can_charge_rng { [INFO] [stdout] 1008 ~ 0 [INFO] [stdout] 1009 | } else { [INFO] [stdout] 1010 ~ 1 [INFO] [stdout] 1011 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional_old.rs:1019:9 [INFO] [stdout] | [INFO] [stdout] 1019 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 1019 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 1020 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 1021 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 1022 ~ 0 [INFO] [stdout] 1023 | } else { [INFO] [stdout] 1024 ~ 1 [INFO] [stdout] 1025 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:1047:17 [INFO] [stdout] | [INFO] [stdout] 1047 | / if i.xpos == xpos && i.ypos < 224 && i.enabled { [INFO] [stdout] 1048 | | if i.ypos < highest_ypos && i.ypos > 48 { [INFO] [stdout] 1049 | | highest_ypos = i.ypos; [INFO] [stdout] 1050 | | } [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1047 ~ if i.xpos == xpos && i.ypos < 224 && i.enabled [INFO] [stdout] 1048 ~ && i.ypos < highest_ypos && i.ypos > 48 { [INFO] [stdout] 1049 | highest_ypos = i.ypos; [INFO] [stdout] 1050 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `vecheights` [INFO] [stdout] --> src/traditional_old.rs:1278:22 [INFO] [stdout] | [INFO] [stdout] 1278 | for i in 0..vecheights.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1278 - for i in 0..vecheights.len() { [INFO] [stdout] 1278 + for in &vecheights { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `PLC` contains a capitalized acronym [INFO] [stdout] --> src/traditional_old.rs:37:12 [INFO] [stdout] | [INFO] [stdout] 37 | struct PLC { [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Plc` [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: this `if` has identical blocks [INFO] [stdout] --> src/main.rs:23:46 [INFO] [stdout] | [INFO] [stdout] 23 | } else if input == "traditional" { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 24 | | traditional::tradhandle::file_write(); [INFO] [stdout] 25 | | break; [INFO] [stdout] 26 | | } else if input == "batch" { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:26:40 [INFO] [stdout] | [INFO] [stdout] 26 | } else if input == "batch" { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 27 | | traditional::tradhandle::file_write(); [INFO] [stdout] 28 | | break; [INFO] [stdout] 29 | | } else if input == "plot" { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` 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/traditional_old.rs:140:50 [INFO] [stdout] | [INFO] [stdout] 140 | fn autotile_prep(tiles: &TileData, data: &Vec) -> TileData { [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] 140 - fn autotile_prep(tiles: &TileData, data: &Vec) -> TileData { [INFO] [stdout] 140 + fn autotile_prep(tiles: &TileData, data: &[TileData]) -> TileData { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/plot.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | io::stdout().flush(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 14 | let _ = io::stdout().flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `format!` args [INFO] [stdout] --> src/traditional_old.rs:328:20 [INFO] [stdout] | [INFO] [stdout] 328 | text = format!("{}\"{}\"", format!("{}\n1k{}=", text, i), rand_num); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `format!(..)` 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: this boolean expression can be simplified [INFO] [stdout] --> src/traditional_old.rs:893:20 [INFO] [stdout] | [INFO] [stdout] 893 | if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] | ____________________^ [INFO] [stdout] 894 | | && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 | | || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 | | && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] | |_____________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 893 - if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] 894 - && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 - || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 - && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] 893 + if !(vecheights[i].xpos > (level_length - 256) as u64 || vecheights[i].ypos >= (bosschecky + bossentrance_y) + 16 && vecheights[i].ypos <= ((bosschecky + bossentrance_y) + 64)) [INFO] [stdout] | [INFO] [stdout] 893 - if ((vecheights[i].ypos < (bosschecky + bossentrance_y) + 16) [INFO] [stdout] 894 - && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] 895 - || vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) [INFO] [stdout] 896 - && vecheights[i].xpos <= (level_length - 256) as u64) [INFO] [stdout] 893 + if (vecheights[i].ypos > ((bosschecky + bossentrance_y) + 64) || (vecheights[i].ypos < (bosschecky + bossentrance_y) + 16)) && vecheights[i].xpos <= (level_length - 256) as u64 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `vecheights` [INFO] [stdout] --> src/traditional_old.rs:554:18 [INFO] [stdout] | [INFO] [stdout] 554 | for i in 0..vecheights.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 554 - for i in 0..vecheights.len() { [INFO] [stdout] 554 + for in &vecheights { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:556:20 [INFO] [stdout] | [INFO] [stdout] 556 | && vecheights[i].ypos % 224 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if vecheights[i].ypos % 224 == 0 && bosschecky == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:612:24 [INFO] [stdout] | [INFO] [stdout] 612 | if vecheights[i].xpos % 32 == 0 && vecheights[i].ypos % 32 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].xpos.is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:612:56 [INFO] [stdout] | [INFO] [stdout] 612 | if vecheights[i].xpos % 32 == 0 && vecheights[i].ypos % 32 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(32)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:613:25 [INFO] [stdout] | [INFO] [stdout] 613 | / if vecheights[i].ypos != 0 { [INFO] [stdout] 614 | | if vecheights[i].ypos % 224 == 0 [INFO] [stdout] 615 | | && vecheights[i].ypos / ceiling_index != ceiling_y [INFO] [stdout] 616 | | && vecheights[i].ypos != ceiling_y [INFO] [stdout] ... | [INFO] [stdout] 623 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 613 ~ if vecheights[i].ypos != 0 [INFO] [stdout] 614 ~ && vecheights[i].ypos % 224 == 0 [INFO] [stdout] 615 | && vecheights[i].ypos / ceiling_index != ceiling_y [INFO] [stdout] ... [INFO] [stdout] 621 | println!("ceiling go brrrrrr??????? ypos is {}", ceiling_y); [INFO] [stdout] 622 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:614:32 [INFO] [stdout] | [INFO] [stdout] 614 | ... if vecheights[i].ypos % 224 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:811:32 [INFO] [stdout] | [INFO] [stdout] 811 | ... if vecheights[i].xpos % (256 * 3) == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].xpos.is_multiple_of(256 * 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/traditional_old.rs:815:33 [INFO] [stdout] | [INFO] [stdout] 815 | / ... if vecheights[i].xpos >= has_hole_position [INFO] [stdout] 816 | | ... && vecheights[i].xpos <= has_hole_position + hole_width [INFO] [stdout] 817 | | ... { [INFO] [stdout] 818 | | ... true [INFO] [stdout] 819 | | ... } else { [INFO] [stdout] 820 | | ... false [INFO] [stdout] 821 | | ... } [INFO] [stdout] | |_______________________^ help: you can reduce it to: `vecheights[i].xpos >= has_hole_position && vecheights[i].xpos <= has_hole_position + hole_width` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/traditional_old.rs:824:48 [INFO] [stdout] | [INFO] [stdout] 824 | ... if !in_hole || has_hole == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `!has_hole` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:830:41 [INFO] [stdout] | [INFO] [stdout] 830 | / ... if jk.enabled == true && jk.xpos == vecheights[i].xpos { [INFO] [stdout] 831 | | ... if jk.ypos < ceiling_y && jk.ypos > ceiling_y - 224 { [INFO] [stdout] 832 | | ... jk.enabled = false; [INFO] [stdout] 833 | | ... jk.ypos = 4480 - 32; [INFO] [stdout] 834 | | ... } [INFO] [stdout] 835 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 830 ~ if jk.enabled == true && jk.xpos == vecheights[i].xpos [INFO] [stdout] 831 ~ && jk.ypos < ceiling_y && jk.ypos > ceiling_y - 224 { [INFO] [stdout] 832 | jk.enabled = false; [INFO] [stdout] 833 | jk.ypos = 4480 - 32; [INFO] [stdout] 834 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/traditional_old.rs:830:44 [INFO] [stdout] | [INFO] [stdout] 830 | ... if jk.enabled == true && jk.xpos == vecheights[i].xpos { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `jk.enabled` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `fa` is only used to index `meta` [INFO] [stdout] --> src/traditional_old.rs:854:39 [INFO] [stdout] | [INFO] [stdout] 854 | ... for fa in 0..meta.len() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 854 - for fa in 0..meta.len() { [INFO] [stdout] 854 + for in &meta { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `jk` is only used to index `v` [INFO] [stdout] --> src/traditional_old.rs:861:35 [INFO] [stdout] | [INFO] [stdout] 861 | for jk in 0..v.len() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 861 - for jk in 0..v.len() { [INFO] [stdout] 861 + for in &mut v { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:863:33 [INFO] [stdout] | [INFO] [stdout] 863 | / ... if v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 864 | | ... || v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 865 | | ... { [INFO] [stdout] 866 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] ... | [INFO] [stdout] 870 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 863 ~ if (v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 864 ~ || v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 865 ~ || v[jk].xpos == vecheights[i].xpos + 16) [INFO] [stdout] 866 | { [INFO] [stdout] 867 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 868 | v[jk].enabled = false; [INFO] [stdout] 869 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 870 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:872:33 [INFO] [stdout] | [INFO] [stdout] 872 | / ... if v[jk].xpos == vecheights[i].xpos + 16 { [INFO] [stdout] 873 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 874 | | ... v[jk].enabled = false; [INFO] [stdout] 875 | | ... v[jk].ypos = 4480 - 32; [INFO] [stdout] 876 | | ... } [INFO] [stdout] 877 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 872 ~ if v[jk].xpos == vecheights[i].xpos + 16 [INFO] [stdout] 873 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 874 | v[jk].enabled = false; [INFO] [stdout] 875 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 876 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:878:36 [INFO] [stdout] | [INFO] [stdout] 878 | ... } else if mtt == MetaTile::LineRight { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 879 | | ... if v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | | ... v[jk].enabled = false; [INFO] [stdout] ... | [INFO] [stdout] 885 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 878 ~ } else if mtt == MetaTile::LineRight [INFO] [stdout] 879 ~ && v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] ... [INFO] [stdout] 883 | } [INFO] [stdout] 884 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:879:33 [INFO] [stdout] | [INFO] [stdout] 879 | / ... if v[jk].xpos == vecheights[i].xpos { [INFO] [stdout] 880 | | ... if v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | | ... v[jk].enabled = false; [INFO] [stdout] 882 | | ... v[jk].ypos = 4480 - 32; [INFO] [stdout] 883 | | ... } [INFO] [stdout] 884 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 879 ~ if v[jk].xpos == vecheights[i].xpos [INFO] [stdout] 880 ~ && v[jk].ypos > screeny + 32 && v[jk].ypos < screeny + 224 { [INFO] [stdout] 881 | v[jk].enabled = false; [INFO] [stdout] 882 | v[jk].ypos = 4480 - 32; [INFO] [stdout] 883 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/traditional_old.rs:890:20 [INFO] [stdout] | [INFO] [stdout] 890 | if vecheights[i].ypos % 224 == 0 && bosschecky == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `vecheights[i].ypos.is_multiple_of(224)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional_old.rs:1005:9 [INFO] [stdout] | [INFO] [stdout] 1005 | let can_charge; //can megaman charge buster? [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] help: move the declaration `can_charge` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 1005 ~ //can megaman charge buster? [INFO] [stdout] 1006 | let can_charge_rng = rand::thread_rng().gen_bool(8.0 / 10.0); // 8/22/24: updated rng [INFO] [stdout] 1007 ~ let can_charge = if can_charge_rng { [INFO] [stdout] 1008 ~ 0 [INFO] [stdout] 1009 | } else { [INFO] [stdout] 1010 ~ 1 [INFO] [stdout] 1011 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/traditional_old.rs:1019:9 [INFO] [stdout] | [INFO] [stdout] 1019 | let can_strike; //can protoman use proto strike (all shots are charge shots) [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] help: move the declaration `can_strike` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 1019 ~ //can protoman use proto strike (all shots are charge shots) [INFO] [stdout] 1020 | let can_strike_rng = rand::thread_rng().gen_range(0..4); [INFO] [stdout] 1021 ~ let can_strike = if can_strike_rng == 4 { [INFO] [stdout] 1022 ~ 0 [INFO] [stdout] 1023 | } else { [INFO] [stdout] 1024 ~ 1 [INFO] [stdout] 1025 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/traditional_old.rs:1047:17 [INFO] [stdout] | [INFO] [stdout] 1047 | / if i.xpos == xpos && i.ypos < 224 && i.enabled { [INFO] [stdout] 1048 | | if i.ypos < highest_ypos && i.ypos > 48 { [INFO] [stdout] 1049 | | highest_ypos = i.ypos; [INFO] [stdout] 1050 | | } [INFO] [stdout] 1051 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1047 ~ if i.xpos == xpos && i.ypos < 224 && i.enabled [INFO] [stdout] 1048 ~ && i.ypos < highest_ypos && i.ypos > 48 { [INFO] [stdout] 1049 | highest_ypos = i.ypos; [INFO] [stdout] 1050 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `vecheights` [INFO] [stdout] --> src/traditional_old.rs:1278:22 [INFO] [stdout] | [INFO] [stdout] 1278 | for i in 0..vecheights.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1278 - for i in 0..vecheights.len() { [INFO] [stdout] 1278 + for in &vecheights { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/main.rs:23:46 [INFO] [stdout] | [INFO] [stdout] 23 | } else if input == "traditional" { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 24 | | traditional::tradhandle::file_write(); [INFO] [stdout] 25 | | break; [INFO] [stdout] 26 | | } else if input == "batch" { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/main.rs:26:40 [INFO] [stdout] | [INFO] [stdout] 26 | } else if input == "batch" { [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 27 | | traditional::tradhandle::file_write(); [INFO] [stdout] 28 | | break; [INFO] [stdout] 29 | | } else if input == "plot" { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/plot.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 14 | io::stdout().flush(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 14 | let _ = io::stdout().flush(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.38s [INFO] running `Command { std: "docker" "inspect" "d9678bdcfa2d01df536e5c4129671014271c42ffa7c5e8aecc1a8f9f0f8db2ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9678bdcfa2d01df536e5c4129671014271c42ffa7c5e8aecc1a8f9f0f8db2ac", kill_on_drop: false }` [INFO] [stdout] d9678bdcfa2d01df536e5c4129671014271c42ffa7c5e8aecc1a8f9f0f8db2ac