[INFO] cloning repository https://github.com/jb55/renderbud [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jb55/renderbud" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjb55%2Frenderbud", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjb55%2Frenderbud'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 06027c436d460a1967a165e2ad54ec365a57405c [INFO] linting jb55/renderbud against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjb55%2Frenderbud" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jb55/renderbud [INFO] finished tweaking git repo https://github.com/jb55/renderbud [INFO] tweaked toml for git repo https://github.com/jb55/renderbud written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jb55/renderbud 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/jb55/renderbud 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 egui-wgpu v0.31.1 [INFO] [stderr] Downloaded zune-jpeg v0.5.9 [INFO] [stderr] Downloaded wgpu v24.0.5 [INFO] [stderr] Downloaded wgpu-core v24.0.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 8dda1e39c4b80c284abf315b296760225cd2decc3d2d2e6d0330f18d5fb47ccf [INFO] running `Command { std: "docker" "start" "-a" "8dda1e39c4b80c284abf315b296760225cd2decc3d2d2e6d0330f18d5fb47ccf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8dda1e39c4b80c284abf315b296760225cd2decc3d2d2e6d0330f18d5fb47ccf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8dda1e39c4b80c284abf315b296760225cd2decc3d2d2e6d0330f18d5fb47ccf", kill_on_drop: false }` [INFO] [stdout] 8dda1e39c4b80c284abf315b296760225cd2decc3d2d2e6d0330f18d5fb47ccf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 4e1bfe63c9ee5a5ef173e7d081a93c07ea3986fca0f4f048abd64453048014b6 [INFO] running `Command { std: "docker" "start" "-a" "4e1bfe63c9ee5a5ef173e7d081a93c07ea3986fca0f4f048abd64453048014b6", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling find-msvc-tools v0.1.7 [INFO] [stderr] Compiling wayland-sys v0.31.8 [INFO] [stderr] Compiling wayland-client v0.31.12 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Checking bitflags v2.10.0 [INFO] [stderr] Compiling naga v24.0.0 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling zmij v1.0.14 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling cc v1.2.52 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Compiling wgpu-hal v24.0.4 [INFO] [stderr] Checking rustix v0.38.44 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.2.0 [INFO] [stderr] Checking spirv v0.3.0+sdk-1.3.268.0 [INFO] [stderr] Checking unicode-xid v0.2.6 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking gpu-descriptor v0.3.2 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking wgpu-types v24.0.0 [INFO] [stderr] Checking flate2 v1.1.8 [INFO] [stderr] Checking khronos-egl v6.0.0 [INFO] [stderr] Checking pxfm v0.1.27 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking memmap2 v0.9.9 [INFO] [stderr] Compiling wgpu-core v24.0.5 [INFO] [stderr] Checking zune-core v0.5.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling inflections v1.1.1 [INFO] [stderr] Checking zune-jpeg v0.5.9 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Compiling wayland-scanner v0.31.8 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Compiling gltf-derive v1.4.1 [INFO] [stderr] Checking thiserror v2.0.17 [INFO] [stderr] Compiling wgpu v24.0.5 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Compiling wayland-backend v0.3.12 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking glam v0.30.10 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking gltf-json v1.4.1 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking wayland-protocols v0.32.10 [INFO] [stderr] Checking wayland-cursor v0.31.12 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Checking image v0.25.9 [INFO] [stderr] Checking gltf v1.4.1 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.10 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.10 [INFO] [stderr] Checking smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking winit v0.30.12 [INFO] [stderr] Checking renderbud v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/model.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 368 | pos: pos, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/model.rs:368:21 [INFO] [stdout] | [INFO] [stdout] 368 | pos: pos, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `shadow_tex`, `shadow_sampler`, and `globals_bgl` are never read [INFO] [stdout] --> src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct Renderer { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | shadow_tex: wgpu::Texture, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 132 | shadow_view: wgpu::TextureView, [INFO] [stdout] 133 | shadow_sampler: wgpu::Sampler, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | globals_bgl: wgpu::BindGroupLayout, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `irradiance_view`, `prefiltered_view`, `brdf_lut_view`, and `sampler` are never read [INFO] [stdout] --> src/ibl.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct IblData { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 5 | pub irradiance_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub prefiltered_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub brdf_lut_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub sampler: wgpu::Sampler, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_hdr_ibl` is never used [INFO] [stdout] --> src/ibl.rs:304:8 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn load_hdr_ibl( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `uniform` and `buffer` are never read [INFO] [stdout] --> src/material.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MaterialGpu { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 16 | pub uniform: MaterialUniform, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 17 | pub buffer: wgpu::Buffer, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `shadow_tex`, `shadow_sampler`, and `globals_bgl` are never read [INFO] [stdout] --> src/lib.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 115 | pub struct Renderer { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 131 | shadow_tex: wgpu::Texture, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 132 | shadow_view: wgpu::TextureView, [INFO] [stdout] 133 | shadow_sampler: wgpu::Sampler, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | globals_bgl: wgpu::BindGroupLayout, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `irradiance_view`, `prefiltered_view`, `brdf_lut_view`, and `sampler` are never read [INFO] [stdout] --> src/ibl.rs:5:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct IblData { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 5 | pub irradiance_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | pub prefiltered_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | pub brdf_lut_view: wgpu::TextureView, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 8 | pub sampler: wgpu::Sampler, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load_hdr_ibl` is never used [INFO] [stdout] --> src/ibl.rs:304:8 [INFO] [stdout] | [INFO] [stdout] 304 | pub fn load_hdr_ibl( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `uniform` and `buffer` are never read [INFO] [stdout] --> src/material.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct MaterialGpu { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 16 | pub uniform: MaterialUniform, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 17 | pub buffer: wgpu::Buffer, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> src/ibl.rs:739:12 [INFO] [stdout] | [INFO] [stdout] 739 | bits = (bits << 16) | (bits >> 16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `bits.rotate_right(16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: float has excessive precision [INFO] [stdout] --> src/ibl.rs:744:19 [INFO] [stdout] | [INFO] [stdout] 744 | bits as f32 * 2.3283064365386963e-10 // 0x100000000 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stdout] = note: `#[warn(clippy::excessive_precision)]` on by default [INFO] [stdout] help: consider changing the type or truncating it to [INFO] [stdout] | [INFO] [stdout] 744 - bits as f32 * 2.3283064365386963e-10 // 0x100000000 [INFO] [stdout] 744 + bits as f32 * 2.328_306_4e-10 // 0x100000000 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: there is no need to manually implement bit rotation [INFO] [stdout] --> src/ibl.rs:739:12 [INFO] [stdout] | [INFO] [stdout] 739 | bits = (bits << 16) | (bits >> 16); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: this expression can be rewritten as: `bits.rotate_right(16)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_rotate [INFO] [stdout] = note: `#[warn(clippy::manual_rotate)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: float has excessive precision [INFO] [stdout] --> src/ibl.rs:744:19 [INFO] [stdout] | [INFO] [stdout] 744 | bits as f32 * 2.3283064365386963e-10 // 0x100000000 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#excessive_precision [INFO] [stdout] = note: `#[warn(clippy::excessive_precision)]` on by default [INFO] [stdout] help: consider changing the type or truncating it to [INFO] [stdout] | [INFO] [stdout] 744 - bits as f32 * 2.3283064365386963e-10 // 0x100000000 [INFO] [stdout] 744 + bits as f32 * 2.328_306_4e-10 // 0x100000000 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/world.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | / if let Some(p) = parent { [INFO] [stdout] 219 | | if self.is_valid(p) { [INFO] [stdout] 220 | | self.nodes[index as usize].parent = Some(p); [INFO] [stdout] 221 | | self.attach_child(p, id); [INFO] [stdout] 222 | | } [INFO] [stdout] 223 | | } [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] 218 ~ if let Some(p) = parent [INFO] [stdout] 219 ~ && self.is_valid(p) { [INFO] [stdout] 220 | self.nodes[index as usize].parent = Some(p); [INFO] [stdout] 221 | self.attach_child(p, id); [INFO] [stdout] 222 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/world.rs:218:9 [INFO] [stdout] | [INFO] [stdout] 218 | / if let Some(p) = parent { [INFO] [stdout] 219 | | if self.is_valid(p) { [INFO] [stdout] 220 | | self.nodes[index as usize].parent = Some(p); [INFO] [stdout] 221 | | self.attach_child(p, id); [INFO] [stdout] 222 | | } [INFO] [stdout] 223 | | } [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] 218 ~ if let Some(p) = parent [INFO] [stdout] 219 ~ && self.is_valid(p) { [INFO] [stdout] 220 | self.nodes[index as usize].parent = Some(p); [INFO] [stdout] 221 | self.attach_child(p, id); [INFO] [stdout] 222 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> src/lib.rs:275:18 [INFO] [stdout] | [INFO] [stdout] 275 | let stride = ((obj_size + align - 1) / align) * align; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `obj_size.div_ceil(align)` [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: manually reimplementing `div_ceil` [INFO] [stdout] --> src/lib.rs:275:18 [INFO] [stdout] | [INFO] [stdout] 275 | let stride = ((obj_size + align - 1) / align) * align; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `obj_size.div_ceil(align)` [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 `impl` can be derived [INFO] [stdout] --> examples/ironwood.rs:15:1 [INFO] [stdout] | [INFO] [stdout] 15 | / impl Default for App { [INFO] [stdout] 16 | | fn default() -> Self { [INFO] [stdout] 17 | | Self { [INFO] [stdout] 18 | | renderbud: None, [INFO] [stdout] ... | [INFO] [stdout] 23 | | } [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 [INFO] [stdout] | [INFO] [stdout] 9 + #[derive(Default)] [INFO] [stdout] 10 | struct App { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if let` can be collapsed into the outer `match` [INFO] [stdout] --> examples/ironwood.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | / if let KeyEvent { [INFO] [stdout] 57 | | physical_key: PhysicalKey::Code(code), [INFO] [stdout] 58 | | state: ElementState::Pressed, [INFO] [stdout] 59 | | .. [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> examples/ironwood.rs:55:42 [INFO] [stdout] | [INFO] [stdout] 55 | WindowEvent::KeyboardInput { event, .. } => { [INFO] [stdout] | ^^^^^ replace this binding [INFO] [stdout] 56 | if let KeyEvent { [INFO] [stdout] | ________________________^ [INFO] [stdout] 57 | | physical_key: PhysicalKey::Code(code), [INFO] [stdout] 58 | | state: ElementState::Pressed, [INFO] [stdout] 59 | | .. [INFO] [stdout] 60 | | } = event [INFO] [stdout] | |_________________^ with this pattern, prefixed by `event: ` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> examples/ironwood.rs:72:17 [INFO] [stdout] | [INFO] [stdout] 72 | / if button == MouseButton::Left { [INFO] [stdout] 73 | | self.mouse_pressed = state == ElementState::Pressed; [INFO] [stdout] 74 | | if !self.mouse_pressed { [INFO] [stdout] 75 | | self.last_mouse_pos = None; [INFO] [stdout] 76 | | } [INFO] [stdout] 77 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 71 ~ WindowEvent::MouseInput { state, button, .. } [INFO] [stdout] 72 ~ if button == MouseButton::Left => { [INFO] [stdout] 73 | self.mouse_pressed = state == ElementState::Pressed; [INFO] [stdout] ... [INFO] [stdout] 76 | } [INFO] [stdout] 77 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `if let` [INFO] [stdout] --> examples/ironwood.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | / match code { [INFO] [stdout] 63 | | KeyCode::Space => { [INFO] [stdout] ... | [INFO] [stdout] 67 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> examples/ironwood.rs:57:53 [INFO] [stdout] | [INFO] [stdout] 57 | physical_key: PhysicalKey::Code(code), [INFO] [stdout] | ^^^^ replace this binding [INFO] [stdout] ... [INFO] [stdout] 63 | KeyCode::Space => { [INFO] [stdout] | ^^^^^^^^^^^^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> examples/ironwood.rs:62:21 [INFO] [stdout] | [INFO] [stdout] 62 | / match code { [INFO] [stdout] 63 | | KeyCode::Space => { [INFO] [stdout] ... | [INFO] [stdout] 67 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 62 ~ if code == KeyCode::Space { [INFO] [stdout] 63 + // do something [INFO] [stdout] 64 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> examples/ironwood.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | / if self.mouse_pressed { [INFO] [stdout] 83 | | if let Some(last) = self.last_mouse_pos { [INFO] [stdout] 84 | | let dx = (pos.0 - last.0) as f32; [INFO] [stdout] 85 | | let dy = (pos.1 - last.1) as f32; [INFO] [stdout] ... | [INFO] [stdout] 88 | | } [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] 82 ~ if self.mouse_pressed [INFO] [stdout] 83 ~ && let Some(last) = self.last_mouse_pos { [INFO] [stdout] 84 | let dx = (pos.0 - last.0) as f32; [INFO] [stdout] 85 | let dy = (pos.1 - last.1) as f32; [INFO] [stdout] 86 | renderbud.on_mouse_drag(dx, dy); [INFO] [stdout] 87 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 44.44s [INFO] running `Command { std: "docker" "inspect" "4e1bfe63c9ee5a5ef173e7d081a93c07ea3986fca0f4f048abd64453048014b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e1bfe63c9ee5a5ef173e7d081a93c07ea3986fca0f4f048abd64453048014b6", kill_on_drop: false }` [INFO] [stdout] 4e1bfe63c9ee5a5ef173e7d081a93c07ea3986fca0f4f048abd64453048014b6