[INFO] cloning repository https://github.com/tilo9000/dungeoncrawl [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tilo9000/dungeoncrawl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftilo9000%2Fdungeoncrawl", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftilo9000%2Fdungeoncrawl'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6e46080a9f99e98da7d66a50e367c35b64e9d1d1 [INFO] linting tilo9000/dungeoncrawl against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftilo9000%2Fdungeoncrawl" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tilo9000/dungeoncrawl [INFO] finished tweaking git repo https://github.com/tilo9000/dungeoncrawl [INFO] tweaked toml for git repo https://github.com/tilo9000/dungeoncrawl written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tilo9000/dungeoncrawl on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/tilo9000/dungeoncrawl already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded thiserror-impl v1.0.30 [INFO] [stderr] Downloaded thiserror v1.0.30 [INFO] [stderr] Downloaded serde v1.0.136 [INFO] [stderr] Downloaded darling v0.10.2 [INFO] [stderr] Downloaded darling_macro v0.10.2 [INFO] [stderr] Downloaded rayon-core v1.9.1 [INFO] [stderr] Downloaded wayland-egl v0.28.6 [INFO] [stderr] Downloaded bracket-random v0.8.2 [INFO] [stderr] Downloaded bracket-algorithm-traits v0.8.2 [INFO] [stderr] Downloaded bracket-noise v0.8.2 [INFO] [stderr] Downloaded anyhow v1.0.53 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.7 [INFO] [stderr] Downloaded ttf-parser v0.6.2 [INFO] [stderr] Downloaded safe_arch v0.5.2 [INFO] [stderr] Downloaded flate2 v1.0.22 [INFO] [stderr] Downloaded crossbeam-channel v0.5.2 [INFO] [stderr] Downloaded glow v0.10.0 [INFO] [stderr] Downloaded smithay-client-toolkit v0.12.3 [INFO] [stderr] Downloaded wasm-bindgen v0.2.79 [INFO] [stderr] Downloaded nix v0.18.0 [INFO] [stderr] Downloaded nom v7.1.0 [INFO] [stderr] Downloaded nix v0.20.0 [INFO] [stderr] Downloaded js-sys v0.3.56 [INFO] [stderr] Downloaded winit v0.24.0 [INFO] [stderr] Downloaded rayon v1.5.1 [INFO] [stderr] Downloaded wayland-protocols v0.28.6 [INFO] [stderr] Downloaded itertools v0.9.0 [INFO] [stderr] Downloaded crossbeam-utils v0.8.7 [INFO] [stderr] Downloaded legion v0.3.1 [INFO] [stderr] Downloaded glutin v0.26.0 [INFO] [stderr] Downloaded crc32fast v1.3.1 [INFO] [stderr] Downloaded wide v0.6.5 [INFO] [stderr] Downloaded libc v0.2.116 [INFO] [stderr] Downloaded ultraviolet v0.8.1 [INFO] [stderr] Downloaded ndk v0.2.1 [INFO] [stderr] Downloaded darling_core v0.10.2 [INFO] [stderr] Downloaded wayland-client v0.28.6 [INFO] [stderr] Downloaded paste v1.0.6 [INFO] [stderr] Downloaded cocoa v0.23.0 [INFO] [stderr] Downloaded bytemuck v1.7.3 [INFO] [stderr] Downloaded core-foundation v0.9.2 [INFO] [stderr] Downloaded cc v1.0.72 [INFO] [stderr] Downloaded erased-serde v0.3.18 [INFO] [stderr] Downloaded web-sys v0.3.56 [INFO] [stderr] Downloaded lock_api v0.4.6 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.79 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.79 [INFO] [stderr] Downloaded crossbeam-deque v0.8.1 [INFO] [stderr] Downloaded bracket-pathfinding v0.8.4 [INFO] [stderr] Downloaded bracket-color v0.8.2 [INFO] [stderr] Downloaded bracket-geometry v0.8.3 [INFO] [stderr] Downloaded send_wrapper v0.2.0 [INFO] [stderr] Downloaded slab v0.4.5 [INFO] [stderr] Downloaded owned_ttf_parser v0.6.0 [INFO] [stderr] Downloaded wayland-commons v0.28.6 [INFO] [stderr] Downloaded wayland-scanner v0.28.6 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.79 [INFO] [stderr] Downloaded wasm-timer v0.1.3 [INFO] [stderr] Downloaded strsim v0.9.3 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.79 [INFO] [stderr] Downloaded ndk-glue v0.2.1 [INFO] [stderr] Downloaded raw-window-handle v0.3.4 [INFO] [stderr] Downloaded rusttype v0.9.2 [INFO] [stderr] Downloaded andrew v0.3.1 [INFO] [stderr] Downloaded calloop v0.6.5 [INFO] [stderr] Downloaded memmap2 v0.1.0 [INFO] [stderr] Downloaded wayland-sys v0.28.6 [INFO] [stderr] Downloaded pkg-config v0.3.24 [INFO] [stderr] Downloaded legion_codegen v0.3.0 [INFO] [stderr] Downloaded serde_derive v1.0.136 [INFO] [stderr] Downloaded ndk-macro v0.2.0 [INFO] [stderr] Downloaded redox_users v0.4.0 [INFO] [stderr] Downloaded dirs v3.0.2 [INFO] [stderr] Downloaded xdg v2.4.0 [INFO] [stderr] Downloaded wayland-cursor v0.28.6 [INFO] [stderr] Downloaded bracket-lib v0.8.1 [INFO] [stderr] Downloaded raw-window-handle v0.4.2 [INFO] [stderr] Downloaded dirs-sys v0.3.6 [INFO] [stderr] Downloaded bit-set v0.5.2 [INFO] [stderr] Downloaded getrandom v0.2.4 [INFO] [stderr] Downloaded bracket-terminal v0.8.5 [INFO] [stderr] Downloaded object-pool v0.5.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aadc5ed355bea94aeb397348379f25c462139f04095c2e812034449c325c8e5d [INFO] running `Command { std: "docker" "start" "-a" "aadc5ed355bea94aeb397348379f25c462139f04095c2e812034449c325c8e5d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aadc5ed355bea94aeb397348379f25c462139f04095c2e812034449c325c8e5d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aadc5ed355bea94aeb397348379f25c462139f04095c2e812034449c325c8e5d", kill_on_drop: false }` [INFO] [stdout] aadc5ed355bea94aeb397348379f25c462139f04095c2e812034449c325c8e5d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1ae6542774670d27d7c21822d37cf81d4b537a0707c86a95490c681a30ae899a [INFO] running `Command { std: "docker" "start" "-a" "1ae6542774670d27d7c21822d37cf81d4b537a0707c86a95490c681a30ae899a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.116 [INFO] [stderr] Compiling proc-macro2 v1.0.36 [INFO] [stderr] Compiling xml-rs v0.8.4 [INFO] [stderr] Compiling pkg-config v0.3.24 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Compiling syn v1.0.86 [INFO] [stderr] Checking libloading v0.7.3 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Checking once_cell v1.9.0 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling nom v7.1.0 [INFO] [stderr] Checking bytemuck v1.7.3 [INFO] [stderr] Checking scoped-tls v1.0.0 [INFO] [stderr] Checking lock_api v0.4.6 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling crossbeam-utils v0.8.7 [INFO] [stderr] Compiling nix v0.18.0 [INFO] [stderr] Checking ttf-parser v0.6.2 [INFO] [stderr] Checking safe_arch v0.5.2 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking dlib v0.5.0 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.5 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Compiling crc32fast v1.3.1 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling crossbeam-epoch v0.9.7 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Compiling wayland-sys v0.28.6 [INFO] [stderr] Compiling x11-dl v2.19.1 [INFO] [stderr] Checking slab v0.4.5 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Checking raw-window-handle v0.4.2 [INFO] [stderr] Checking dlib v0.4.2 [INFO] [stderr] Compiling num-iter v0.1.42 [INFO] [stderr] Compiling num-rational v0.3.2 [INFO] [stderr] Compiling rayon-core v1.9.1 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking deflate v0.8.6 [INFO] [stderr] Checking wide v0.6.5 [INFO] [stderr] Checking miniz_oxide v0.3.7 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Compiling anyhow v1.0.53 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling glutin_glx_sys v0.1.7 [INFO] [stderr] Compiling glutin_egl_sys v0.1.5 [INFO] [stderr] Compiling quote v1.0.15 [INFO] [stderr] Checking crossbeam-deque v0.8.1 [INFO] [stderr] Checking crossbeam-channel v0.5.2 [INFO] [stderr] Compiling rayon v1.5.1 [INFO] [stderr] Compiling erased-serde v0.3.18 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Compiling wayland-scanner v0.28.6 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Checking owned_ttf_parser v0.6.0 [INFO] [stderr] Checking png v0.16.8 [INFO] [stderr] Checking rusttype v0.9.2 [INFO] [stderr] Checking ultraviolet v0.8.1 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking glow v0.10.0 [INFO] [stderr] Checking crossbeam-channel v0.4.4 [INFO] [stderr] Checking itertools v0.9.0 [INFO] [stderr] Compiling paste v1.0.6 [INFO] [stderr] Checking nix v0.20.0 [INFO] [stderr] Checking getrandom v0.2.4 [INFO] [stderr] Checking dirs-sys v0.3.6 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking memmap2 v0.1.0 [INFO] [stderr] Checking dirs v3.0.2 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking xdg v2.4.0 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking bracket-geometry v0.8.3 [INFO] [stderr] Checking raw-window-handle v0.3.4 [INFO] [stderr] Checking shared_library v0.1.9 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking andrew v0.3.1 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking bracket-algorithm-traits v0.8.2 [INFO] [stderr] Checking bracket-color v0.8.2 [INFO] [stderr] Checking object-pool v0.5.4 [INFO] [stderr] Checking image v0.23.14 [INFO] [stderr] Checking flate2 v1.0.22 [INFO] [stderr] Checking bracket-pathfinding v0.8.4 [INFO] [stderr] Compiling wayland-client v0.28.6 [INFO] [stderr] Compiling wayland-protocols v0.28.6 [INFO] [stderr] Checking xcursor v0.3.4 [INFO] [stderr] Checking bit-set v0.5.2 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking wayland-commons v0.28.6 [INFO] [stderr] Checking bracket-random v0.8.2 [INFO] [stderr] Checking bracket-noise v0.8.2 [INFO] [stderr] Checking calloop v0.6.5 [INFO] [stderr] Checking wayland-cursor v0.28.6 [INFO] [stderr] Checking wayland-egl v0.28.6 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling thiserror v1.0.30 [INFO] [stderr] Compiling legion_codegen v0.3.0 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking legion v0.3.1 [INFO] [stderr] Checking smithay-client-toolkit v0.12.3 [INFO] [stderr] Checking winit v0.24.0 [INFO] [stderr] Checking glutin v0.26.0 [INFO] [stderr] Checking bracket-terminal v0.8.5 [INFO] [stderr] Checking bracket-lib v0.8.1 [INFO] [stderr] Checking dungeoncrawl v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/systems/combat.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | if let Ok(mut health) = ecs [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/systems/fov.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | .for_each(|(pos, mut fov)| { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/systems/combat.rs:19:19 [INFO] [stdout] | [INFO] [stdout] 19 | if let Ok(mut health) = ecs [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/systems/fov.rs:11:26 [INFO] [stdout] | [INFO] [stdout] 11 | .for_each(|(pos, mut fov)| { [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmptyArchitect` is never constructed [INFO] [stdout] --> src/map_builder/empty.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct EmptyArchitect {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/map.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / (x == outline.x1 && between_y) [INFO] [stdout] 27 | | || (x == outline.x2 && between_y) [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 26 - (x == outline.x1 && between_y) [INFO] [stdout] 27 - || (x == outline.x2 && between_y) [INFO] [stdout] 26 + !(!between_y || x != outline.x1 && x != outline.x2) [INFO] [stdout] | [INFO] [stdout] 26 - (x == outline.x1 && between_y) [INFO] [stdout] 27 - || (x == outline.x2 && between_y) [INFO] [stdout] 26 + (x == outline.x2 || x == outline.x1) && between_y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/map.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | println!("{:02} {}", y, line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/main.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![warn(clippy::pedantic)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::uninlined_format_args)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 88 - println!("{:02} {}", y, line); [INFO] [stdout] 88 + println!("{y:02} {line}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/map.rs:128:20 [INFO] [stdout] | [INFO] [stdout] 128 | self.tiles[idx as usize] != TileType::Floor [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `{ idx }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | fn random_noise_map(&mut self, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] = note: `#[warn(clippy::unused_self)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:40:24 [INFO] [stdout] | [INFO] [stdout] 40 | fn count_neighbors(&self, x: i32, y: i32, map: &Map) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 68 | fn find_start(&self, map: &Map) -> Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/map_builder/automata.rs:81:74 [INFO] [stdout] | [INFO] [stdout] 81 | .min_by(|(_, distance), (_, distance2)| distance.partial_cmp(&distance2).unwrap()) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `distance2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/drunkard.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | fn drunkard(&mut self, start: &Point, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) [INFO] [stdout] --> src/map_builder/drunkard.rs:57:35 [INFO] [stdout] | [INFO] [stdout] 57 | fn drunkard(&mut self, start: &Point, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^ help: consider passing by value instead: `Point` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stdout] = note: `#[warn(clippy::trivially_copy_pass_by_ref)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `EmptyArchitect` is never constructed [INFO] [stdout] --> src/map_builder/empty.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct EmptyArchitect {} [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Point` which implements the `Copy` trait [INFO] [stdout] --> src/map_builder/drunkard.rs:58:32 [INFO] [stdout] | [INFO] [stdout] 58 | let mut drunkard_pos = start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/map_builder/prefab.rs:89:25 [INFO] [stdout] | [INFO] [stdout] 89 | println!("No idea what to do with it[{}], placed floor instead", c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 89 - println!("No idea what to do with it[{}], placed floor instead", c); [INFO] [stdout] 89 + println!("No idea what to do with it[{c}], placed floor instead"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/themes.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / pub fn new() -> Box { [INFO] [stdout] 7 | | Box::new(Self {}) [INFO] [stdout] 8 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/themes.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / pub fn new() -> Box { [INFO] [stdout] 24 | | Box::new(Self {}) [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually take no `self` [INFO] [stdout] --> src/map_builder/mod.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | fn new(&mut self, rng: &mut RandomNumberGenerator) -> MapBuilder; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | fn new(&mut self, rng: &mut RandomNumberGenerator) -> MapBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/map.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / (x == outline.x1 && between_y) [INFO] [stdout] 27 | | || (x == outline.x2 && between_y) [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 26 - (x == outline.x1 && between_y) [INFO] [stdout] 27 - || (x == outline.x2 && between_y) [INFO] [stdout] 26 + !(!between_y || x != outline.x1 && x != outline.x2) [INFO] [stdout] | [INFO] [stdout] 26 - (x == outline.x1 && between_y) [INFO] [stdout] 27 - || (x == outline.x2 && between_y) [INFO] [stdout] 26 + (x == outline.x2 || x == outline.x1) && between_y [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/map_builder/mod.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | rooms.sort_by(|a, b| a.center().x.cmp(&b.center().x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 131 - rooms.sort_by(|a, b| a.center().x.cmp(&b.center().x)); [INFO] [stdout] 131 + rooms.sort_by_key(|a| a.center().x); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/map.rs:88:13 [INFO] [stdout] | [INFO] [stdout] 88 | println!("{:02} {}", y, line); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/main.rs:1:9 [INFO] [stdout] | [INFO] [stdout] 1 | #![warn(clippy::pedantic)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::uninlined_format_args)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 88 - println!("{:02} {}", y, line); [INFO] [stdout] 88 + println!("{y:02} {line}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Point` which implements the `Copy` trait [INFO] [stdout] --> src/map_builder/mod.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | spawns.push(spawnable_tiles[target_index].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `spawnable_tiles[target_index]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/map.rs:128:20 [INFO] [stdout] | [INFO] [stdout] 128 | self.tiles[idx as usize] != TileType::Floor [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `{ idx }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:29:25 [INFO] [stdout] | [INFO] [stdout] 29 | fn random_noise_map(&mut self, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] = note: `#[warn(clippy::unused_self)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:40:24 [INFO] [stdout] | [INFO] [stdout] 40 | fn count_neighbors(&self, x: i32, y: i32, map: &Map) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/chasing.rs:14:22 [INFO] [stdout] | [INFO] [stdout] 14 | let player_pos = player.iter(ecs).nth(0).unwrap().0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `player.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/chasing.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | if !fov.visible_tiles.contains(&player_pos) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `player_pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/automata.rs:68:19 [INFO] [stdout] | [INFO] [stdout] 68 | fn find_start(&self, map: &Map) -> Point { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/systems/chasing.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `#[warn(clippy::unnecessary_semicolon)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/map_builder/automata.rs:81:74 [INFO] [stdout] | [INFO] [stdout] 81 | .min_by(|(_, distance), (_, distance2)| distance.partial_cmp(&distance2).unwrap()) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `distance2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `self` argument [INFO] [stdout] --> src/map_builder/drunkard.rs:57:17 [INFO] [stdout] | [INFO] [stdout] 57 | fn drunkard(&mut self, start: &Point, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider refactoring to an associated function [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this argument (8 byte) is passed by reference, but would be more efficient if passed by value (limit: 8 byte) [INFO] [stdout] --> src/map_builder/drunkard.rs:57:35 [INFO] [stdout] | [INFO] [stdout] 57 | fn drunkard(&mut self, start: &Point, rng: &mut RandomNumberGenerator, map: &mut Map) { [INFO] [stdout] | ^^^^^^ help: consider passing by value instead: `Point` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stdout] = note: `#[warn(clippy::trivially_copy_pass_by_ref)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TurnState` which implements the `Copy` trait [INFO] [stdout] --> src/systems/end_turn.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | let current_state = turn_state.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*turn_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/end_turn.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | let amulet_pos = amulet.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `amulet.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/entity_render.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/entity_render.rs:18:62 [INFO] [stdout] | [INFO] [stdout] 18 | .filter(|(pos, _)| player_fov.visible_tiles.contains(&pos)) [INFO] [stdout] | ^^^^ help: change this to: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Point` which implements the `Copy` trait [INFO] [stdout] --> src/map_builder/drunkard.rs:58:32 [INFO] [stdout] | [INFO] [stdout] 58 | let mut drunkard_pos = start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*start` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/hud.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | let player_heath = health_query.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `health_query.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/hud.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | .find_map(|(entity, _player)| Some(*entity)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] = note: `#[warn(clippy::unnecessary_find_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/map_builder/prefab.rs:89:25 [INFO] [stdout] | [INFO] [stdout] 89 | println!("No idea what to do with it[{}], placed floor instead", c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 89 - println!("No idea what to do with it[{}], placed floor instead", c); [INFO] [stdout] 89 + println!("No idea what to do with it[{c}], placed floor instead"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> src/systems/map_render.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | #[resource] theme: &Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `&dyn MapTheme` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/map_render.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/themes.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | / pub fn new() -> Box { [INFO] [stdout] 7 | | Box::new(Self {}) [INFO] [stdout] 8 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] = note: `#[warn(clippy::new_ret_no_self)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/themes.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | / pub fn new() -> Box { [INFO] [stdout] 24 | | Box::new(Self {}) [INFO] [stdout] 25 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually take no `self` [INFO] [stdout] --> src/map_builder/mod.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 19 | fn new(&mut self, rng: &mut RandomNumberGenerator) -> MapBuilder; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `new` usually return `Self` [INFO] [stdout] --> src/map_builder/mod.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | fn new(&mut self, rng: &mut RandomNumberGenerator) -> MapBuilder; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more idiomatic to use `Option<&T>` instead of `&Option` [INFO] [stdout] --> src/systems/player_input.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn player_input( [INFO] [stdout] 12 | | ecs: &mut SubWorld, [INFO] [stdout] 13 | | commands: &mut CommandBuffer, [INFO] [stdout] 14 | | #[resource] key: &Option, [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_option [INFO] [stdout] = note: `#[warn(clippy::ref_option)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - #[resource] key: &Option, [INFO] [stdout] 14 + #[resource] key: Option<&VirtualKeyCode>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | .find_map(|(entity, pos)| Some((*entity, *pos))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> src/systems/player_input.rs:35:25 [INFO] [stdout] | [INFO] [stdout] 35 | commands.add_component(*entity, Carried(player)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `commands.add_component(*entity, Carried(player));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | .find_map(|(entity, pos)| Some((*entity, *pos + delta))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/map_builder/mod.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | rooms.sort_by(|a, b| a.center().x.cmp(&b.center().x)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 131 - rooms.sort_by(|a, b| a.center().x.cmp(&b.center().x)); [INFO] [stdout] 131 + rooms.sort_by_key(|a| a.center().x); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/systems/player_input.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | println!("Use Item: {}", n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 88 - println!("Use Item: {}", n); [INFO] [stdout] 88 + println!("Use Item: {n}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | .find_map(|(entity, _player)| Some(*entity)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:98:10 [INFO] [stdout] | [INFO] [stdout] 98 | .find_map(|(_, (item_entity, _, _))| Some(*item_entity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Point` which implements the `Copy` trait [INFO] [stdout] --> src/map_builder/mod.rs:164:25 [INFO] [stdout] | [INFO] [stdout] 164 | spawns.push(spawnable_tiles[target_index].clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `spawnable_tiles[target_index]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/chasing.rs:14:22 [INFO] [stdout] | [INFO] [stdout] 14 | let player_pos = player.iter(ecs).nth(0).unwrap().0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `player.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/chasing.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | if !fov.visible_tiles.contains(&player_pos) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `player_pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary semicolon [INFO] [stdout] --> src/systems/chasing.rs:62:10 [INFO] [stdout] | [INFO] [stdout] 62 | }; [INFO] [stdout] | ^ help: remove [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_semicolon [INFO] [stdout] = note: `#[warn(clippy::unnecessary_semicolon)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/tooltips.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/tooltips.rs:22:85 [INFO] [stdout] | [INFO] [stdout] 22 | .filter(|(_, pos, _)| **pos == map_pos && player_fov.visible_tiles.contains(&pos)) [INFO] [stdout] | ^^^^ help: change this to: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more concise to loop over references to containers instead of using explicit iteration methods [INFO] [stdout] --> src/systems/use_items.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | for heal in healing_to_apply.iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: to write this more concisely, try: `&healing_to_apply` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_iter_loop)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> src/systems/use_items.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | health.current = i32::min(health.max, health.current + heal.1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `health.current = i32::min(health.max, health.current + heal.1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TurnState` which implements the `Copy` trait [INFO] [stdout] --> src/systems/end_turn.rs:11:25 [INFO] [stdout] | [INFO] [stdout] 11 | let current_state = turn_state.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*turn_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/end_turn.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | let amulet_pos = amulet.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `amulet.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/entity_render.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TurnState` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:53:29 [INFO] [stdout] | [INFO] [stdout] 53 | let current_state = self.resources.get::().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.resources.get::().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/entity_render.rs:18:62 [INFO] [stdout] | [INFO] [stdout] 18 | .filter(|(pos, _)| player_fov.visible_tiles.contains(&pos)) [INFO] [stdout] | ^^^^ help: change this to: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/hud.rs:11:24 [INFO] [stdout] | [INFO] [stdout] 11 | let player_heath = health_query.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `health_query.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/hud.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | .find_map(|(entity, _player)| Some(*entity)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] = note: `#[warn(clippy::unnecessary_find_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/mod.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | &vec![self.map.point2d_to_index(self.player_start)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[self.map.point2d_to_index(self.player_start)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/drunkard.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | &vec![mb.map.point2d_to_index(center)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[mb.map.point2d_to_index(center)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/prefab.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | &vec![mb.map.point2d_to_index(mb.player_start)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[mb.map.point2d_to_index(mb.player_start)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stdout] --> src/systems/map_render.rs:10:24 [INFO] [stdout] | [INFO] [stdout] 10 | #[resource] theme: &Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `&dyn MapTheme` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stdout] = note: `#[warn(clippy::borrowed_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/map_render.rs:13:22 [INFO] [stdout] | [INFO] [stdout] 13 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more idiomatic to use `Option<&T>` instead of `&Option` [INFO] [stdout] --> src/systems/player_input.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | / pub fn player_input( [INFO] [stdout] 12 | | ecs: &mut SubWorld, [INFO] [stdout] 13 | | commands: &mut CommandBuffer, [INFO] [stdout] 14 | | #[resource] key: &Option, [INFO] [stdout] ... | [INFO] [stdout] 85 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ref_option [INFO] [stdout] = note: `#[warn(clippy::ref_option)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 14 - #[resource] key: &Option, [INFO] [stdout] 14 + #[resource] key: Option<&VirtualKeyCode>, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | .find_map(|(entity, pos)| Some((*entity, *pos))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> src/systems/player_input.rs:35:25 [INFO] [stdout] | [INFO] [stdout] 35 | commands.add_component(*entity, Carried(player)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `commands.add_component(*entity, Carried(player));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:53:14 [INFO] [stdout] | [INFO] [stdout] 53 | .find_map(|(entity, pos)| Some((*entity, *pos + delta))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variables can be used directly in the `format!` string [INFO] [stdout] --> src/systems/player_input.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | println!("Use Item: {}", n); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 88 - println!("Use Item: {}", n); [INFO] [stdout] 88 + println!("Use Item: {n}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | .find_map(|(entity, _player)| Some(*entity)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.find_map(..)` can be written more simply using `.map(..).next()` [INFO] [stdout] --> src/systems/player_input.rs:98:10 [INFO] [stdout] | [INFO] [stdout] 98 | .find_map(|(_, (item_entity, _, _))| Some(*item_entity)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_find_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/systems/tooltips.rs:12:22 [INFO] [stdout] | [INFO] [stdout] 12 | let player_fov = fov.iter(ecs).nth(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `fov.iter(ecs).next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/systems/tooltips.rs:22:85 [INFO] [stdout] | [INFO] [stdout] 22 | .filter(|(_, pos, _)| **pos == map_pos && player_fov.visible_tiles.contains(&pos)) [INFO] [stdout] | ^^^^ help: change this to: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: it is more concise to loop over references to containers instead of using explicit iteration methods [INFO] [stdout] --> src/systems/use_items.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | for heal in healing_to_apply.iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: to write this more concisely, try: `&healing_to_apply` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_iter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_iter_loop)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> src/systems/use_items.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | health.current = i32::min(health.max, health.current + heal.1) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `health.current = i32::min(health.max, health.current + heal.1);` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `TurnState` which implements the `Copy` trait [INFO] [stdout] --> src/main.rs:53:29 [INFO] [stdout] | [INFO] [stdout] 53 | let current_state = self.resources.get::().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.resources.get::().unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/mod.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | &vec![self.map.point2d_to_index(self.player_start)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[self.map.point2d_to_index(self.player_start)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/drunkard.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 38 | &vec![mb.map.point2d_to_index(center)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[mb.map.point2d_to_index(center)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/map_builder/prefab.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | &vec![mb.map.point2d_to_index(mb.player_start)], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[mb.map.point2d_to_index(mb.player_start)]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.14s [INFO] running `Command { std: "docker" "inspect" "1ae6542774670d27d7c21822d37cf81d4b537a0707c86a95490c681a30ae899a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1ae6542774670d27d7c21822d37cf81d4b537a0707c86a95490c681a30ae899a", kill_on_drop: false }` [INFO] [stdout] 1ae6542774670d27d7c21822d37cf81d4b537a0707c86a95490c681a30ae899a