[INFO] cloning repository https://github.com/keiv-fly/202511_droneforge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/keiv-fly/202511_droneforge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkeiv-fly%2F202511_droneforge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkeiv-fly%2F202511_droneforge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 63ee1096948139ef5cd304e27ab8f296425359e1 [INFO] linting keiv-fly/202511_droneforge against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkeiv-fly%2F202511_droneforge" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/keiv-fly/202511_droneforge [INFO] finished tweaking git repo https://github.com/keiv-fly/202511_droneforge [INFO] tweaked toml for git repo https://github.com/keiv-fly/202511_droneforge written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/keiv-fly/202511_droneforge 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/keiv-fly/202511_droneforge 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] Downloading crates ... [INFO] [stderr] Downloaded zune-core v0.5.0 [INFO] [stderr] Downloaded zune-jpeg v0.5.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 947dcd28f03d2f6006e87a4b80d377f322569d14fdd2d8affdf96550d8ff3acc [INFO] running `Command { std: "docker" "start" "-a" "947dcd28f03d2f6006e87a4b80d377f322569d14fdd2d8affdf96550d8ff3acc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "947dcd28f03d2f6006e87a4b80d377f322569d14fdd2d8affdf96550d8ff3acc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "947dcd28f03d2f6006e87a4b80d377f322569d14fdd2d8affdf96550d8ff3acc", kill_on_drop: false }` [INFO] [stdout] 947dcd28f03d2f6006e87a4b80d377f322569d14fdd2d8affdf96550d8ff3acc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3da305caaa47f25512e4daa0a54bbc04b97241979bcb14d730a864342bb7cdf7 [INFO] running `Command { std: "docker" "start" "-a" "3da305caaa47f25512e4daa0a54bbc04b97241979bcb14d730a864342bb7cdf7", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Checking flate2 v1.1.5 [INFO] [stderr] Checking aligned v0.4.2 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking zune-core v0.5.0 [INFO] [stderr] Checking moxcms v0.7.10 [INFO] [stderr] Compiling miniquad v0.4.8 [INFO] [stderr] Checking ttf-parser v0.21.1 [INFO] [stderr] Checking glam v0.27.0 [INFO] [stderr] Compiling macroquad_macro v0.1.8 [INFO] [stderr] Checking quad-rand v0.2.3 [INFO] [stderr] Checking zune-jpeg v0.5.6 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking fontdue v0.9.3 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking macroquad v0.4.14 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling zerocopy-derive v0.8.31 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking zerocopy v0.8.31 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Checking av-scenechange v0.14.1 [INFO] [stderr] Checking rav1e v0.8.1 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking tiff v0.10.3 [INFO] [stderr] Checking exr v1.74.0 [INFO] [stderr] Checking droneforge-core v0.1.0 (/opt/rustwide/workdir/droneforge-core) [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | / if let Some(callback) = progress.as_mut() { [INFO] [stdout] 139 | | if loaded % notify_every == 0 || loaded == total_chunks { [INFO] [stdout] 140 | | callback(loaded, total_chunks); [INFO] [stdout] 141 | | last_notified = loaded; [INFO] [stdout] 142 | | } [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 138 ~ if let Some(callback) = progress.as_mut() [INFO] [stdout] 139 ~ && (loaded % notify_every == 0 || loaded == total_chunks) { [INFO] [stdout] 140 | callback(loaded, total_chunks); [INFO] [stdout] 141 | last_notified = loaded; [INFO] [stdout] 142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:139:28 [INFO] [stdout] | [INFO] [stdout] 139 | if loaded % notify_every == 0 || loaded == total_chunks { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `loaded.is_multiple_of(notify_every)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | / if let Some(callback) = progress.as_mut() { [INFO] [stdout] 149 | | if loaded > 0 && loaded != last_notified { [INFO] [stdout] 150 | | callback(loaded, total_chunks); [INFO] [stdout] 151 | | } [INFO] [stdout] 152 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 148 ~ if let Some(callback) = progress.as_mut() [INFO] [stdout] 149 ~ && loaded > 0 && loaded != last_notified { [INFO] [stdout] 150 | callback(loaded, total_chunks); [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChunkCache` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | / if !indices.contains_key(&block) { [INFO] [stdout] 240 | | let idx = palette.len(); [INFO] [stdout] 241 | | palette.push(block); [INFO] [stdout] 242 | | indices.insert(block, idx); [INFO] [stdout] 243 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 239 ~ indices.entry(block).or_insert_with(|| { [INFO] [stdout] 240 + let idx = palette.len(); [INFO] [stdout] 241 + palette.push(block); [INFO] [stdout] 242 + idx [INFO] [stdout] 243 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | let u64_len = (total_bits + 63) / 64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total_bits.div_ceil(64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-core/src/linecast.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | block.map_or(false, |b| b != AIR) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 5 - block.map_or(false, |b| b != AIR) [INFO] [stdout] 5 + block.is_some_and(|b| b != AIR) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ToolController` [INFO] [stdout] --> droneforge-core/src/tool.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | / pub fn new() -> Self { [INFO] [stdout] 91 | | Self::with_max_distance(1) [INFO] [stdout] 92 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 89 + impl Default for ToolController { [INFO] [stdout] 90 + fn default() -> Self { [INFO] [stdout] 91 + Self::new() [INFO] [stdout] 92 + } [INFO] [stdout] 93 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> droneforge-core/src/worldgen.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] | ____________^ [INFO] [stdout] 32 | | || (coord.x == 2 && coord.y == 0 && coord.z == 0) [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] 31 - if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 32 - || (coord.x == 2 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 31 + if !(coord.y != 0 || coord.z != 0 || coord.x != 1 && coord.x != 2) [INFO] [stdout] | [INFO] [stdout] 31 - if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 32 - || (coord.x == 2 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 31 + if (coord.x == 2 || coord.x == 1) && coord.z == 0 && coord.y == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:138:21 [INFO] [stdout] | [INFO] [stdout] 138 | / if let Some(callback) = progress.as_mut() { [INFO] [stdout] 139 | | if loaded % notify_every == 0 || loaded == total_chunks { [INFO] [stdout] 140 | | callback(loaded, total_chunks); [INFO] [stdout] 141 | | last_notified = loaded; [INFO] [stdout] 142 | | } [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 138 ~ if let Some(callback) = progress.as_mut() [INFO] [stdout] 139 ~ && (loaded % notify_every == 0 || loaded == total_chunks) { [INFO] [stdout] 140 | callback(loaded, total_chunks); [INFO] [stdout] 141 | last_notified = loaded; [INFO] [stdout] 142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:139:28 [INFO] [stdout] | [INFO] [stdout] 139 | if loaded % notify_every == 0 || loaded == total_chunks { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `loaded.is_multiple_of(notify_every)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | / if let Some(callback) = progress.as_mut() { [INFO] [stdout] 149 | | if loaded > 0 && loaded != last_notified { [INFO] [stdout] 150 | | callback(loaded, total_chunks); [INFO] [stdout] 151 | | } [INFO] [stdout] 152 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 148 ~ if let Some(callback) = progress.as_mut() [INFO] [stdout] 149 ~ && loaded > 0 && loaded != last_notified { [INFO] [stdout] 150 | callback(loaded, total_chunks); [INFO] [stdout] 151 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChunkCache` has a public `len` method, but no `is_empty` method [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:223:5 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stdout] = note: `#[warn(clippy::len_without_is_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | / if !indices.contains_key(&block) { [INFO] [stdout] 240 | | let idx = palette.len(); [INFO] [stdout] 241 | | palette.push(block); [INFO] [stdout] 242 | | indices.insert(block, idx); [INFO] [stdout] 243 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 239 ~ indices.entry(block).or_insert_with(|| { [INFO] [stdout] 240 + let idx = palette.len(); [INFO] [stdout] 241 + palette.push(block); [INFO] [stdout] 242 + idx [INFO] [stdout] 243 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> droneforge-core/src/chunk_cache.rs:267:19 [INFO] [stdout] | [INFO] [stdout] 267 | let u64_len = (total_bits + 63) / 64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total_bits.div_ceil(64)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-core/src/linecast.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | block.map_or(false, |b| b != AIR) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 5 - block.map_or(false, |b| b != AIR) [INFO] [stdout] 5 + block.is_some_and(|b| b != AIR) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `ToolController` [INFO] [stdout] --> droneforge-core/src/tool.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | / pub fn new() -> Self { [INFO] [stdout] 91 | | Self::with_max_distance(1) [INFO] [stdout] 92 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 89 + impl Default for ToolController { [INFO] [stdout] 90 + fn default() -> Self { [INFO] [stdout] 91 + Self::new() [INFO] [stdout] 92 + } [INFO] [stdout] 93 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> droneforge-core/src/worldgen.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] | ____________^ [INFO] [stdout] 32 | | || (coord.x == 2 && coord.y == 0 && coord.z == 0) [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] 31 - if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 32 - || (coord.x == 2 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 31 + if !(coord.y != 0 || coord.z != 0 || coord.x != 1 && coord.x != 2) [INFO] [stdout] | [INFO] [stdout] 31 - if (coord.x == 1 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 32 - || (coord.x == 2 && coord.y == 0 && coord.z == 0) [INFO] [stdout] 31 + if (coord.x == 2 || coord.x == 1) && coord.z == 0 && coord.y == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking ravif v0.12.0 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Checking d-gen-tileset v0.1.0 (/opt/rustwide/workdir/d-gen-tileset) [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> d-gen-tileset/src/layout.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | let rows = (total_tile_count() + columns - 1) / columns; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total_tile_count().div_ceil(columns)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking droneforge-web v0.1.0 (/opt/rustwide/workdir/droneforge-web) [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> d-gen-tileset/src/layout.rs:41:16 [INFO] [stdout] | [INFO] [stdout] 41 | let rows = (total_tile_count() + columns - 1) / columns; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `total_tile_count().div_ceil(columns)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> d-gen-tileset/src/sprite_atlas.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | / if let Some(fill) = spec.circle.fill { [INFO] [stdout] 329 | | if dist <= spec.circle.r + SAMPLE_EPSILON { [INFO] [stdout] 330 | | color = Some(fill); [INFO] [stdout] 331 | | } [INFO] [stdout] 332 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 328 ~ if let Some(fill) = spec.circle.fill [INFO] [stdout] 329 ~ && dist <= spec.circle.r + SAMPLE_EPSILON { [INFO] [stdout] 330 | color = Some(fill); [INFO] [stdout] 331 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> d-gen-tileset/src/sprite_atlas.rs:341:5 [INFO] [stdout] | [INFO] [stdout] 341 | / if let Some(line_color) = spec.line.stroke { [INFO] [stdout] 342 | | if point_on_line(&spec.line, svg_x, svg_y) { [INFO] [stdout] 343 | | color = Some(line_color); [INFO] [stdout] 344 | | } [INFO] [stdout] 345 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ if let Some(line_color) = spec.line.stroke [INFO] [stdout] 342 ~ && point_on_line(&spec.line, svg_x, svg_y) { [INFO] [stdout] 343 | color = Some(line_color); [INFO] [stdout] 344 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> d-gen-tileset/src/sprite_atlas.rs:328:5 [INFO] [stdout] | [INFO] [stdout] 328 | / if let Some(fill) = spec.circle.fill { [INFO] [stdout] 329 | | if dist <= spec.circle.r + SAMPLE_EPSILON { [INFO] [stdout] 330 | | color = Some(fill); [INFO] [stdout] 331 | | } [INFO] [stdout] 332 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 328 ~ if let Some(fill) = spec.circle.fill [INFO] [stdout] 329 ~ && dist <= spec.circle.r + SAMPLE_EPSILON { [INFO] [stdout] 330 | color = Some(fill); [INFO] [stdout] 331 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> d-gen-tileset/src/sprite_atlas.rs:341:5 [INFO] [stdout] | [INFO] [stdout] 341 | / if let Some(line_color) = spec.line.stroke { [INFO] [stdout] 342 | | if point_on_line(&spec.line, svg_x, svg_y) { [INFO] [stdout] 343 | | color = Some(line_color); [INFO] [stdout] 344 | | } [INFO] [stdout] 345 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 341 ~ if let Some(line_color) = spec.line.stroke [INFO] [stdout] 342 ~ && point_on_line(&spec.line, svg_x, svg_y) { [INFO] [stdout] 343 | color = Some(line_color); [INFO] [stdout] 344 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: items after a test module [INFO] [stdout] --> droneforge-web/src/lib.rs:2169:1 [INFO] [stdout] | [INFO] [stdout] 2169 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2213 | fn fill_block(image: &mut Image, block_x: usize, block_y: usize, color: Color) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2224 | / fn blit_tile_region( [INFO] [stdout] 2225 | | dst: &mut Image, [INFO] [stdout] 2226 | | atlas: &Image, [INFO] [stdout] 2227 | | region: &TileRegion, [INFO] [stdout] 2228 | | tile_x: usize, [INFO] [stdout] 2229 | | tile_y: usize, [INFO] [stdout] 2230 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] ... [INFO] [stdout] 2243 | fn chunk_range(min: i32, max: i32, chunk_size: i32) -> std::ops::RangeInclusive { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2247 | fn render_chunk_ranges(min_x: i32, max_x: i32, min_y: i32, max_y: i32) -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2253 | fn render_chunk_pixel_dimensions() -> (u16, u16) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2258 | fn div_floor(a: i32, b: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2267 | fn block_at(cache: &ChunkCache, x: i32, y: i32, z: i32) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2272 | fn is_solid(block: BlockId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2276 | fn is_wall_block(block: BlockId) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2280 | fn is_solid_opt(block: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2284 | fn is_wall_opt(block: Option) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2288 | fn wall_edge_mask(cache: &ChunkCache, x: i32, y: i32, z: i32) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2307 | pub async fn run() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 2358 | fn install_panic_hook() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> droneforge-web/src/lib.rs:471:1 [INFO] [stdout] | [INFO] [stdout] 471 | / impl Default for SelectionMode { [INFO] [stdout] 472 | | fn default() -> Self { [INFO] [stdout] 473 | | SelectionMode::Inspect [INFO] [stdout] 474 | | } [INFO] [stdout] 475 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 465 + #[derive(Default)] [INFO] [stdout] 466 | enum SelectionMode { [INFO] [stdout] 467 ~ #[default] [INFO] [stdout] 468 ~ Inspect, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1055:13 [INFO] [stdout] | [INFO] [stdout] 1055 | / if position.z == chunk_z || position.z == wall_chunk_z { [INFO] [stdout] 1056 | | if !self.chunk_cache.has_chunk(position) { [INFO] [stdout] 1057 | | pending = pending.saturating_add(1); [INFO] [stdout] 1058 | | } [INFO] [stdout] 1059 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1055 ~ if (position.z == chunk_z || position.z == wall_chunk_z) { [INFO] [stdout] 1056 ~ && !self.chunk_cache.has_chunk(position) { [INFO] [stdout] 1057 | pending = pending.saturating_add(1); [INFO] [stdout] 1058 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> droneforge-web/src/lib.rs:471:1 [INFO] [stdout] | [INFO] [stdout] 471 | / impl Default for SelectionMode { [INFO] [stdout] 472 | | fn default() -> Self { [INFO] [stdout] 473 | | SelectionMode::Inspect [INFO] [stdout] 474 | | } [INFO] [stdout] 475 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 465 + #[derive(Default)] [INFO] [stdout] 466 | enum SelectionMode { [INFO] [stdout] 467 ~ #[default] [INFO] [stdout] 468 ~ Inspect, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | / if let Some(order) = keep_order { [INFO] [stdout] 1288 | | if let Some(slot) = self.active_orders.get_mut(index) { [INFO] [stdout] 1289 | | *slot = Some(order); [INFO] [stdout] 1290 | | } [INFO] [stdout] 1291 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1287 ~ if let Some(order) = keep_order [INFO] [stdout] 1288 ~ && let Some(slot) = self.active_orders.get_mut(index) { [INFO] [stdout] 1289 | *slot = Some(order); [INFO] [stdout] 1290 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1348:9 [INFO] [stdout] | [INFO] [stdout] 1348 | / if let Some(block) = mined_block { [INFO] [stdout] 1349 | | if block == STONE || block == IRON || block == CORE { [INFO] [stdout] 1350 | | inventory_changed = self.world.add_block_to_inventory(drone_index, block); [INFO] [stdout] 1351 | | } [INFO] [stdout] 1352 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1348 ~ if let Some(block) = mined_block [INFO] [stdout] 1349 ~ && (block == STONE || block == IRON || block == CORE) { [INFO] [stdout] 1350 | inventory_changed = self.world.add_block_to_inventory(drone_index, block); [INFO] [stdout] 1351 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1380:9 [INFO] [stdout] | [INFO] [stdout] 1380 | / if let Some(rendered_level) = &self.rendered_level { [INFO] [stdout] 1381 | | if rendered_level.z == self.view_z { [INFO] [stdout] 1382 | | let world_origin_x = rendered_level.origin_chunk_x * RENDER_CHUNK_SIZE; [INFO] [stdout] 1383 | | let world_origin_y = rendered_level.origin_chunk_y * RENDER_CHUNK_SIZE; [INFO] [stdout] ... | [INFO] [stdout] 1406 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1380 ~ if let Some(rendered_level) = &self.rendered_level [INFO] [stdout] 1381 ~ && rendered_level.z == self.view_z { [INFO] [stdout] 1382 | let world_origin_x = rendered_level.origin_chunk_x * RENDER_CHUNK_SIZE; [INFO] [stdout] ... [INFO] [stdout] 1404 | ); [INFO] [stdout] 1405 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1055:13 [INFO] [stdout] | [INFO] [stdout] 1055 | / if position.z == chunk_z || position.z == wall_chunk_z { [INFO] [stdout] 1056 | | if !self.chunk_cache.has_chunk(position) { [INFO] [stdout] 1057 | | pending = pending.saturating_add(1); [INFO] [stdout] 1058 | | } [INFO] [stdout] 1059 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1055 ~ if (position.z == chunk_z || position.z == wall_chunk_z) { [INFO] [stdout] 1056 ~ && !self.chunk_cache.has_chunk(position) { [INFO] [stdout] 1057 | pending = pending.saturating_add(1); [INFO] [stdout] 1058 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1625:9 [INFO] [stdout] | [INFO] [stdout] 1625 | / if let Some(previous_distance) = self.last_pinch_distance { [INFO] [stdout] 1626 | | if previous_distance > 0.0 { [INFO] [stdout] 1627 | | let ratio = current_distance / previous_distance; [INFO] [stdout] 1628 | | if ratio > 0.0 { [INFO] [stdout] ... | [INFO] [stdout] 1653 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1625 ~ if let Some(previous_distance) = self.last_pinch_distance [INFO] [stdout] 1626 ~ && previous_distance > 0.0 { [INFO] [stdout] 1627 | let ratio = current_distance / previous_distance; [INFO] [stdout] ... [INFO] [stdout] 1651 | } [INFO] [stdout] 1652 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | / if let Some(order) = keep_order { [INFO] [stdout] 1288 | | if let Some(slot) = self.active_orders.get_mut(index) { [INFO] [stdout] 1289 | | *slot = Some(order); [INFO] [stdout] 1290 | | } [INFO] [stdout] 1291 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1287 ~ if let Some(order) = keep_order [INFO] [stdout] 1288 ~ && let Some(slot) = self.active_orders.get_mut(index) { [INFO] [stdout] 1289 | *slot = Some(order); [INFO] [stdout] 1290 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1348:9 [INFO] [stdout] | [INFO] [stdout] 1348 | / if let Some(block) = mined_block { [INFO] [stdout] 1349 | | if block == STONE || block == IRON || block == CORE { [INFO] [stdout] 1350 | | inventory_changed = self.world.add_block_to_inventory(drone_index, block); [INFO] [stdout] 1351 | | } [INFO] [stdout] 1352 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1348 ~ if let Some(block) = mined_block [INFO] [stdout] 1349 ~ && (block == STONE || block == IRON || block == CORE) { [INFO] [stdout] 1350 | inventory_changed = self.world.add_block_to_inventory(drone_index, block); [INFO] [stdout] 1351 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1380:9 [INFO] [stdout] | [INFO] [stdout] 1380 | / if let Some(rendered_level) = &self.rendered_level { [INFO] [stdout] 1381 | | if rendered_level.z == self.view_z { [INFO] [stdout] 1382 | | let world_origin_x = rendered_level.origin_chunk_x * RENDER_CHUNK_SIZE; [INFO] [stdout] 1383 | | let world_origin_y = rendered_level.origin_chunk_y * RENDER_CHUNK_SIZE; [INFO] [stdout] ... | [INFO] [stdout] 1406 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1380 ~ if let Some(rendered_level) = &self.rendered_level [INFO] [stdout] 1381 ~ && rendered_level.z == self.view_z { [INFO] [stdout] 1382 | let world_origin_x = rendered_level.origin_chunk_x * RENDER_CHUNK_SIZE; [INFO] [stdout] ... [INFO] [stdout] 1404 | ); [INFO] [stdout] 1405 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2067:31 [INFO] [stdout] | [INFO] [stdout] 2067 | let replace = closest [INFO] [stdout] | _______________________________^ [INFO] [stdout] 2068 | | .as_ref() [INFO] [stdout] 2069 | | .map_or(true, |(_, best_distance)| distance < *best_distance); [INFO] [stdout] | |_________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 2069 - .map_or(true, |(_, best_distance)| distance < *best_distance); [INFO] [stdout] 2069 + .is_none_or(|(_, best_distance)| distance < *best_distance); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2080:9 [INFO] [stdout] | [INFO] [stdout] 2080 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2081 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2082 | | self.tool_controller.refresh_from_inventory(slots); [INFO] [stdout] 2083 | | return; [INFO] [stdout] 2084 | | } [INFO] [stdout] 2085 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2080 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2081 ~ && let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2082 | self.tool_controller.refresh_from_inventory(slots); [INFO] [stdout] 2083 | return; [INFO] [stdout] 2084 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:1625:9 [INFO] [stdout] | [INFO] [stdout] 1625 | / if let Some(previous_distance) = self.last_pinch_distance { [INFO] [stdout] 1626 | | if previous_distance > 0.0 { [INFO] [stdout] 1627 | | let ratio = current_distance / previous_distance; [INFO] [stdout] 1628 | | if ratio > 0.0 { [INFO] [stdout] ... | [INFO] [stdout] 1653 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1625 ~ if let Some(previous_distance) = self.last_pinch_distance [INFO] [stdout] 1626 ~ && previous_distance > 0.0 { [INFO] [stdout] 1627 | let ratio = current_distance / previous_distance; [INFO] [stdout] ... [INFO] [stdout] 1651 | } [INFO] [stdout] 1652 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2093:9 [INFO] [stdout] | [INFO] [stdout] 2093 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2094 | | if let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] ... | [INFO] [stdout] 2104 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2093 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2094 ~ && let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] ... [INFO] [stdout] 2102 | } [INFO] [stdout] 2103 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2094:13 [INFO] [stdout] | [INFO] [stdout] 2094 | / if let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] ... | [INFO] [stdout] 2103 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2094 ~ if let Some(selection) = self.tool_controller.selection() [INFO] [stdout] 2095 ~ && let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] ... [INFO] [stdout] 2101 | } [INFO] [stdout] 2102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2095:17 [INFO] [stdout] | [INFO] [stdout] 2095 | / if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | | ui.block = selection.block; [INFO] [stdout] ... | [INFO] [stdout] 2102 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2095 ~ if let Some(slots) = self.world.inventory(selected_index) [INFO] [stdout] 2096 ~ && let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] ... [INFO] [stdout] 2100 | } [INFO] [stdout] 2101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2096:21 [INFO] [stdout] | [INFO] [stdout] 2096 | / if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | | ui.block = selection.block; [INFO] [stdout] 2099 | | ui.count = slot.count; [INFO] [stdout] 2100 | | } [INFO] [stdout] 2101 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2096 ~ if let Some(slot) = slots.get(selection.slot_index) [INFO] [stdout] 2097 ~ && slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | ui.block = selection.block; [INFO] [stdout] 2099 | ui.count = slot.count; [INFO] [stdout] 2100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2109:9 [INFO] [stdout] | [INFO] [stdout] 2109 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2110 | | if let Some(drone) = self.world.drones().get(selected_index) { [INFO] [stdout] 2111 | | ui.present = true; [INFO] [stdout] 2112 | | ui.name.clear(); [INFO] [stdout] ... | [INFO] [stdout] 2143 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2109 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2110 ~ && let Some(drone) = self.world.drones().get(selected_index) { [INFO] [stdout] 2111 | ui.present = true; [INFO] [stdout] ... [INFO] [stdout] 2141 | return; [INFO] [stdout] 2142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2281:5 [INFO] [stdout] | [INFO] [stdout] 2281 | block.map_or(false, is_solid) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 2281 - block.map_or(false, is_solid) [INFO] [stdout] 2281 + block.is_some_and(is_solid) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2285:5 [INFO] [stdout] | [INFO] [stdout] 2285 | block.map_or(false, is_wall_block) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 2285 - block.map_or(false, is_wall_block) [INFO] [stdout] 2285 + block.is_some_and(is_wall_block) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2067:31 [INFO] [stdout] | [INFO] [stdout] 2067 | let replace = closest [INFO] [stdout] | _______________________________^ [INFO] [stdout] 2068 | | .as_ref() [INFO] [stdout] 2069 | | .map_or(true, |(_, best_distance)| distance < *best_distance); [INFO] [stdout] | |_________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 2069 - .map_or(true, |(_, best_distance)| distance < *best_distance); [INFO] [stdout] 2069 + .is_none_or(|(_, best_distance)| distance < *best_distance); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2080:9 [INFO] [stdout] | [INFO] [stdout] 2080 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2081 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2082 | | self.tool_controller.refresh_from_inventory(slots); [INFO] [stdout] 2083 | | return; [INFO] [stdout] 2084 | | } [INFO] [stdout] 2085 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2080 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2081 ~ && let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2082 | self.tool_controller.refresh_from_inventory(slots); [INFO] [stdout] 2083 | return; [INFO] [stdout] 2084 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2093:9 [INFO] [stdout] | [INFO] [stdout] 2093 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2094 | | if let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] ... | [INFO] [stdout] 2104 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2093 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2094 ~ && let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] ... [INFO] [stdout] 2102 | } [INFO] [stdout] 2103 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2094:13 [INFO] [stdout] | [INFO] [stdout] 2094 | / if let Some(selection) = self.tool_controller.selection() { [INFO] [stdout] 2095 | | if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] ... | [INFO] [stdout] 2103 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2094 ~ if let Some(selection) = self.tool_controller.selection() [INFO] [stdout] 2095 ~ && let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] ... [INFO] [stdout] 2101 | } [INFO] [stdout] 2102 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2095:17 [INFO] [stdout] | [INFO] [stdout] 2095 | / if let Some(slots) = self.world.inventory(selected_index) { [INFO] [stdout] 2096 | | if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | | ui.block = selection.block; [INFO] [stdout] ... | [INFO] [stdout] 2102 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2095 ~ if let Some(slots) = self.world.inventory(selected_index) [INFO] [stdout] 2096 ~ && let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] ... [INFO] [stdout] 2100 | } [INFO] [stdout] 2101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2096:21 [INFO] [stdout] | [INFO] [stdout] 2096 | / if let Some(slot) = slots.get(selection.slot_index) { [INFO] [stdout] 2097 | | if slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | | ui.block = selection.block; [INFO] [stdout] 2099 | | ui.count = slot.count; [INFO] [stdout] 2100 | | } [INFO] [stdout] 2101 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2096 ~ if let Some(slot) = slots.get(selection.slot_index) [INFO] [stdout] 2097 ~ && slot.block == Some(selection.block) && slot.count > 0 { [INFO] [stdout] 2098 | ui.block = selection.block; [INFO] [stdout] 2099 | ui.count = slot.count; [INFO] [stdout] 2100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> droneforge-web/src/lib.rs:2109:9 [INFO] [stdout] | [INFO] [stdout] 2109 | / if let Some(selected_index) = self.selected_drone { [INFO] [stdout] 2110 | | if let Some(drone) = self.world.drones().get(selected_index) { [INFO] [stdout] 2111 | | ui.present = true; [INFO] [stdout] 2112 | | ui.name.clear(); [INFO] [stdout] ... | [INFO] [stdout] 2143 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2109 ~ if let Some(selected_index) = self.selected_drone [INFO] [stdout] 2110 ~ && let Some(drone) = self.world.drones().get(selected_index) { [INFO] [stdout] 2111 | ui.present = true; [INFO] [stdout] ... [INFO] [stdout] 2141 | return; [INFO] [stdout] 2142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2281:5 [INFO] [stdout] | [INFO] [stdout] 2281 | block.map_or(false, is_solid) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 2281 - block.map_or(false, is_solid) [INFO] [stdout] 2281 + block.is_some_and(is_solid) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> droneforge-web/src/lib.rs:2285:5 [INFO] [stdout] | [INFO] [stdout] 2285 | block.map_or(false, is_wall_block) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 2285 - block.map_or(false, is_wall_block) [INFO] [stdout] 2285 + block.is_some_and(is_wall_block) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.00s [INFO] running `Command { std: "docker" "inspect" "3da305caaa47f25512e4daa0a54bbc04b97241979bcb14d730a864342bb7cdf7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3da305caaa47f25512e4daa0a54bbc04b97241979bcb14d730a864342bb7cdf7", kill_on_drop: false }` [INFO] [stdout] 3da305caaa47f25512e4daa0a54bbc04b97241979bcb14d730a864342bb7cdf7