[INFO] cloning repository https://github.com/Hofnerd/Genjin [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Hofnerd/Genjin" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHofnerd%2FGenjin", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHofnerd%2FGenjin'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 624ebb3f072756cd78c390f9ac6a25e06aa819d8 [INFO] linting Hofnerd/Genjin/624ebb3f072756cd78c390f9ac6a25e06aa819d8 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHofnerd%2FGenjin" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Hofnerd/Genjin [INFO] finished tweaking git repo https://github.com/Hofnerd/Genjin [INFO] tweaked toml for git repo https://github.com/Hofnerd/Genjin written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Hofnerd/Genjin 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/Hofnerd/Genjin 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 tuple_utils v0.4.0 [INFO] [stderr] Downloaded nougat-proc_macros v0.2.4 [INFO] [stderr] Downloaded macro_rules_attribute v0.1.3 [INFO] [stderr] Downloaded specs-derive v0.4.1 [INFO] [stderr] Downloaded shrev v1.1.3 [INFO] [stderr] Downloaded nougat v0.2.4 [INFO] [stderr] Downloaded atomic_refcell v0.1.13 [INFO] [stderr] Downloaded c_vec v2.0.0 [INFO] [stderr] Downloaded tynm v0.1.10 [INFO] [stderr] Downloaded hibitset v0.6.4 [INFO] [stderr] Downloaded specs v0.20.0 [INFO] [stderr] Downloaded shred v0.15.0 [INFO] [stderr] Downloaded macro_rules_attribute-proc_macro v0.1.3 [INFO] [stderr] Downloaded sdl2 v0.37.0 [INFO] [stderr] Downloaded libc v0.2.158 [INFO] [stderr] Downloaded sdl2-sys v0.37.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ad8a16ee523a4b018c4cca911a7714eb3846ba074742f48596864442005cd6e8 [INFO] running `Command { std: "docker" "start" "-a" "ad8a16ee523a4b018c4cca911a7714eb3846ba074742f48596864442005cd6e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ad8a16ee523a4b018c4cca911a7714eb3846ba074742f48596864442005cd6e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ad8a16ee523a4b018c4cca911a7714eb3846ba074742f48596864442005cd6e8", kill_on_drop: false }` [INFO] [stdout] ad8a16ee523a4b018c4cca911a7714eb3846ba074742f48596864442005cd6e8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6e46e99962cce2c495546bf369b0b5b9be2e6ccec3a3af338203683a65631092 [INFO] running `Command { std: "docker" "start" "-a" "6e46e99962cce2c495546bf369b0b5b9be2e6ccec3a3af338203683a65631092", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling ahash v0.7.8 [INFO] [stderr] Checking minimal-lexical v0.2.1 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling macro_rules_attribute-proc_macro v0.1.3 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling sdl2 v0.37.0 [INFO] [stderr] Compiling sdl2-sys v0.37.0 [INFO] [stderr] Checking atomic_refcell v0.1.13 [INFO] [stderr] Checking hibitset v0.6.4 [INFO] [stderr] Checking crossbeam-queue v0.3.11 [INFO] [stderr] Checking c_vec v2.0.0 [INFO] [stderr] Checking tuple_utils v0.4.0 [INFO] [stderr] Checking shrev v1.1.3 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking macro_rules_attribute v0.1.3 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking tynm v0.1.10 [INFO] [stderr] Checking shred v0.15.0 [INFO] [stderr] Compiling nougat-proc_macros v0.2.4 [INFO] [stderr] Compiling specs-derive v0.4.1 [INFO] [stderr] Checking nougat v0.2.4 [INFO] [stderr] Checking specs v0.20.0 [INFO] [stderr] Checking genjin v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `translate_coordinate` is never used [INFO] [stdout] --> src/entities/entity_components.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Position { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 13 | pub fn translate_coordinate(&mut self, screen: ScreenSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `owner` and `direction` are never read [INFO] [stdout] --> src/entities/entity_components.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct ProjectileProperties { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] 124 | pub owner: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 125 | pub direction: Direction, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProjectileProperties` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MovementAnimation` is never constructed [INFO] [stdout] --> src/entities/entity_components.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct MovementAnimation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Animator` is never constructed [INFO] [stdout] --> src/systems/animator.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Animator; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/entities/entity_components.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | self.point = self.point - Point::new(w as i32 / 2, h as i32 / 2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.point -= Point::new(w as i32 / 2, h as i32 / 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/entities/entity_components.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return (x_speed, y_speed); [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] 92 - return (x_speed, y_speed); [INFO] [stdout] 92 + (x_speed, y_speed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/systems/actionsys.rs:35:46 [INFO] [stdout] | [INFO] [stdout] 35 | ActionCommand::Shoot(dir) => match dir { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 36 | | dir => { [INFO] [stdout] 37 | | let bullet = entity.create(); [INFO] [stdout] 38 | | let b_vel: Velocity = Velocity { [INFO] [stdout] ... | [INFO] [stdout] 74 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the match body instead [INFO] [stdout] | [INFO] [stdout] 35 ~ ActionCommand::Shoot(dir) => { [INFO] [stdout] 36 + let bullet = entity.create(); [INFO] [stdout] 37 + let b_vel: Velocity = Velocity { [INFO] [stdout] 38 + speed: 0, [INFO] [stdout] 39 + max_speed: 100, [INFO] [stdout] 40 + acc: 30, [INFO] [stdout] 41 + last_dir: None, [INFO] [stdout] 42 + }; [INFO] [stdout] 43 + [INFO] [stdout] 44 + updater.insert(bullet, b_vel); [INFO] [stdout] 45 + updater.insert( [INFO] [stdout] 46 + bullet, [INFO] [stdout] 47 + SpriteVec { [INFO] [stdout] 48 + sprite_vec: vec![Sprite { [INFO] [stdout] 49 + spritesheet: 1, [INFO] [stdout] 50 + region: rect!(0, 0, 5, 5), [INFO] [stdout] 51 + rotation: None, [INFO] [stdout] 52 + }], [INFO] [stdout] 53 + }, [INFO] [stdout] 54 + ); [INFO] [stdout] 55 + updater.insert(bullet, DecayLife { life: 10 }); [INFO] [stdout] 56 + updater.insert(bullet, pos.clone()); [INFO] [stdout] 57 + updater.insert( [INFO] [stdout] 58 + bullet, [INFO] [stdout] 59 + Damage { [INFO] [stdout] 60 + dmg: 10, [INFO] [stdout] 61 + dmg_box: rect!(0, 0, 5, 5), [INFO] [stdout] 62 + }, [INFO] [stdout] 63 + ); [INFO] [stdout] 64 + updater.insert( [INFO] [stdout] 65 + bullet, [INFO] [stdout] 66 + ProjectileProperties { [INFO] [stdout] 67 + direction: dir.clone(), [INFO] [stdout] 68 + owner: -1, [INFO] [stdout] 69 + }, [INFO] [stdout] 70 + ); [INFO] [stdout] 71 + updater.insert(bullet, SingleDamage); [INFO] [stdout] 72 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Direction` which implements the `Copy` trait [INFO] [stdout] --> src/systems/actionsys.rs:68:44 [INFO] [stdout] | [INFO] [stdout] 68 | ... direction: dir.clone(), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/systems/collisionsys.rs:56:63 [INFO] [stdout] | [INFO] [stdout] 56 | ... grav.grounded_rect = Some(trect.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `trect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/systems/damagesys.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | / let mut line_vec: Vec<(Point, Point)> = Vec::<(Point, Point)>::new(); [INFO] [stdout] 38 | | line_vec.push((dmg_box.bottom_left(), dmg_box_offset.bottom_left())); [INFO] [stdout] 39 | | line_vec.push((dmg_box.bottom_right(), dmg_box_offset.bottom_right())); [INFO] [stdout] 40 | | line_vec.push((dmg_box.top_left(), dmg_box_offset.top_left())); [INFO] [stdout] 41 | | line_vec.push((dmg_box.top_right(), dmg_box_offset.top_right())); [INFO] [stdout] | |_____________________________________________________________________________________^ help: consider using the `vec![]` macro: `let line_vec: Vec<(Point, Point)> = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/damagesys.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | / match hurt_box.intersect_line(p1, p2) { [INFO] [stdout] 46 | | Some(_) => { [INFO] [stdout] 47 | | hit = true; [INFO] [stdout] ... | [INFO] [stdout] 50 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 45 ~ if let Some(_) = hurt_box.intersect_line(p1, p2) { [INFO] [stdout] 46 + hit = true; [INFO] [stdout] 47 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/damagesys.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | / match sdflag { [INFO] [stdout] 56 | | Some(_) => { [INFO] [stdout] 57 | | let _ = entities.delete(tent); [INFO] [stdout] ... | [INFO] [stdout] 60 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 55 ~ if let Some(_) = sdflag { [INFO] [stdout] 56 + let _ = entities.delete(tent); [INFO] [stdout] 57 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stdout] --> src/systems/damagesys.rs:64:20 [INFO] [stdout] | [INFO] [stdout] 64 | if health.hp <= 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: because `0` is the minimum value for this type, the case where the two sides are not equal never occurs, consider using `health.hp == 0` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stdout] = note: `#[deny(clippy::absurd_extreme_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/systems/gravitysys.rs:16:33 [INFO] [stdout] | [INFO] [stdout] 16 | .filter(|(grav, _)| grav.grounded != true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `!grav.grounded` [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: manual implementation of an assign operation [INFO] [stdout] --> src/systems/keyboard.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | x_cur = x_cur + (x * (vel.acc as i8)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_cur += (x * (vel.acc as i8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/systems/keyboard.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | y_cur = y_cur + (y * (vel.acc as i8)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y_cur += (y * (vel.acc as i8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `maybe` doesn't need a mutable reference [INFO] [stdout] --> src/systems/physics.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | (&mut data.3).maybe(), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 22 - (&mut data.3).maybe(), [INFO] [stdout] 22 + (&data.3).maybe(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/physics.rs:40:35 [INFO] [stdout] | [INFO] [stdout] 40 | Some(grav) => match coll { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 41 | | Some(coll) => { [INFO] [stdout] 42 | | let cur_rect = Rect::from_center( [INFO] [stdout] 43 | | pos.point, [INFO] [stdout] ... | [INFO] [stdout] 64 | | None => {} [INFO] [stdout] 65 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 40 ~ Some(grav) => if let Some(coll) = coll { [INFO] [stdout] 41 + let cur_rect = Rect::from_center( [INFO] [stdout] 42 + pos.point, [INFO] [stdout] 43 + coll.col_box.width(), [INFO] [stdout] 44 + coll.col_box.height(), [INFO] [stdout] 45 + ); [INFO] [stdout] 46 + [INFO] [stdout] 47 + match grav.grounded_rect { [INFO] [stdout] 48 + Some(grect) => { [INFO] [stdout] 49 + match grect.intersect_line( [INFO] [stdout] 50 + cur_rect.bottom_left(), [INFO] [stdout] 51 + cur_rect.bottom_right(), [INFO] [stdout] 52 + ) { [INFO] [stdout] 53 + Some(_) => {} [INFO] [stdout] 54 + None => { [INFO] [stdout] 55 + grav.grounded = false; [INFO] [stdout] 56 + grav.grounded_rect = None; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + } [INFO] [stdout] 59 + } [INFO] [stdout] 60 + None => {} [INFO] [stdout] 61 + } [INFO] [stdout] 62 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/physics.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | / ... match grav.grounded_rect { [INFO] [stdout] 49 | | ... Some(grect) => { [INFO] [stdout] 50 | | ... match grect.intersect_line( [INFO] [stdout] 51 | | ... cur_rect.bottom_left(), [INFO] [stdout] ... | [INFO] [stdout] 61 | | ... None => {} [INFO] [stdout] 62 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 ~ if let Some(grect) = grav.grounded_rect { [INFO] [stdout] 49 + match grect.intersect_line( [INFO] [stdout] 50 + cur_rect.bottom_left(), [INFO] [stdout] 51 + cur_rect.bottom_right(), [INFO] [stdout] 52 + ) { [INFO] [stdout] 53 + Some(_) => {} [INFO] [stdout] 54 + None => { [INFO] [stdout] 55 + grav.grounded = false; [INFO] [stdout] 56 + grav.grounded_rect = None; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + } [INFO] [stdout] 59 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/systems/renderer.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | return Ok(()); [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] 63 - return Ok(()); [INFO] [stdout] 63 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return Ok(()); [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] 308 - return Ok(()); [INFO] [stdout] 308 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/main.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / let mut sprite_vec = Vec::::new(); [INFO] [stdout] 102 | | sprite_vec.push(Sprite { [INFO] [stdout] 103 | | spritesheet: 0, [INFO] [stdout] 104 | | region: rect!(0, 0, 26, 36), [INFO] [stdout] 105 | | rotation: None, [INFO] [stdout] 106 | | }); [INFO] [stdout] | |_______^ help: consider using the `vec![]` macro: `let sprite_vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `dispatch` doesn't need a mutable reference [INFO] [stdout] --> src/main.rs:295:29 [INFO] [stdout] | [INFO] [stdout] 295 | dispatcher.dispatch(&mut world); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 295 - dispatcher.dispatch(&mut world); [INFO] [stdout] 295 + dispatcher.dispatch(&world); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `genjin` (bin "genjin" test) due to 1 previous error; 22 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: method `translate_coordinate` is never used [INFO] [stdout] --> src/entities/entity_components.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Position { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 13 | pub fn translate_coordinate(&mut self, screen: ScreenSize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `owner` and `direction` are never read [INFO] [stdout] --> src/entities/entity_components.rs:124:9 [INFO] [stdout] | [INFO] [stdout] 123 | pub struct ProjectileProperties { [INFO] [stdout] | -------------------- fields in this struct [INFO] [stdout] 124 | pub owner: i32, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 125 | pub direction: Direction, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProjectileProperties` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MovementAnimation` is never constructed [INFO] [stdout] --> src/entities/entity_components.rs:130:12 [INFO] [stdout] | [INFO] [stdout] 130 | pub struct MovementAnimation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Animator` is never constructed [INFO] [stdout] --> src/systems/animator.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Animator; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/entities/entity_components.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | self.point = self.point - Point::new(w as i32 / 2, h as i32 / 2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.point -= Point::new(w as i32 / 2, h as i32 / 2)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/entities/entity_components.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return (x_speed, y_speed); [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] 92 - return (x_speed, y_speed); [INFO] [stdout] 92 + (x_speed, y_speed) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be replaced by its body itself [INFO] [stdout] --> src/systems/actionsys.rs:35:46 [INFO] [stdout] | [INFO] [stdout] 35 | ActionCommand::Shoot(dir) => match dir { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 36 | | dir => { [INFO] [stdout] 37 | | let bullet = entity.create(); [INFO] [stdout] 38 | | let b_vel: Velocity = Velocity { [INFO] [stdout] ... | [INFO] [stdout] 74 | | }, [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using the match body instead [INFO] [stdout] | [INFO] [stdout] 35 ~ ActionCommand::Shoot(dir) => { [INFO] [stdout] 36 + let bullet = entity.create(); [INFO] [stdout] 37 + let b_vel: Velocity = Velocity { [INFO] [stdout] 38 + speed: 0, [INFO] [stdout] 39 + max_speed: 100, [INFO] [stdout] 40 + acc: 30, [INFO] [stdout] 41 + last_dir: None, [INFO] [stdout] 42 + }; [INFO] [stdout] 43 + [INFO] [stdout] 44 + updater.insert(bullet, b_vel); [INFO] [stdout] 45 + updater.insert( [INFO] [stdout] 46 + bullet, [INFO] [stdout] 47 + SpriteVec { [INFO] [stdout] 48 + sprite_vec: vec![Sprite { [INFO] [stdout] 49 + spritesheet: 1, [INFO] [stdout] 50 + region: rect!(0, 0, 5, 5), [INFO] [stdout] 51 + rotation: None, [INFO] [stdout] 52 + }], [INFO] [stdout] 53 + }, [INFO] [stdout] 54 + ); [INFO] [stdout] 55 + updater.insert(bullet, DecayLife { life: 10 }); [INFO] [stdout] 56 + updater.insert(bullet, pos.clone()); [INFO] [stdout] 57 + updater.insert( [INFO] [stdout] 58 + bullet, [INFO] [stdout] 59 + Damage { [INFO] [stdout] 60 + dmg: 10, [INFO] [stdout] 61 + dmg_box: rect!(0, 0, 5, 5), [INFO] [stdout] 62 + }, [INFO] [stdout] 63 + ); [INFO] [stdout] 64 + updater.insert( [INFO] [stdout] 65 + bullet, [INFO] [stdout] 66 + ProjectileProperties { [INFO] [stdout] 67 + direction: dir.clone(), [INFO] [stdout] 68 + owner: -1, [INFO] [stdout] 69 + }, [INFO] [stdout] 70 + ); [INFO] [stdout] 71 + updater.insert(bullet, SingleDamage); [INFO] [stdout] 72 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Direction` which implements the `Copy` trait [INFO] [stdout] --> src/systems/actionsys.rs:68:44 [INFO] [stdout] | [INFO] [stdout] 68 | ... direction: dir.clone(), [INFO] [stdout] | ^^^^^^^^^^^ help: try dereferencing it: `*dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/systems/collisionsys.rs:56:63 [INFO] [stdout] | [INFO] [stdout] 56 | ... grav.grounded_rect = Some(trect.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `trect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/systems/damagesys.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | / let mut line_vec: Vec<(Point, Point)> = Vec::<(Point, Point)>::new(); [INFO] [stdout] 38 | | line_vec.push((dmg_box.bottom_left(), dmg_box_offset.bottom_left())); [INFO] [stdout] 39 | | line_vec.push((dmg_box.bottom_right(), dmg_box_offset.bottom_right())); [INFO] [stdout] 40 | | line_vec.push((dmg_box.top_left(), dmg_box_offset.top_left())); [INFO] [stdout] 41 | | line_vec.push((dmg_box.top_right(), dmg_box_offset.top_right())); [INFO] [stdout] | |_____________________________________________________________________________________^ help: consider using the `vec![]` macro: `let line_vec: Vec<(Point, Point)> = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/damagesys.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | / match hurt_box.intersect_line(p1, p2) { [INFO] [stdout] 46 | | Some(_) => { [INFO] [stdout] 47 | | hit = true; [INFO] [stdout] ... | [INFO] [stdout] 50 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 45 ~ if let Some(_) = hurt_box.intersect_line(p1, p2) { [INFO] [stdout] 46 + hit = true; [INFO] [stdout] 47 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/damagesys.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | / match sdflag { [INFO] [stdout] 56 | | Some(_) => { [INFO] [stdout] 57 | | let _ = entities.delete(tent); [INFO] [stdout] ... | [INFO] [stdout] 60 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 55 ~ if let Some(_) = sdflag { [INFO] [stdout] 56 + let _ = entities.delete(tent); [INFO] [stdout] 57 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stdout] --> src/systems/damagesys.rs:64:20 [INFO] [stdout] | [INFO] [stdout] 64 | if health.hp <= 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: because `0` is the minimum value for this type, the case where the two sides are not equal never occurs, consider using `health.hp == 0` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stdout] = note: `#[deny(clippy::absurd_extreme_comparisons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: inequality checks against true can be replaced by a negation [INFO] [stdout] --> src/systems/gravitysys.rs:16:33 [INFO] [stdout] | [INFO] [stdout] 16 | .filter(|(grav, _)| grav.grounded != true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `!grav.grounded` [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: manual implementation of an assign operation [INFO] [stdout] --> src/systems/keyboard.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | x_cur = x_cur + (x * (vel.acc as i8)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `x_cur += (x * (vel.acc as i8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/systems/keyboard.rs:30:25 [INFO] [stdout] | [INFO] [stdout] 30 | y_cur = y_cur + (y * (vel.acc as i8)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `y_cur += (y * (vel.acc as i8))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `maybe` doesn't need a mutable reference [INFO] [stdout] --> src/systems/physics.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | (&mut data.3).maybe(), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 22 - (&mut data.3).maybe(), [INFO] [stdout] 22 + (&data.3).maybe(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/physics.rs:40:35 [INFO] [stdout] | [INFO] [stdout] 40 | Some(grav) => match coll { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 41 | | Some(coll) => { [INFO] [stdout] 42 | | let cur_rect = Rect::from_center( [INFO] [stdout] 43 | | pos.point, [INFO] [stdout] ... | [INFO] [stdout] 64 | | None => {} [INFO] [stdout] 65 | | }, [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 40 ~ Some(grav) => if let Some(coll) = coll { [INFO] [stdout] 41 + let cur_rect = Rect::from_center( [INFO] [stdout] 42 + pos.point, [INFO] [stdout] 43 + coll.col_box.width(), [INFO] [stdout] 44 + coll.col_box.height(), [INFO] [stdout] 45 + ); [INFO] [stdout] 46 + [INFO] [stdout] 47 + match grav.grounded_rect { [INFO] [stdout] 48 + Some(grect) => { [INFO] [stdout] 49 + match grect.intersect_line( [INFO] [stdout] 50 + cur_rect.bottom_left(), [INFO] [stdout] 51 + cur_rect.bottom_right(), [INFO] [stdout] 52 + ) { [INFO] [stdout] 53 + Some(_) => {} [INFO] [stdout] 54 + None => { [INFO] [stdout] 55 + grav.grounded = false; [INFO] [stdout] 56 + grav.grounded_rect = None; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + } [INFO] [stdout] 59 + } [INFO] [stdout] 60 + None => {} [INFO] [stdout] 61 + } [INFO] [stdout] 62 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/systems/physics.rs:48:29 [INFO] [stdout] | [INFO] [stdout] 48 | / ... match grav.grounded_rect { [INFO] [stdout] 49 | | ... Some(grect) => { [INFO] [stdout] 50 | | ... match grect.intersect_line( [INFO] [stdout] 51 | | ... cur_rect.bottom_left(), [INFO] [stdout] ... | [INFO] [stdout] 61 | | ... None => {} [INFO] [stdout] 62 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 48 ~ if let Some(grect) = grav.grounded_rect { [INFO] [stdout] 49 + match grect.intersect_line( [INFO] [stdout] 50 + cur_rect.bottom_left(), [INFO] [stdout] 51 + cur_rect.bottom_right(), [INFO] [stdout] 52 + ) { [INFO] [stdout] 53 + Some(_) => {} [INFO] [stdout] 54 + None => { [INFO] [stdout] 55 + grav.grounded = false; [INFO] [stdout] 56 + grav.grounded_rect = None; [INFO] [stdout] 57 + } [INFO] [stdout] 58 + } [INFO] [stdout] 59 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/systems/renderer.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | return Ok(()); [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] 63 - return Ok(()); [INFO] [stdout] 63 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:308:5 [INFO] [stdout] | [INFO] [stdout] 308 | return Ok(()); [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] 308 - return Ok(()); [INFO] [stdout] 308 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/main.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / let mut sprite_vec = Vec::::new(); [INFO] [stdout] 102 | | sprite_vec.push(Sprite { [INFO] [stdout] 103 | | spritesheet: 0, [INFO] [stdout] 104 | | region: rect!(0, 0, 26, 36), [INFO] [stdout] 105 | | rotation: None, [INFO] [stdout] 106 | | }); [INFO] [stdout] | |_______^ help: consider using the `vec![]` macro: `let sprite_vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the method `dispatch` doesn't need a mutable reference [INFO] [stdout] --> src/main.rs:295:29 [INFO] [stdout] | [INFO] [stdout] 295 | dispatcher.dispatch(&mut world); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stdout] help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] 295 - dispatcher.dispatch(&mut world); [INFO] [stdout] 295 + dispatcher.dispatch(&world); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `genjin` (bin "genjin") due to 1 previous error; 22 warnings emitted [INFO] running `Command { std: "docker" "inspect" "6e46e99962cce2c495546bf369b0b5b9be2e6ccec3a3af338203683a65631092", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6e46e99962cce2c495546bf369b0b5b9be2e6ccec3a3af338203683a65631092", kill_on_drop: false }` [INFO] [stdout] 6e46e99962cce2c495546bf369b0b5b9be2e6ccec3a3af338203683a65631092