[INFO] updating cached repository agmcleod/agile_archer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/agmcleod/agile_archer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/agmcleod/agile_archer" "work/ex/clippy-test-run/sources/stable/gh/agmcleod/agile_archer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/agmcleod/agile_archer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/agmcleod/agile_archer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/agmcleod/agile_archer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/agmcleod/agile_archer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6b3b8ad690f4592cf104e910a32247f5c7293f7a [INFO] sha for GitHub repo agmcleod/agile_archer: 6b3b8ad690f4592cf104e910a32247f5c7293f7a [INFO] validating manifest of agmcleod/agile_archer 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 agmcleod/agile_archer 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 agmcleod/agile_archer [INFO] finished frobbing agmcleod/agile_archer [INFO] frobbed toml for agmcleod/agile_archer written to work/ex/clippy-test-run/sources/stable/gh/agmcleod/agile_archer/Cargo.toml [INFO] started frobbing agmcleod/agile_archer [INFO] finished frobbing agmcleod/agile_archer [INFO] frobbed toml for agmcleod/agile_archer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/agmcleod/agile_archer/Cargo.toml [INFO] crate agmcleod/agile_archer 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 agmcleod/agile_archer 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/agmcleod/agile_archer:/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] 30d0b4d36fa9320ceb755f0aaf001fbe33b8729de7a8592365e178731ee6360e [INFO] running `"docker" "start" "-a" "30d0b4d36fa9320ceb755f0aaf001fbe33b8729de7a8592365e178731ee6360e"` [INFO] [stderr] Checking smallvec v0.4.0 [INFO] [stderr] Checking cgmath v0.14.1 [INFO] [stderr] Checking pulse v0.5.3 [INFO] [stderr] Checking rayon-core v1.2.1 [INFO] [stderr] Compiling glutin v0.9.2 [INFO] [stderr] Checking miniz-sys v0.1.9 [INFO] [stderr] Checking png v0.8.0 [INFO] [stderr] Checking gfx v0.16.1 [INFO] [stderr] Checking flate2 v0.2.19 [INFO] [stderr] Checking wayland-sys v0.9.9 [INFO] [stderr] Checking rayon v0.8.1 [INFO] [stderr] Checking rayon v0.7.1 [INFO] [stderr] Checking wayland-client v0.9.9 [INFO] [stderr] Checking tiled v0.6.0 [INFO] [stderr] Checking wayland-window v0.6.1 [INFO] [stderr] Checking wayland-kbd v0.9.1 [INFO] [stderr] Checking hibitset v0.1.3 [INFO] [stderr] Checking shred v0.4.3 [INFO] [stderr] Checking jpeg-decoder v0.1.13 [INFO] [stderr] Checking winit v0.7.5 [INFO] [stderr] Checking genmesh v0.4.3 [INFO] [stderr] Checking image v0.14.0 [INFO] [stderr] Checking specs v0.9.3 [INFO] [stderr] Checking gfx_window_glutin v0.17.0 [INFO] [stderr] Checking agile_archer v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/renderer/tiled.rs:76:33 [INFO] [stderr] | [INFO] [stderr] 76 | let i = index as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/renderer/tiled.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | index_data: index_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_data` [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/renderer/tiled.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | pso: pso, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pso` [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/renderer/tiled.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | slice: slice, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [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/renderer/tiled.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [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/renderer/basic.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | pso: pso, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pso` [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/renderer/basic.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [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/renderer/basic.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | tex: tex, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tex` [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/components/animation_sheet.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | frame_time: frame_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frame_time` [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/components/input.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | hidpi_factor: hidpi_factor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hidpi_factor` [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/components/tile_data.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | walkable_groups: walkable_groups, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `walkable_groups` [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/components/tile_data.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | jump_targets: jump_targets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_targets` [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/components/transform.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | rotation: rotation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotation` [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/components/transform.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | pos: Vector2{ x: x, y: y}, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/components/transform.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | pos: Vector2{ x: x, y: y}, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/main.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | .add(systems::PlayerMovement{ pathable_grid: pathable_grid }, "player_movement", &[]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pathable_grid` [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/main.rs:99:33 [INFO] [stderr] | [INFO] [stderr] 99 | .add(systems::EnergyUi{ player_entity: player_entity }, "energy_ui", &["player_movement"]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_entity` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/renderer/tiled.rs:76:33 [INFO] [stderr] | [INFO] [stderr] 76 | let i = index as usize; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/renderer/tiled.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | index_data: index_data, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `index_data` [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/renderer/tiled.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | pso: pso, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pso` [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/renderer/tiled.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | slice: slice, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [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/renderer/tiled.rs:162:17 [INFO] [stderr] | [INFO] [stderr] 162 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [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/renderer/basic.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | pso: pso, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `pso` [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/renderer/basic.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | vbuf: vbuf, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vbuf` [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/renderer/basic.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | tex: tex, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tex` [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/components/animation_sheet.rs:21:13 [INFO] [stderr] | [INFO] [stderr] 21 | frame_time: frame_time, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `frame_time` [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/components/input.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | hidpi_factor: hidpi_factor, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `hidpi_factor` [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/components/tile_data.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | walkable_groups: walkable_groups, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `walkable_groups` [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/components/tile_data.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | jump_targets: jump_targets, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `jump_targets` [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/components/transform.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | rotation: rotation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `rotation` [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/components/transform.rs:17:27 [INFO] [stderr] | [INFO] [stderr] 17 | pos: Vector2{ x: x, y: y}, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/components/transform.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | pos: Vector2{ x: x, y: y}, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/main.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | .add(systems::PlayerMovement{ pathable_grid: pathable_grid }, "player_movement", &[]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `pathable_grid` [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/main.rs:99:33 [INFO] [stderr] | [INFO] [stderr] 99 | .add(systems::EnergyUi{ player_entity: player_entity }, "energy_ui", &["player_movement"]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `player_entity` [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 import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Vector3` [INFO] [stderr] --> src/renderer/basic.rs:7:37 [INFO] [stderr] | [INFO] [stderr] 7 | use cgmath::{SquareMatrix, Matrix4, Vector3}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/components/tile_data.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/math/astar.rs:2:33 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::{HashMap, HashSet, BinaryHeap}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TileMapping` [INFO] [stderr] --> src/systems/player_movement.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use types::{TileMapping, Turn}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Deref` [INFO] [stderr] --> src/systems/process_turn.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ops::{Deref, DerefMut}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Fetch` [INFO] [stderr] --> src/systems/process_turn.rs:2:13 [INFO] [stderr] | [INFO] [stderr] 2 | use specs::{Fetch, FetchMut, Join, ReadStorage, WriteStorage, System}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::*` [INFO] [stderr] --> src/utils/tiled.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | use super::*; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Image`, `Layer`, `Map`, `Properties`, `Tile`, `Tileset` [INFO] [stderr] --> src/utils/tiled.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | use tiled::{Map, Layer, Tileset, Image, Tile, Properties}; [INFO] [stderr] | ^^^ ^^^^^ ^^^^^^^ ^^^^^ ^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/types/mod.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return false [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Vector3` [INFO] [stderr] --> src/renderer/basic.rs:7:37 [INFO] [stderr] | [INFO] [stderr] 7 | use cgmath::{SquareMatrix, Matrix4, Vector3}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/components/tile_data.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `HashSet` [INFO] [stderr] --> src/math/astar.rs:2:33 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::{HashMap, HashSet, BinaryHeap}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TileMapping` [INFO] [stderr] --> src/systems/player_movement.rs:5:13 [INFO] [stderr] | [INFO] [stderr] 5 | use types::{TileMapping, Turn}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Deref` [INFO] [stderr] --> src/systems/process_turn.rs:1:16 [INFO] [stderr] | [INFO] [stderr] 1 | use std::ops::{Deref, DerefMut}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Fetch` [INFO] [stderr] --> src/systems/process_turn.rs:2:13 [INFO] [stderr] | [INFO] [stderr] 2 | use specs::{Fetch, FetchMut, Join, ReadStorage, WriteStorage, System}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/types/mod.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | return false [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `false` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let mut tile_data = tile_data_res.deref_mut(); [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:112:55 [INFO] [stderr] | [INFO] [stderr] 112 | let (window, mut device, mut factory, main_color, mut main_depth) = [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/utils/tiled.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let mut ys = ground_tiles.get_mut(&x).unwrap(); [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/utils/tiled.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | let mut xs = unpassable_tiles.get_mut(&y).unwrap(); [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:90:9 [INFO] [stderr] | [INFO] [stderr] 90 | let mut tile_data = tile_data_res.deref_mut(); [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: method is never used: `reset_energy` [INFO] [stderr] --> src/components/player.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn reset_energy(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `last_time` [INFO] [stderr] --> src/systems/animation_system.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | last_time: Instant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/main.rs:112:55 [INFO] [stderr] | [INFO] [stderr] 112 | let (window, mut device, mut factory, main_color, mut main_depth) = [INFO] [stderr] | ----^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/renderer/basic.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn render(&mut self, [INFO] [stderr] 86 | | encoder: &mut gfx::Encoder, [INFO] [stderr] 87 | | world: &World, [INFO] [stderr] 88 | | factory: &mut F, [INFO] [stderr] ... | [INFO] [stderr] 170 | | encoder.draw(&slice, &self.pso, ¶ms); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer/basic.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | let w = transform.size.x as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(transform.size.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: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer/basic.rs:103:17 [INFO] [stderr] | [INFO] [stderr] 103 | let h = transform.size.y as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(transform.size.y)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/components/animation_sheet.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | self.animations.get(&self.current_animation).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.animations[&self.current_animation]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/components/tile_data.rs:31:67 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn set_player_group_index_from_pos(&mut self, player_pos: &Vector2) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `Vector2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/components/tile_data.rs:47:57 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn get_tile_for_world_position(&self, position: &Vector2) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `Vector2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/components/tile_data.rs:48:32 [INFO] [stderr] | [INFO] [stderr] 48 | let mut player_tile = ((position.x / &self.tile_size[0]) as usize, (position.y / &self.tile_size[1]) as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^------------------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.tile_size[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/components/tile_data.rs:48:76 [INFO] [stderr] | [INFO] [stderr] 48 | let mut player_tile = ((position.x / &self.tile_size[0]) as usize, (position.y / &self.tile_size[1]) as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^------------------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.tile_size[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/math/astar.rs:41:48 [INFO] [stderr] | [INFO] [stderr] 41 | fn get_neighbours(pos: &(usize, usize), tiles: &Vec>) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/math/astar.rs:96:25 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn find_path(tiles: &Vec>, start_pos: (usize, usize), target: (usize, usize)) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:108:27 [INFO] [stderr] | [INFO] [stderr] 108 | let mut pos = closed.get(&location.position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&closed[&location.position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/math/astar.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | / loop { [INFO] [stderr] 111 | | if let Some(p) = closed.get(&pos) { [INFO] [stderr] 112 | | tracked_positions.push(*p); [INFO] [stderr] 113 | | pos = p; [INFO] [stderr] ... | [INFO] [stderr] 116 | | } [INFO] [stderr] 117 | | } [INFO] [stderr] | |_____________^ help: try: `while let Some(p) = closed.get(&pos) { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:122:28 [INFO] [stderr] | [INFO] [stderr] 122 | let new_cost = costs.get(&location.position).unwrap() + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&costs[&location.position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:123:63 [INFO] [stderr] | [INFO] [stderr] 123 | if !costs.contains_key(&neighbour) || new_cost < *costs.get(&neighbour).unwrap() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&costs[&neighbour]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/utils/tiled.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | let mut ys = ground_tiles.get_mut(&x).unwrap(); [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/utils/tiled.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | let mut xs = unpassable_tiles.get_mut(&y).unwrap(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/systems/energy_ui.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | transform.size.x = (EnergyBar::get_max_width() as f32 * player.get_energy_percentage()) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(EnergyBar::get_max_width())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/systems/player_movement.rs:13:41 [INFO] [stderr] | [INFO] [stderr] 13 | fn get_mouse_tile(&self, mouse_pos: &(i32, i32), tile_size: &[i32; 2]) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(i32, i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/systems/player_movement.rs:13:65 [INFO] [stderr] | [INFO] [stderr] 13 | fn get_mouse_tile(&self, mouse_pos: &(i32, i32), tile_size: &[i32; 2]) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `[i32; 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/systems/player_movement.rs:55:23 [INFO] [stderr] | [INFO] [stderr] 55 | type SystemData = ( [INFO] [stderr] | _______________________^ [INFO] [stderr] 56 | | Fetch<'a, GameState>, [INFO] [stderr] 57 | | ReadStorage<'a, HighlightTile>, [INFO] [stderr] 58 | | Fetch<'a, Input>, [INFO] [stderr] ... | [INFO] [stderr] 62 | | WriteStorage<'a, Transform>, [INFO] [stderr] 63 | | ); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/systems/player_movement.rs:148:132 [INFO] [stderr] | [INFO] [stderr] 148 | } else if player_distance <= player_jump_distance && tile_data.jump_targets.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | ____________________________________________________________________________________________________________________________________^ [INFO] [stderr] 149 | | self.move_highlight_to_mouse(&mouse_tile, &mut transform, &tile_data, &mut sprite); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/systems/player_movement.rs:146:65 [INFO] [stderr] | [INFO] [stderr] 146 | if group.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 147 | | self.move_highlight_to_mouse(&mouse_tile, &mut transform, &tile_data, &mut sprite); [INFO] [stderr] 148 | | } else if player_distance <= player_jump_distance && tile_data.jump_targets.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/utils/tiled.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | walkable_coord_pairs.get_mut(target_group_index).unwrap().push((temp_row, temp_col)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `walkable_coord_pairs[target_group_index]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:127:19 [INFO] [stderr] | [INFO] [stderr] 127 | let tileset = map.tilesets.get(0).unwrap(); // working under the assumption i will only use one tileset [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&map.tilesets[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | let image = tileset.images.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tileset.images[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | / match event { [INFO] [stderr] 146 | | Event::WindowEvent{ event, .. } => match event { [INFO] [stderr] 147 | | WindowEvent::MouseMoved{ position: (x, y), .. } => { [INFO] [stderr] 148 | | let mut input_res = world.write_resource::(); [INFO] [stderr] ... | [INFO] [stderr] 177 | | _ => () [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 145 | if let Event::WindowEvent{ event, .. } = event { match event { [INFO] [stderr] 146 | WindowEvent::MouseMoved{ position: (x, y), .. } => { [INFO] [stderr] 147 | let mut input_res = world.write_resource::(); [INFO] [stderr] 148 | let mut input = input_res.deref_mut(); [INFO] [stderr] 149 | input.mouse_pos.0 = (x as f32 / input.hidpi_factor) as i32; [INFO] [stderr] 150 | input.mouse_pos.1 = (y as f32 / input.hidpi_factor) as i32; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: The function/method `render` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:189:49 [INFO] [stderr] | [INFO] [stderr] 189 | plane_renderer.render(&mut encoder, &mut world); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `agile_archer`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `reset_energy` [INFO] [stderr] --> src/components/player.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn reset_energy(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `last_time` [INFO] [stderr] --> src/systems/animation_system.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | last_time: Instant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/renderer/basic.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | / pub fn render(&mut self, [INFO] [stderr] 86 | | encoder: &mut gfx::Encoder, [INFO] [stderr] 87 | | world: &World, [INFO] [stderr] 88 | | factory: &mut F, [INFO] [stderr] ... | [INFO] [stderr] 170 | | encoder.draw(&slice, &self.pso, ¶ms); [INFO] [stderr] 171 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer/basic.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | let w = transform.size.x as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(transform.size.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: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/renderer/basic.rs:103:17 [INFO] [stderr] | [INFO] [stderr] 103 | let h = transform.size.y as f32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(transform.size.y)` [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: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/components/animation_sheet.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | self.animations.get(&self.current_animation).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.animations[&self.current_animation]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/components/tile_data.rs:31:67 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn set_player_group_index_from_pos(&mut self, player_pos: &Vector2) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `Vector2` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/components/tile_data.rs:47:57 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn get_tile_for_world_position(&self, position: &Vector2) -> (usize, usize) { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `Vector2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/components/tile_data.rs:48:32 [INFO] [stderr] | [INFO] [stderr] 48 | let mut player_tile = ((position.x / &self.tile_size[0]) as usize, (position.y / &self.tile_size[1]) as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^------------------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.tile_size[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/components/tile_data.rs:48:76 [INFO] [stderr] | [INFO] [stderr] 48 | let mut player_tile = ((position.x / &self.tile_size[0]) as usize, (position.y / &self.tile_size[1]) as usize); [INFO] [stderr] | ^^^^^^^^^^^^^^------------------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `self.tile_size[1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/math/astar.rs:41:48 [INFO] [stderr] | [INFO] [stderr] 41 | fn get_neighbours(pos: &(usize, usize), tiles: &Vec>) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/math/astar.rs:96:25 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn find_path(tiles: &Vec>, start_pos: (usize, usize), target: (usize, usize)) -> Vec<(usize, usize)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[Vec]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:108:27 [INFO] [stderr] | [INFO] [stderr] 108 | let mut pos = closed.get(&location.position).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&closed[&location.position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/math/astar.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | / loop { [INFO] [stderr] 111 | | if let Some(p) = closed.get(&pos) { [INFO] [stderr] 112 | | tracked_positions.push(*p); [INFO] [stderr] 113 | | pos = p; [INFO] [stderr] ... | [INFO] [stderr] 116 | | } [INFO] [stderr] 117 | | } [INFO] [stderr] | |_____________^ help: try: `while let Some(p) = closed.get(&pos) { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:122:28 [INFO] [stderr] | [INFO] [stderr] 122 | let new_cost = costs.get(&location.position).unwrap() + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&costs[&location.position]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/math/astar.rs:123:63 [INFO] [stderr] | [INFO] [stderr] 123 | if !costs.contains_key(&neighbour) || new_cost < *costs.get(&neighbour).unwrap() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&costs[&neighbour]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: casting u16 to f32 may become silently lossy if types change [INFO] [stderr] --> src/systems/energy_ui.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | transform.size.x = (EnergyBar::get_max_width() as f32 * player.get_energy_percentage()) as u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f32::from(EnergyBar::get_max_width())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/systems/player_movement.rs:13:41 [INFO] [stderr] | [INFO] [stderr] 13 | fn get_mouse_tile(&self, mouse_pos: &(i32, i32), tile_size: &[i32; 2]) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `(i32, i32)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/systems/player_movement.rs:13:65 [INFO] [stderr] | [INFO] [stderr] 13 | fn get_mouse_tile(&self, mouse_pos: &(i32, i32), tile_size: &[i32; 2]) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `[i32; 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/systems/player_movement.rs:55:23 [INFO] [stderr] | [INFO] [stderr] 55 | type SystemData = ( [INFO] [stderr] | _______________________^ [INFO] [stderr] 56 | | Fetch<'a, GameState>, [INFO] [stderr] 57 | | ReadStorage<'a, HighlightTile>, [INFO] [stderr] 58 | | Fetch<'a, Input>, [INFO] [stderr] ... | [INFO] [stderr] 62 | | WriteStorage<'a, Transform>, [INFO] [stderr] 63 | | ); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/systems/player_movement.rs:148:132 [INFO] [stderr] | [INFO] [stderr] 148 | } else if player_distance <= player_jump_distance && tile_data.jump_targets.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | ____________________________________________________________________________________________________________________________________^ [INFO] [stderr] 149 | | self.move_highlight_to_mouse(&mouse_tile, &mut transform, &tile_data, &mut sprite); [INFO] [stderr] 150 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/systems/player_movement.rs:146:65 [INFO] [stderr] | [INFO] [stderr] 146 | if group.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 147 | | self.move_highlight_to_mouse(&mouse_tile, &mut transform, &tile_data, &mut sprite); [INFO] [stderr] 148 | | } else if player_distance <= player_jump_distance && tile_data.jump_targets.contains(&mouse_tile.1, &mouse_tile.0) { [INFO] [stderr] | |_________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stderr] [INFO] [stderr] warning: called `.get_mut().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/utils/tiled.rs:113:17 [INFO] [stderr] | [INFO] [stderr] 113 | walkable_coord_pairs.get_mut(target_group_index).unwrap().push((temp_row, temp_col)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `walkable_coord_pairs[target_group_index]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:127:19 [INFO] [stderr] | [INFO] [stderr] 127 | let tileset = map.tilesets.get(0).unwrap(); // working under the assumption i will only use one tileset [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&map.tilesets[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/main.rs:128:17 [INFO] [stderr] | [INFO] [stderr] 128 | let image = tileset.images.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tileset.images[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [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/main.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | / match event { [INFO] [stderr] 146 | | Event::WindowEvent{ event, .. } => match event { [INFO] [stderr] 147 | | WindowEvent::MouseMoved{ position: (x, y), .. } => { [INFO] [stderr] 148 | | let mut input_res = world.write_resource::(); [INFO] [stderr] ... | [INFO] [stderr] 177 | | _ => () [INFO] [stderr] 178 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 145 | if let Event::WindowEvent{ event, .. } = event { match event { [INFO] [stderr] 146 | WindowEvent::MouseMoved{ position: (x, y), .. } => { [INFO] [stderr] 147 | let mut input_res = world.write_resource::(); [INFO] [stderr] 148 | let mut input = input_res.deref_mut(); [INFO] [stderr] 149 | input.mouse_pos.0 = (x as f32 / input.hidpi_factor) as i32; [INFO] [stderr] 150 | input.mouse_pos.1 = (y as f32 / input.hidpi_factor) as i32; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: The function/method `render` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:189:49 [INFO] [stderr] | [INFO] [stderr] 189 | plane_renderer.render(&mut encoder, &mut world); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `agile_archer`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "30d0b4d36fa9320ceb755f0aaf001fbe33b8729de7a8592365e178731ee6360e"` [INFO] running `"docker" "rm" "-f" "30d0b4d36fa9320ceb755f0aaf001fbe33b8729de7a8592365e178731ee6360e"` [INFO] [stdout] 30d0b4d36fa9320ceb755f0aaf001fbe33b8729de7a8592365e178731ee6360e