[INFO] updating cached repository jpastuszek/microRTS-rs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/jpastuszek/microRTS-rs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/jpastuszek/microRTS-rs" "work/ex/clippy-test-run/sources/stable/gh/jpastuszek/microRTS-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/jpastuszek/microRTS-rs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/jpastuszek/microRTS-rs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jpastuszek/microRTS-rs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jpastuszek/microRTS-rs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] efa17147b015deb3db61c22ad6fecbd5511f22cc [INFO] sha for GitHub repo jpastuszek/microRTS-rs: efa17147b015deb3db61c22ad6fecbd5511f22cc [INFO] validating manifest of jpastuszek/microRTS-rs 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 jpastuszek/microRTS-rs 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 jpastuszek/microRTS-rs [INFO] finished frobbing jpastuszek/microRTS-rs [INFO] frobbed toml for jpastuszek/microRTS-rs written to work/ex/clippy-test-run/sources/stable/gh/jpastuszek/microRTS-rs/Cargo.toml [INFO] started frobbing jpastuszek/microRTS-rs [INFO] finished frobbing jpastuszek/microRTS-rs [INFO] frobbed toml for jpastuszek/microRTS-rs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/jpastuszek/microRTS-rs/Cargo.toml [INFO] crate jpastuszek/microRTS-rs 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 jpastuszek/microRTS-rs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/jpastuszek/microRTS-rs:/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] f29133020105d5409dd3f2a6fff172d9970ecad6c67023dcf45268cdb3b8567b [INFO] running `"docker" "start" "-a" "f29133020105d5409dd3f2a6fff172d9970ecad6c67023dcf45268cdb3b8567b"` [INFO] [stderr] warning: path `/opt/crater/workdir/src/micro_rts.rs` was erroneously implicitly accepted for library `micro_rts`, [INFO] [stderr] please rename the file to `src/lib.rs` or set lib.path in Cargo.toml [INFO] [stderr] Checking pathfinding v0.1.13 [INFO] [stderr] Checking micro_rts_rs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/game/terrain.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | coordinates: coordinates, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coordinates` [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/game/terrain.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | tile: tile, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tile` [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/game/terrain.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/terrain.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | row_no: row_no, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `row_no` [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/game/terrain.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/terrain.rs:313:17 [INFO] [stderr] | [INFO] [stderr] 313 | tile: tile, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tile` [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/game/entity.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/game/entity.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | object: object, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `object` [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/game/entity.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | location_index: location_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `location_index` [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/game/player.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | colour: colour, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `colour` [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/game/game_state.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/game_state.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | round: round, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `round` [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/game_view/mod.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | game: game, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `game` [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/game_view/mod.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | player: player, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `player` [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/game_view/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/game_view/mod.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | entity: entity, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `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: redundant field names in struct initialization [INFO] [stderr] --> src/game_view/mod.rs:71:33 [INFO] [stderr] | [INFO] [stderr] 71 | entity_id: entity_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entity_id` [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/game_view/mod.rs:72:33 [INFO] [stderr] | [INFO] [stderr] 72 | unit: unit, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `unit` [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/game_view/mod.rs:105:29 [INFO] [stderr] | [INFO] [stderr] 105 | entity_id: entity_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entity_id` [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/game_view/mod.rs:106:29 [INFO] [stderr] | [INFO] [stderr] 106 | resource: resource, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `resource` [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/game/terrain.rs:194:21 [INFO] [stderr] | [INFO] [stderr] 194 | coordinates: coordinates, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coordinates` [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/game/terrain.rs:195:21 [INFO] [stderr] | [INFO] [stderr] 195 | tile: tile, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tile` [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/game/terrain.rs:203:17 [INFO] [stderr] | [INFO] [stderr] 203 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/terrain.rs:204:17 [INFO] [stderr] | [INFO] [stderr] 204 | row_no: row_no, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `row_no` [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/game/terrain.rs:311:17 [INFO] [stderr] | [INFO] [stderr] 311 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/terrain.rs:313:17 [INFO] [stderr] | [INFO] [stderr] 313 | tile: tile, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tile` [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/game/entity.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/game/entity.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | object: object, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `object` [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/game/entity.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | location_index: location_index, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `location_index` [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/game/player.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | colour: colour, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `colour` [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/game/game_state.rs:147:13 [INFO] [stderr] | [INFO] [stderr] 147 | terrain: terrain, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `terrain` [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/game/game_state.rs:163:13 [INFO] [stderr] | [INFO] [stderr] 163 | round: round, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `round` [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/game_view/mod.rs:16:13 [INFO] [stderr] | [INFO] [stderr] 16 | game: game, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `game` [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/game_view/mod.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | player: player, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `player` [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/game_view/mod.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | location: location, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `location` [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/game_view/mod.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | entity: entity, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `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: redundant field names in struct initialization [INFO] [stderr] --> src/game_view/mod.rs:71:33 [INFO] [stderr] | [INFO] [stderr] 71 | entity_id: entity_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entity_id` [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/game_view/mod.rs:72:33 [INFO] [stderr] | [INFO] [stderr] 72 | unit: unit, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `unit` [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/game_view/mod.rs:105:29 [INFO] [stderr] | [INFO] [stderr] 105 | entity_id: entity_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entity_id` [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/game_view/mod.rs:106:29 [INFO] [stderr] | [INFO] [stderr] 106 | resource: resource, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `resource` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:175:27 [INFO] [stderr] | [INFO] [stderr] 175 | const GRID_INTERSECTION: &'static str = "+"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:176:23 [INFO] [stderr] | [INFO] [stderr] 176 | const GRID_HOR_LINE: &'static str = "---"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:177:24 [INFO] [stderr] | [INFO] [stderr] 177 | const GRID_VERT_LINE: &'static str = "|"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:178:20 [INFO] [stderr] | [INFO] [stderr] 178 | const GRID_EMPTY: &'static str = " "; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:179:19 [INFO] [stderr] | [INFO] [stderr] 179 | const GRID_WALL: &'static str = "XXX"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | const ENTITY_WORKER: &'static str = "W"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:182:22 [INFO] [stderr] | [INFO] [stderr] 182 | const ENTITY_LIGHT: &'static str = "L"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | const ENTITY_HEAVY: &'static str = "H"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:184:21 [INFO] [stderr] | [INFO] [stderr] 184 | const ENTITY_BASE: &'static str = "@"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:185:24 [INFO] [stderr] | [INFO] [stderr] 185 | const ENTITY_BARRACS: &'static str = "B"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:186:26 [INFO] [stderr] | [INFO] [stderr] 186 | const ENTITY_RESOURCES: &'static str = "#"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:175:27 [INFO] [stderr] | [INFO] [stderr] 175 | const GRID_INTERSECTION: &'static str = "+"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:176:23 [INFO] [stderr] | [INFO] [stderr] 176 | const GRID_HOR_LINE: &'static str = "---"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:177:24 [INFO] [stderr] | [INFO] [stderr] 177 | const GRID_VERT_LINE: &'static str = "|"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:178:20 [INFO] [stderr] | [INFO] [stderr] 178 | const GRID_EMPTY: &'static str = " "; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:179:19 [INFO] [stderr] | [INFO] [stderr] 179 | const GRID_WALL: &'static str = "XXX"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:181:23 [INFO] [stderr] | [INFO] [stderr] 181 | const ENTITY_WORKER: &'static str = "W"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:182:22 [INFO] [stderr] | [INFO] [stderr] 182 | const ENTITY_LIGHT: &'static str = "L"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:183:22 [INFO] [stderr] | [INFO] [stderr] 183 | const ENTITY_HEAVY: &'static str = "H"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:184:21 [INFO] [stderr] | [INFO] [stderr] 184 | const ENTITY_BASE: &'static str = "@"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:185:24 [INFO] [stderr] | [INFO] [stderr] 185 | const ENTITY_BARRACS: &'static str = "B"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/game/game_state.rs:186:26 [INFO] [stderr] | [INFO] [stderr] 186 | const ENTITY_RESOURCES: &'static str = "#"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/game/terrain.rs:107:23 [INFO] [stderr] | [INFO] [stderr] 107 | location: self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/game/terrain.rs:240:14 [INFO] [stderr] | [INFO] [stderr] 240 | .ok_or(TerrainBuilderError::OutOfTerrain(coordinates)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| TerrainBuilderError::OutOfTerrain(coordinates))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `game::entity::Entities<'p, 't>` [INFO] [stderr] --> src/game/entity.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / pub fn new() -> Entities<'p, 't> { [INFO] [stderr] 91 | | Entities { [INFO] [stderr] 92 | | entities: Default::default(), [INFO] [stderr] 93 | | location_index: Default::default(), [INFO] [stderr] 94 | | entity_id_seq: 0.., [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 89 | impl Default for game::entity::Entities<'p, 't> { [INFO] [stderr] 90 | fn default() -> Self { [INFO] [stderr] 91 | Self::new() [INFO] [stderr] 92 | } [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/game/game_state.rs:156:32 [INFO] [stderr] | [INFO] [stderr] 156 | .map_err(|place_error| GameStateBuilderError::EntityPlaceError(place_error))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `GameStateBuilderError::EntityPlaceError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/game/game_state.rs:164:22 [INFO] [stderr] | [INFO] [stderr] 164 | terrain: self.terrain.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 164 | terrain: &(*self.terrain).clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 164 | terrain: &game::terrain::Terrain::clone(self.terrain), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game/game_state.rs:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | / match location.tile { [INFO] [stderr] 219 | | &Tile::Wall => write!(f, "{}", GRID_WALL)?, [INFO] [stderr] 220 | | &Tile::Empty => { [INFO] [stderr] 221 | | //TODO: merge join entities (ordered by coord, next() for peek().coord == [INFO] [stderr] ... | [INFO] [stderr] 253 | | } [INFO] [stderr] 254 | | } [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] 218 | match *location.tile { [INFO] [stderr] 219 | Tile::Wall => write!(f, "{}", GRID_WALL)?, [INFO] [stderr] 220 | Tile::Empty => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game_view/mod.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | / match entity { [INFO] [stderr] 67 | | &Entity { location, object: Object::Unit(owner, ref unit), .. } [INFO] [stderr] 68 | | //TODO: should that be impl Eq for Player? [INFO] [stderr] 69 | | if ptr::eq(owner, self.game_view.player) => { [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => continue [INFO] [stderr] 77 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 66 | match *entity { [INFO] [stderr] 67 | Entity { location, object: Object::Unit(owner, ref unit), .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game_view/mod.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | / match entity { [INFO] [stderr] 103 | | &Entity { location, object: Object::Resources(ref resource), .. } => { [INFO] [stderr] 104 | | return Some(Resources { [INFO] [stderr] 105 | | entity_id: entity_id, [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => continue [INFO] [stderr] 111 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 102 | match *entity { [INFO] [stderr] 103 | Entity { location, object: Object::Resources(ref resource), .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/game_view/mod.rs:150:23 [INFO] [stderr] | [INFO] [stderr] 150 | location: self.location.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.location` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ai/test_ai.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match unit.unit { [INFO] [stderr] 19 | | &Unit::Worker => { [INFO] [stderr] 20 | | let mut resources_paths = view.resources() [INFO] [stderr] 21 | | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] ... | [INFO] [stderr] 32 | | _ => (), [INFO] [stderr] 33 | | } [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] 18 | if let &Unit::Worker = unit.unit { [INFO] [stderr] 19 | let mut resources_paths = view.resources() [INFO] [stderr] 20 | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] 21 | .collect::>(); [INFO] [stderr] 22 | [INFO] [stderr] 23 | resources_paths.sort_by_key(|&(_, cost)| cost); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ai/test_ai.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match unit.unit { [INFO] [stderr] 19 | | &Unit::Worker => { [INFO] [stderr] 20 | | let mut resources_paths = view.resources() [INFO] [stderr] 21 | | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] ... | [INFO] [stderr] 32 | | _ => (), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 18 | match *unit.unit { [INFO] [stderr] 19 | Unit::Worker => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ai/test_ai.rs:27:25 [INFO] [stderr] | [INFO] [stderr] 27 | / path.iter().skip(1).next() [INFO] [stderr] 28 | | .and_then(|next_navigator| unit.navigator.direction_to(next_navigator)) [INFO] [stderr] 29 | | .map(|direction| desires.push(Order::Move(unit.entity_id, direction))); [INFO] [stderr] | |__________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 27 | if let Some(direction) = path.iter().skip(1).next() [INFO] [stderr] 28 | .and_then(|next_navigator| unit.navigator.direction_to(next_navigator)) { desires.push(Order::Move(unit.entity_id, direction)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/ai/test_ai.rs:27:25 [INFO] [stderr] | [INFO] [stderr] 27 | path.iter().skip(1).next() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `micro_rts_rs`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/game/terrain.rs:107:23 [INFO] [stderr] | [INFO] [stderr] 107 | location: self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [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: use of `ok_or` followed by a function call [INFO] [stderr] --> src/game/terrain.rs:240:14 [INFO] [stderr] | [INFO] [stderr] 240 | .ok_or(TerrainBuilderError::OutOfTerrain(coordinates)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| TerrainBuilderError::OutOfTerrain(coordinates))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `game::entity::Entities<'p, 't>` [INFO] [stderr] --> src/game/entity.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / pub fn new() -> Entities<'p, 't> { [INFO] [stderr] 91 | | Entities { [INFO] [stderr] 92 | | entities: Default::default(), [INFO] [stderr] 93 | | location_index: Default::default(), [INFO] [stderr] 94 | | entity_id_seq: 0.., [INFO] [stderr] 95 | | } [INFO] [stderr] 96 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 89 | impl Default for game::entity::Entities<'p, 't> { [INFO] [stderr] 90 | fn default() -> Self { [INFO] [stderr] 91 | Self::new() [INFO] [stderr] 92 | } [INFO] [stderr] 93 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/game/game_state.rs:156:32 [INFO] [stderr] | [INFO] [stderr] 156 | .map_err(|place_error| GameStateBuilderError::EntityPlaceError(place_error))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `GameStateBuilderError::EntityPlaceError` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/game/game_state.rs:164:22 [INFO] [stderr] | [INFO] [stderr] 164 | terrain: self.terrain.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 164 | terrain: &(*self.terrain).clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 164 | terrain: &game::terrain::Terrain::clone(self.terrain), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game/game_state.rs:218:17 [INFO] [stderr] | [INFO] [stderr] 218 | / match location.tile { [INFO] [stderr] 219 | | &Tile::Wall => write!(f, "{}", GRID_WALL)?, [INFO] [stderr] 220 | | &Tile::Empty => { [INFO] [stderr] 221 | | //TODO: merge join entities (ordered by coord, next() for peek().coord == [INFO] [stderr] ... | [INFO] [stderr] 253 | | } [INFO] [stderr] 254 | | } [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] 218 | match *location.tile { [INFO] [stderr] 219 | Tile::Wall => write!(f, "{}", GRID_WALL)?, [INFO] [stderr] 220 | Tile::Empty => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game_view/mod.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | / match entity { [INFO] [stderr] 67 | | &Entity { location, object: Object::Unit(owner, ref unit), .. } [INFO] [stderr] 68 | | //TODO: should that be impl Eq for Player? [INFO] [stderr] 69 | | if ptr::eq(owner, self.game_view.player) => { [INFO] [stderr] ... | [INFO] [stderr] 76 | | _ => continue [INFO] [stderr] 77 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 66 | match *entity { [INFO] [stderr] 67 | Entity { location, object: Object::Unit(owner, ref unit), .. } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/game_view/mod.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | / match entity { [INFO] [stderr] 103 | | &Entity { location, object: Object::Resources(ref resource), .. } => { [INFO] [stderr] 104 | | return Some(Resources { [INFO] [stderr] 105 | | entity_id: entity_id, [INFO] [stderr] ... | [INFO] [stderr] 110 | | _ => continue [INFO] [stderr] 111 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 102 | match *entity { [INFO] [stderr] 103 | Entity { location, object: Object::Resources(ref resource), .. } => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/game_view/mod.rs:150:23 [INFO] [stderr] | [INFO] [stderr] 150 | location: self.location.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.location` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ai/test_ai.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match unit.unit { [INFO] [stderr] 19 | | &Unit::Worker => { [INFO] [stderr] 20 | | let mut resources_paths = view.resources() [INFO] [stderr] 21 | | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] ... | [INFO] [stderr] 32 | | _ => (), [INFO] [stderr] 33 | | } [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] 18 | if let &Unit::Worker = unit.unit { [INFO] [stderr] 19 | let mut resources_paths = view.resources() [INFO] [stderr] 20 | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] 21 | .collect::>(); [INFO] [stderr] 22 | [INFO] [stderr] 23 | resources_paths.sort_by_key(|&(_, cost)| cost); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ai/test_ai.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | / match unit.unit { [INFO] [stderr] 19 | | &Unit::Worker => { [INFO] [stderr] 20 | | let mut resources_paths = view.resources() [INFO] [stderr] 21 | | .filter_map(|resource| unit.navigator.find_path_dijkstra(&resource.navigator)) [INFO] [stderr] ... | [INFO] [stderr] 32 | | _ => (), [INFO] [stderr] 33 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 18 | match *unit.unit { [INFO] [stderr] 19 | Unit::Worker => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ai/test_ai.rs:27:25 [INFO] [stderr] | [INFO] [stderr] 27 | / path.iter().skip(1).next() [INFO] [stderr] 28 | | .and_then(|next_navigator| unit.navigator.direction_to(next_navigator)) [INFO] [stderr] 29 | | .map(|direction| desires.push(Order::Move(unit.entity_id, direction))); [INFO] [stderr] | |__________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 27 | if let Some(direction) = path.iter().skip(1).next() [INFO] [stderr] 28 | .and_then(|next_navigator| unit.navigator.direction_to(next_navigator)) { desires.push(Order::Move(unit.entity_id, direction)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/ai/test_ai.rs:27:25 [INFO] [stderr] | [INFO] [stderr] 27 | path.iter().skip(1).next() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `micro_rts_rs`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f29133020105d5409dd3f2a6fff172d9970ecad6c67023dcf45268cdb3b8567b"` [INFO] running `"docker" "rm" "-f" "f29133020105d5409dd3f2a6fff172d9970ecad6c67023dcf45268cdb3b8567b"` [INFO] [stdout] f29133020105d5409dd3f2a6fff172d9970ecad6c67023dcf45268cdb3b8567b