[INFO] updating cached repository RazielKhan/RustGame [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/RazielKhan/RustGame [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/RazielKhan/RustGame" "work/ex/clippy-test-run/sources/stable/gh/RazielKhan/RustGame"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/RazielKhan/RustGame'... [INFO] [stderr] done. [INFO] [stderr] Checking out files: 32% (11/34) Checking out files: 35% (12/34) Checking out files: 38% (13/34) Checking out files: 41% (14/34) Checking out files: 44% (15/34) Checking out files: 47% (16/34) Checking out files: 50% (17/34) Checking out files: 52% (18/34) Checking out files: 55% (19/34) Checking out files: 58% (20/34) Checking out files: 61% (21/34) Checking out files: 64% (22/34) Checking out files: 67% (23/34) Checking out files: 70% (24/34) Checking out files: 73% (25/34) Checking out files: 76% (26/34) Checking out files: 79% (27/34) Checking out files: 82% (28/34) Checking out files: 85% (29/34) Checking out files: 88% (30/34) Checking out files: 91% (31/34) Checking out files: 94% (32/34) Checking out files: 97% (33/34) Checking out files: 100% (34/34) Checking out files: 100% (34/34), done. [INFO] running `"git" "clone" "work/cache/sources/gh/RazielKhan/RustGame" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RazielKhan/RustGame"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RazielKhan/RustGame'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 55d1266707868faf9de5d915471ac7c224f4f251 [INFO] sha for GitHub repo RazielKhan/RustGame: 55d1266707868faf9de5d915471ac7c224f4f251 [INFO] validating manifest of RazielKhan/RustGame on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of RazielKhan/RustGame on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing RazielKhan/RustGame [INFO] finished frobbing RazielKhan/RustGame [INFO] frobbed toml for RazielKhan/RustGame written to work/ex/clippy-test-run/sources/stable/gh/RazielKhan/RustGame/Cargo.toml [INFO] started frobbing RazielKhan/RustGame [INFO] finished frobbing RazielKhan/RustGame [INFO] frobbed toml for RazielKhan/RustGame written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/RazielKhan/RustGame/Cargo.toml [INFO] crate RazielKhan/RustGame has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting RazielKhan/RustGame against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/RazielKhan/RustGame:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 455f649887ca278e348b9b20a99c0949dfeb8f0040b55e662e66e5d759b19a47 [INFO] running `"docker" "start" "-a" "455f649887ca278e348b9b20a99c0949dfeb8f0040b55e662e66e5d759b19a47"` [INFO] [stderr] Checking arrayvec v0.4.7 [INFO] [stderr] Checking cpal v0.8.2 [INFO] [stderr] Checking nalgebra v0.14.4 [INFO] [stderr] Compiling derivative v1.0.2 [INFO] [stderr] Compiling num-derive v0.2.3 [INFO] [stderr] Compiling serde_derive v1.0.80 [INFO] [stderr] Checking rodio v0.7.0 [INFO] [stderr] Checking lyon_geom v0.10.1 [INFO] [stderr] Checking rusttype v0.5.2 [INFO] [stderr] Checking lyon_path v0.10.1 [INFO] [stderr] Checking lyon_tessellation v0.10.2 [INFO] [stderr] Checking lyon v0.10.2 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking gfx_core v0.8.3 [INFO] [stderr] Checking gfx v0.17.1 [INFO] [stderr] Checking gfx_device_gl v0.15.3 [INFO] [stderr] Checking ncollide_math v0.9.0 [INFO] [stderr] Checking ncollide_utils v0.9.0 [INFO] [stderr] Checking ncollide_procedural v0.9.0 [INFO] [stderr] Checking ncollide_geometry v0.6.3 [INFO] [stderr] Checking gfx_window_sdl v0.8.0 [INFO] [stderr] Checking gfx_glyph v0.10.2 [INFO] [stderr] Checking ggez v0.4.4 [INFO] [stderr] Checking ncollide_pipeline v0.13.1 [INFO] [stderr] Checking ncollide_transformation v0.9.0 [INFO] [stderr] Checking ncollide v0.14.1 [INFO] [stderr] Checking game v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/actors/types.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/actors/types.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/actors/object.rs:51:4 [INFO] [stderr] | [INFO] [stderr] 51 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/actors/object.rs:51:4 [INFO] [stderr] | [INFO] [stderr] 51 | pos: pos, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/player.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/player.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/player.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/player.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/player.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/player.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/player.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/player.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/player.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/actors/player.rs:138:24 [INFO] [stderr] | [INFO] [stderr] 138 | self.set_movement((None)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/actors/player.rs:138:24 [INFO] [stderr] | [INFO] [stderr] 138 | self.set_movement((None)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/actors/player.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | self.set_movement((direction)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/actors/player.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | self.set_movement((direction)); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/coin.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/coin.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/coin.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/coin.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/coin.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/coin.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/coin.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/coin.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/coin.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/actors/coin.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/coin.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | use game_inputs::{Direction, InputEvent}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/object.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/object.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/object.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/object.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/object.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/object.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/object.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/object.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/object.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/actors/object.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/object.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | use game_inputs::{Direction, InputEvent}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/mod.rs:10:19 [INFO] [stderr] | [INFO] [stderr] 10 | use game_inputs::{InputEvent, Direction}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/game_inputs.rs:2:19 [INFO] [stderr] | [INFO] [stderr] 2 | use ggez::event::{self, Keycode}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `LinkedList` [INFO] [stderr] --> src/main.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | use std::collections::{BTreeMap, LinkedList}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/main.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Mul` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::ops::Mul; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color`, `DrawMode`, `Rect`, `TextFragment`, `rectangle`, `set_color` [INFO] [stderr] --> src/main.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | use ggez::graphics::{Color, DrawMode, Rect, Vector2, Point2, rectangle, set_color, [INFO] [stderr] | ^^^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] 28 | DrawParam, TextCached, TextFragment, Scale, HorizontalAlign as HAlign, Layout}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ActorType`, `CollisionObjectData` [INFO] [stderr] --> src/main.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | use actors::types::{ActorType, CollisionObjectData}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::procedural::circle` [INFO] [stderr] --> src/main.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | use ncollide::procedural::circle; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ProximityEvent` [INFO] [stderr] --> src/main.rs:41:38 [INFO] [stderr] | [INFO] [stderr] 41 | use ncollide::events::{ContactEvent, ProximityEvent}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::query::Proximity` [INFO] [stderr] --> src/main.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | use ncollide::query::Proximity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::narrow_phase::ContactAlgorithm` [INFO] [stderr] --> src/main.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | use ncollide::narrow_phase::ContactAlgorithm; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: doc comment not used by rustdoc [INFO] [stderr] --> src/main.rs:289:9 [INFO] [stderr] | [INFO] [stderr] 289 | /// modify score value to default [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/player.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/player.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/player.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/player.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/player.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/player.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/player.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/player.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/player.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/actors/player.rs:138:24 [INFO] [stderr] | [INFO] [stderr] 138 | self.set_movement((None)); [INFO] [stderr] | ^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/actors/player.rs:138:24 [INFO] [stderr] | [INFO] [stderr] 138 | self.set_movement((None)); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::double_parens)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/actors/player.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | self.set_movement((direction)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: Consider removing unnecessary double parentheses [INFO] [stderr] --> src/actors/player.rs:150:24 [INFO] [stderr] | [INFO] [stderr] 150 | self.set_movement((direction)); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_parens [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/coin.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/coin.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/coin.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/coin.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/coin.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/coin.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/coin.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/coin.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/coin.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/actors/coin.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/coin.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | use game_inputs::{Direction, InputEvent}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::env` [INFO] [stderr] --> src/actors/object.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::env; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path` [INFO] [stderr] --> src/actors/object.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::LinkedList` [INFO] [stderr] --> src/actors/object.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::LinkedList; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/actors/object.rs:7:17 [INFO] [stderr] | [INFO] [stderr] 7 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::conf` [INFO] [stderr] --> src/actors/object.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use ggez::conf; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::event` [INFO] [stderr] --> src/actors/object.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use ggez::event; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::graphics` [INFO] [stderr] --> src/actors/object.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use ggez::graphics; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Point2`, `Rect` [INFO] [stderr] --> src/actors/object.rs:12:22 [INFO] [stderr] | [INFO] [stderr] 12 | use ggez::graphics::{Rect, Vector2, Point2}; [INFO] [stderr] | ^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameResult` [INFO] [stderr] --> src/actors/object.rs:13:21 [INFO] [stderr] | [INFO] [stderr] 13 | use ggez::{Context, GameResult}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/actors/object.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/object.rs:18:19 [INFO] [stderr] | [INFO] [stderr] 18 | use game_inputs::{Direction, InputEvent}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Direction`, `InputEvent` [INFO] [stderr] --> src/actors/mod.rs:10:19 [INFO] [stderr] | [INFO] [stderr] 10 | use game_inputs::{InputEvent, Direction}; [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self` [INFO] [stderr] --> src/game_inputs.rs:2:19 [INFO] [stderr] | [INFO] [stderr] 2 | use ggez::event::{self, Keycode}; [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `LinkedList` [INFO] [stderr] --> src/main.rs:17:34 [INFO] [stderr] | [INFO] [stderr] 17 | use std::collections::{BTreeMap, LinkedList}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duration`, `Instant` [INFO] [stderr] --> src/main.rs:18:17 [INFO] [stderr] | [INFO] [stderr] 18 | use std::time::{Duration, Instant}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/main.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Mul` [INFO] [stderr] --> src/main.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::ops::Mul; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Color`, `DrawMode`, `Rect`, `TextFragment`, `rectangle`, `set_color` [INFO] [stderr] --> src/main.rs:27:22 [INFO] [stderr] | [INFO] [stderr] 27 | use ggez::graphics::{Color, DrawMode, Rect, Vector2, Point2, rectangle, set_color, [INFO] [stderr] | ^^^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] 28 | DrawParam, TextCached, TextFragment, Scale, HorizontalAlign as HAlign, Layout}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ggez::nalgebra as na` [INFO] [stderr] --> src/main.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | use ggez::nalgebra as na; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ActorType`, `CollisionObjectData` [INFO] [stderr] --> src/main.rs:36:21 [INFO] [stderr] | [INFO] [stderr] 36 | use actors::types::{ActorType, CollisionObjectData}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::procedural::circle` [INFO] [stderr] --> src/main.rs:39:5 [INFO] [stderr] | [INFO] [stderr] 39 | use ncollide::procedural::circle; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ProximityEvent` [INFO] [stderr] --> src/main.rs:41:38 [INFO] [stderr] | [INFO] [stderr] 41 | use ncollide::events::{ContactEvent, ProximityEvent}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::query::Proximity` [INFO] [stderr] --> src/main.rs:42:5 [INFO] [stderr] | [INFO] [stderr] 42 | use ncollide::query::Proximity; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ncollide::narrow_phase::ContactAlgorithm` [INFO] [stderr] --> src/main.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | use ncollide::narrow_phase::ContactAlgorithm; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: doc comment not used by rustdoc [INFO] [stderr] --> src/main.rs:289:9 [INFO] [stderr] | [INFO] [stderr] 289 | /// modify score value to default [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `EventHandler` [INFO] [stderr] --> src/main.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | use ggez::event::{self, EventHandler, Keycode, Mod}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen_width` [INFO] [stderr] --> src/main.rs:109:27 [INFO] [stderr] | [INFO] [stderr] 109 | fn world_to_screen_coords(screen_width: u32, screen_height: u32, point: Vector2) -> Vector2 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_screen_width` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen_height` [INFO] [stderr] --> src/main.rs:109:46 [INFO] [stderr] | [INFO] [stderr] 109 | fn world_to_screen_coords(screen_width: u32, screen_height: u32, point: Vector2) -> Vector2 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_screen_height` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vector` [INFO] [stderr] --> src/main.rs:217:11 [INFO] [stderr] | [INFO] [stderr] 217 | let vector = co1.position().translation.vector.data; [INFO] [stderr] | ^^^^^^ help: consider using `_vector` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/actors/player.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn new(pos: Vector2, time: f64, move_dir: Option) -> Player { [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/actors/coin.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn new(pos: Vector2) -> Coin { [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/main.rs:404:7 [INFO] [stderr] | [INFO] [stderr] 404 | let pos = world_to_screen_coords(ctx.conf.window_mode.height, ctx.conf.window_mode.width, Vector2::new(0., 0.)); [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/main.rs:484:18 [INFO] [stderr] | [INFO] [stderr] 484 | if let Some(event) = self.gameInput.key_down_event(keycode) { [INFO] [stderr] | ^^^^^ help: consider using `_event` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/main.rs:510:18 [INFO] [stderr] | [INFO] [stderr] 510 | if let Some(event) = self.gameInput.key_up_event(keycode) { [INFO] [stderr] | ^^^^^ help: consider using `_event` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/main.rs:509:32 [INFO] [stderr] | [INFO] [stderr] 509 | fn key_up_event(&mut self, ctx:&mut Context, keycode: Keycode, _keymod: Mod, _repeat: bool) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut win_disp = BTreeMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | let mut player = actors::player::Player::new(pos, 1.0, Some(Direction::Right)); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | let mut coin = actors::coin::Coin::new(pos); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | let mut vending = actors::object::Object::new(Vector2::new(1920./2. - 275., -1080./4. + 350.)); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/actors/coin.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | let mut coin = Coin { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/actors/object.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | let mut object = Object { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused import: `EventHandler` [INFO] [stderr] --> src/main.rs:25:25 [INFO] [stderr] | [INFO] [stderr] 25 | use ggez::event::{self, EventHandler, Keycode, Mod}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Time` [INFO] [stderr] --> src/actors/player.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | struct Time{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `size` [INFO] [stderr] --> src/actors/player.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | size: PlayerSize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/player.rs:86:2 [INFO] [stderr] | [INFO] [stderr] 86 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/coin.rs:40:2 [INFO] [stderr] | [INFO] [stderr] 40 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/object.rs:40:2 [INFO] [stderr] | [INFO] [stderr] 40 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `FERRIS_WIDTH` [INFO] [stderr] --> src/main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | const FERRIS_WIDTH:f32 = 226.; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: structure field `currentState` should have a snake case name such as `current_state` [INFO] [stderr] --> src/actors/player.rs:79:2 [INFO] [stderr] | [INFO] [stderr] 79 | pub currentState: PlayerState, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/player.rs:117:76 [INFO] [stderr] | [INFO] [stderr] 117 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/player.rs:117:96 [INFO] [stderr] | [INFO] [stderr] 117 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/player.rs:124:2 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 125 | | self.col_handle.unwrap() [INFO] [stderr] 126 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/actors/player.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | match event { [INFO] [stderr] | _________^ [INFO] [stderr] 131 | | InputEvent::UpdateMovement(Some(direction)) => self.dir = direction, [INFO] [stderr] 132 | | _ => {}, [INFO] [stderr] 133 | | } [INFO] [stderr] | |_________^ help: try this: `if let InputEvent::UpdateMovement(Some(direction)) = event { self.dir = direction }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen_width` [INFO] [stderr] --> src/main.rs:109:27 [INFO] [stderr] | [INFO] [stderr] 109 | fn world_to_screen_coords(screen_width: u32, screen_height: u32, point: Vector2) -> Vector2 { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider using `_screen_width` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `screen_height` [INFO] [stderr] --> src/main.rs:109:46 [INFO] [stderr] | [INFO] [stderr] 109 | fn world_to_screen_coords(screen_width: u32, screen_height: u32, point: Vector2) -> Vector2 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider using `_screen_height` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vector` [INFO] [stderr] --> src/main.rs:217:11 [INFO] [stderr] | [INFO] [stderr] 217 | let vector = co1.position().translation.vector.data; [INFO] [stderr] | ^^^^^^ help: consider using `_vector` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/actors/player.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | pub fn new(pos: Vector2, time: f64, move_dir: Option) -> Player { [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/actors/coin.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn new(pos: Vector2) -> Coin { [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `pos` [INFO] [stderr] --> src/main.rs:404:7 [INFO] [stderr] | [INFO] [stderr] 404 | let pos = world_to_screen_coords(ctx.conf.window_mode.height, ctx.conf.window_mode.width, Vector2::new(0., 0.)); [INFO] [stderr] | ^^^ help: consider using `_pos` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/main.rs:484:18 [INFO] [stderr] | [INFO] [stderr] 484 | if let Some(event) = self.gameInput.key_down_event(keycode) { [INFO] [stderr] | ^^^^^ help: consider using `_event` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/main.rs:510:18 [INFO] [stderr] | [INFO] [stderr] 510 | if let Some(event) = self.gameInput.key_up_event(keycode) { [INFO] [stderr] | ^^^^^ help: consider using `_event` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ctx` [INFO] [stderr] --> src/main.rs:509:32 [INFO] [stderr] | [INFO] [stderr] 509 | fn key_up_event(&mut self, ctx:&mut Context, keycode: Keycode, _keymod: Mod, _repeat: bool) { [INFO] [stderr] | ^^^ help: consider using `_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/actors/player.rs:191:4 [INFO] [stderr] | [INFO] [stderr] 191 | match self.step_queue.pop() { [INFO] [stderr] | _____________^ [INFO] [stderr] 192 | | Step::Player => self.step(), [INFO] [stderr] 193 | | _ => {}, [INFO] [stderr] 194 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Step::Player = self.step_queue.pop() { self.step() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/actors/player.rs:219:25 [INFO] [stderr] | [INFO] [stderr] 219 | let rel_vel_x = if self.velocity.x != na::zero() {self.velocity.x} else { 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.velocity.x - na::zero()).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/actors/player.rs:219:25 [INFO] [stderr] | [INFO] [stderr] 219 | let rel_vel_x = if self.velocity.x != na::zero() {self.velocity.x} else { 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/actors/player.rs:221:21 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.dir.movement() - ((rel_vel_x as f64).signum())).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/actors/player.rs:221:21 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/actors/player.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(rel_vel_x)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/actors/player.rs:235:9 [INFO] [stderr] | [INFO] [stderr] 235 | self.pos.x = self.pos.x + self.velocity.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos.x += self.velocity.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/actors/player.rs:236:9 [INFO] [stderr] | [INFO] [stderr] 236 | self.pos.y = self.pos.y + self.velocity.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos.y += self.velocity.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/actors/player.rs:247:50 [INFO] [stderr] | [INFO] [stderr] 247 | self.jump_time = self.time + jump_duration((self.velocity.x).abs() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.velocity.x).abs())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `actors::step_queue::StepQueue` [INFO] [stderr] --> src/actors/step_queue.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn new() -> StepQueue { [INFO] [stderr] 47 | | let mut times = [0.; STEP_COUNT]; [INFO] [stderr] 48 | | for &step in STEPS.iter() { times[step as usize] = step.period(); } [INFO] [stderr] 49 | | StepQueue { times } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 42 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:261:13 [INFO] [stderr] | [INFO] [stderr] 261 | let mut win_disp = BTreeMap::new(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | let mut player = actors::player::Player::new(pos, 1.0, Some(Direction::Right)); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | let mut coin = actors::coin::Coin::new(pos); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | let mut vending = actors::object::Object::new(Vector2::new(1920./2. - 275., -1080./4. + 350.)); [INFO] [stderr] | ----^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/coin.rs:63:76 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/coin.rs:63:96 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/coin.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | self.col_handle.unwrap() [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `removeColHandle` should have a snake case name such as `remove_col_handle` [INFO] [stderr] --> src/actors/coin.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn removeColHandle(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 75 | | self.col_handle = None; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `pickUpCoin` should have a snake case name such as `pick_up_coin` [INFO] [stderr] --> src/actors/coin.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn pickUpCoin(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | self.pickedup = true; [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `isPickedUp` should have a snake case name such as `is_picked_up` [INFO] [stderr] --> src/actors/coin.rs:82:2 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn isPickedUp(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 83 | | self.pickedup [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/object.rs:63:76 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone() + 250., position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/object.rs:63:103 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone() + 250., position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/object.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | self.col_handle.unwrap() [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `removeColHandle` should have a snake case name such as `remove_col_handle` [INFO] [stderr] --> src/actors/object.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn removeColHandle(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 75 | | self.col_handle = None; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `pickUpObject` should have a snake case name such as `pick_up_object` [INFO] [stderr] --> src/actors/object.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn pickUpObject(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | self.pickedup = true; [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `isPickedUp` should have a snake case name such as `is_picked_up` [INFO] [stderr] --> src/actors/object.rs:82:2 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn isPickedUp(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 83 | | self.pickedup [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `fromKey` should have a snake case name such as `from_key` [INFO] [stderr] --> src/game_inputs.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / fn fromKey(keycode: Keycode) -> Option { [INFO] [stderr] 24 | | match keycode { [INFO] [stderr] 25 | | Keycode::Left => Some(Direction::Left), [INFO] [stderr] 26 | | Keycode::Right => Some(Direction::Right), [INFO] [stderr] 27 | | _ => None, [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:190:5 [INFO] [stderr] | [INFO] [stderr] 190 | / if let &ContactEvent::Started(collider1, collider2) = event { [INFO] [stderr] 191 | | [INFO] [stderr] 192 | | let co1 = world.collision_object(collider1).unwrap(); [INFO] [stderr] 193 | | let co2 = world.collision_object(collider2).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 222 | | } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 190 | if let ContactEvent::Started(collider1, collider2) = *event { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:207:17 [INFO] [stderr] | [INFO] [stderr] 207 | let _ = assets.main_music.stop(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/main.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | if player.grounded == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!player.grounded` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: structure field `gameInput` should have a snake case name such as `game_input` [INFO] [stderr] --> src/main.rs:247:5 [INFO] [stderr] | [INFO] [stderr] 247 | gameInput: GameInput, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:368:12 [INFO] [stderr] | [INFO] [stderr] 368 | self.score = self.score + s; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.score += s` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:453:33 [INFO] [stderr] | [INFO] [stderr] 453 | for (_key, text) in background_text { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 453 | for text in background_text.values() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:460:33 [INFO] [stderr] | [INFO] [stderr] 460 | for (_key, text) in &self.win_display { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 460 | for text in self.win_display.values() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `playerShape` should have a snake case name such as `player_shape` [INFO] [stderr] --> src/main.rs:561:9 [INFO] [stderr] | [INFO] [stderr] 561 | let playerShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(220., 160. ))); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `coinShape` should have a snake case name such as `coin_shape` [INFO] [stderr] --> src/main.rs:562:9 [INFO] [stderr] | [INFO] [stderr] 562 | let coinShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(0.1, 0.1))); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `vendShape` should have a snake case name such as `vend_shape` [INFO] [stderr] --> src/main.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | let vendShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(200., 450.))); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/actors/coin.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | let mut coin = Coin { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/actors/object.rs:49:7 [INFO] [stderr] | [INFO] [stderr] 49 | let mut object = Object { [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Time` [INFO] [stderr] --> src/actors/player.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | struct Time{ [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `size` [INFO] [stderr] --> src/actors/player.rs:80:2 [INFO] [stderr] | [INFO] [stderr] 80 | size: PlayerSize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/player.rs:86:2 [INFO] [stderr] | [INFO] [stderr] 86 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/coin.rs:40:2 [INFO] [stderr] | [INFO] [stderr] 40 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never used: `debug` [INFO] [stderr] --> src/actors/object.rs:40:2 [INFO] [stderr] | [INFO] [stderr] 40 | debug: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `FERRIS_WIDTH` [INFO] [stderr] --> src/main.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | const FERRIS_WIDTH:f32 = 226.; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: Could not compile `game`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: structure field `currentState` should have a snake case name such as `current_state` [INFO] [stderr] --> src/actors/player.rs:79:2 [INFO] [stderr] | [INFO] [stderr] 79 | pub currentState: PlayerState, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/player.rs:117:76 [INFO] [stderr] | [INFO] [stderr] 117 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/player.rs:117:96 [INFO] [stderr] | [INFO] [stderr] 117 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/player.rs:124:2 [INFO] [stderr] | [INFO] [stderr] 124 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 125 | | self.col_handle.unwrap() [INFO] [stderr] 126 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/actors/player.rs:130:3 [INFO] [stderr] | [INFO] [stderr] 130 | match event { [INFO] [stderr] | _________^ [INFO] [stderr] 131 | | InputEvent::UpdateMovement(Some(direction)) => self.dir = direction, [INFO] [stderr] 132 | | _ => {}, [INFO] [stderr] 133 | | } [INFO] [stderr] | |_________^ help: try this: `if let InputEvent::UpdateMovement(Some(direction)) = event { self.dir = direction }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/actors/player.rs:191:4 [INFO] [stderr] | [INFO] [stderr] 191 | match self.step_queue.pop() { [INFO] [stderr] | _____________^ [INFO] [stderr] 192 | | Step::Player => self.step(), [INFO] [stderr] 193 | | _ => {}, [INFO] [stderr] 194 | | } [INFO] [stderr] | |_____________^ help: try this: `if let Step::Player = self.step_queue.pop() { self.step() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/actors/player.rs:219:25 [INFO] [stderr] | [INFO] [stderr] 219 | let rel_vel_x = if self.velocity.x != na::zero() {self.velocity.x} else { 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.velocity.x - na::zero()).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/actors/player.rs:219:25 [INFO] [stderr] | [INFO] [stderr] 219 | let rel_vel_x = if self.velocity.x != na::zero() {self.velocity.x} else { 0.0 }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/actors/player.rs:221:21 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(self.dir.movement() - ((rel_vel_x as f64).signum())).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/actors/player.rs:221:21 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/actors/player.rs:221:45 [INFO] [stderr] | [INFO] [stderr] 221 | let accel = if self.dir.movement() == ((rel_vel_x as f64).signum()) { MOVE_ACCEL } else { stop_accel }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(rel_vel_x)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/actors/player.rs:235:9 [INFO] [stderr] | [INFO] [stderr] 235 | self.pos.x = self.pos.x + self.velocity.x; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos.x += self.velocity.x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/actors/player.rs:236:9 [INFO] [stderr] | [INFO] [stderr] 236 | self.pos.y = self.pos.y + self.velocity.y; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.pos.y += self.velocity.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/actors/player.rs:247:50 [INFO] [stderr] | [INFO] [stderr] 247 | self.jump_time = self.time + jump_duration((self.velocity.x).abs() as f64); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from((self.velocity.x).abs())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `actors::step_queue::StepQueue` [INFO] [stderr] --> src/actors/step_queue.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | / pub fn new() -> StepQueue { [INFO] [stderr] 47 | | let mut times = [0.; STEP_COUNT]; [INFO] [stderr] 48 | | for &step in STEPS.iter() { times[step as usize] = step.period(); } [INFO] [stderr] 49 | | StepQueue { times } [INFO] [stderr] 50 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 42 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/coin.rs:63:76 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/coin.rs:63:96 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone(), position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/coin.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | self.col_handle.unwrap() [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `removeColHandle` should have a snake case name such as `remove_col_handle` [INFO] [stderr] --> src/actors/coin.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn removeColHandle(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 75 | | self.col_handle = None; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `pickUpCoin` should have a snake case name such as `pick_up_coin` [INFO] [stderr] --> src/actors/coin.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn pickUpCoin(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | self.pickedup = true; [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `isPickedUp` should have a snake case name such as `is_picked_up` [INFO] [stderr] --> src/actors/coin.rs:82:2 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn isPickedUp(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 83 | | self.pickedup [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/object.rs:63:76 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone() + 250., position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/actors/object.rs:63:103 [INFO] [stderr] | [INFO] [stderr] 63 | world.set_position(self.col_handle.unwrap(), Isometry2::new(Vector2::new(position.x.clone() + 250., position.y.clone()), 0.)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `position.y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `getColHandle` should have a snake case name such as `get_col_handle` [INFO] [stderr] --> src/actors/object.rs:70:2 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn getColHandle(&mut self) -> CollisionObjectHandle { [INFO] [stderr] | _____^ [INFO] [stderr] 71 | | self.col_handle.unwrap() [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `removeColHandle` should have a snake case name such as `remove_col_handle` [INFO] [stderr] --> src/actors/object.rs:74:2 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn removeColHandle(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 75 | | self.col_handle = None; [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `pickUpObject` should have a snake case name such as `pick_up_object` [INFO] [stderr] --> src/actors/object.rs:78:2 [INFO] [stderr] | [INFO] [stderr] 78 | pub fn pickUpObject(&mut self) { [INFO] [stderr] | _____^ [INFO] [stderr] 79 | | self.pickedup = true; [INFO] [stderr] 80 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `isPickedUp` should have a snake case name such as `is_picked_up` [INFO] [stderr] --> src/actors/object.rs:82:2 [INFO] [stderr] | [INFO] [stderr] 82 | pub fn isPickedUp(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 83 | | self.pickedup [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `fromKey` should have a snake case name such as `from_key` [INFO] [stderr] --> src/game_inputs.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / fn fromKey(keycode: Keycode) -> Option { [INFO] [stderr] 24 | | match keycode { [INFO] [stderr] 25 | | Keycode::Left => Some(Direction::Left), [INFO] [stderr] 26 | | Keycode::Right => Some(Direction::Right), [INFO] [stderr] 27 | | _ => None, [INFO] [stderr] 28 | | } [INFO] [stderr] 29 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:190:5 [INFO] [stderr] | [INFO] [stderr] 190 | / if let &ContactEvent::Started(collider1, collider2) = event { [INFO] [stderr] 191 | | [INFO] [stderr] 192 | | let co1 = world.collision_object(collider1).unwrap(); [INFO] [stderr] 193 | | let co2 = world.collision_object(collider2).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 222 | | } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 190 | if let ContactEvent::Started(collider1, collider2) = *event { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/main.rs:207:17 [INFO] [stderr] | [INFO] [stderr] 207 | let _ = assets.main_music.stop(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/main.rs:214:10 [INFO] [stderr] | [INFO] [stderr] 214 | if player.grounded == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!player.grounded` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: structure field `gameInput` should have a snake case name such as `game_input` [INFO] [stderr] --> src/main.rs:247:5 [INFO] [stderr] | [INFO] [stderr] 247 | gameInput: GameInput, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:368:12 [INFO] [stderr] | [INFO] [stderr] 368 | self.score = self.score + s; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.score += s` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:453:33 [INFO] [stderr] | [INFO] [stderr] 453 | for (_key, text) in background_text { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 453 | for text in background_text.values() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/main.rs:460:33 [INFO] [stderr] | [INFO] [stderr] 460 | for (_key, text) in &self.win_display { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 460 | for text in self.win_display.values() { [INFO] [stderr] | ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `playerShape` should have a snake case name such as `player_shape` [INFO] [stderr] --> src/main.rs:561:9 [INFO] [stderr] | [INFO] [stderr] 561 | let playerShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(220., 160. ))); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `coinShape` should have a snake case name such as `coin_shape` [INFO] [stderr] --> src/main.rs:562:9 [INFO] [stderr] | [INFO] [stderr] 562 | let coinShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(0.1, 0.1))); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `vendShape` should have a snake case name such as `vend_shape` [INFO] [stderr] --> src/main.rs:563:9 [INFO] [stderr] | [INFO] [stderr] 563 | let vendShape = ShapeHandle2::new(Cuboid2::new(Vector2::new(200., 450.))); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `game`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "455f649887ca278e348b9b20a99c0949dfeb8f0040b55e662e66e5d759b19a47"` [INFO] running `"docker" "rm" "-f" "455f649887ca278e348b9b20a99c0949dfeb8f0040b55e662e66e5d759b19a47"` [INFO] [stdout] 455f649887ca278e348b9b20a99c0949dfeb8f0040b55e662e66e5d759b19a47