[INFO] fetching crate cart-tmp-wgc 0.1.0... [INFO] linting cart-tmp-wgc-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate cart-tmp-wgc 0.1.0 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate cart-tmp-wgc 0.1.0 [INFO] finished tweaking crates.io crate cart-tmp-wgc 0.1.0 [INFO] tweaked toml for crates.io crate cart-tmp-wgc 0.1.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cart-tmp-wgc 0.1.0 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 126 packages to latest compatible versions [INFO] [stderr] Adding arrayvec v0.5.2 (available: v0.7.6) [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.11.0) [INFO] [stderr] Adding gfx-backend-dx11 v0.5.3 (available: v0.9.0) [INFO] [stderr] Adding gfx-backend-dx12 v0.5.10 (available: v0.9.1) [INFO] [stderr] Adding gfx-backend-empty v0.5.2 (available: v0.9.0) [INFO] [stderr] Adding gfx-backend-metal v0.5.7 (available: v0.9.1) [INFO] [stderr] Adding gfx-backend-vulkan v0.5.11 (available: v0.9.0) [INFO] [stderr] Adding gfx-hal v0.5.3 (available: v0.9.0) [INFO] [stderr] Adding loom v0.3.6 (available: v0.7.2) [INFO] [stderr] Adding parking_lot v0.10.2 (available: v0.12.5) [INFO] [stderr] Adding raw-window-handle v0.3.4 (available: v0.6.2) [INFO] [stderr] Adding ron v0.5.1 (available: v0.12.0) [INFO] [stderr] Adding thread-id v3.3.0 (available: v5.1.0) [INFO] [stderr] Adding tracing-subscriber v0.2.25 (available: v0.3.23) [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 thread-id v3.3.0 [INFO] [stderr] Downloaded storage-map v0.3.0 [INFO] [stderr] Downloaded gfx-backend-vulkan v0.5.11 [INFO] [stderr] Downloaded gfx-auxil v0.4.0 [INFO] [stderr] Downloaded cart-tmp-gmem v0.1.0 [INFO] [stderr] Downloaded cart-tmp-gdesc v0.1.0 [INFO] [stderr] Downloaded cart-tmp-wgt v0.1.0 [INFO] [stderr] Downloaded gfx-backend-empty v0.5.2 [INFO] [stderr] Downloaded d3d12 v0.3.2 [INFO] [stderr] Downloaded ron v0.5.1 [INFO] [stderr] Downloaded hibitset v0.6.4 [INFO] [stderr] Downloaded battery v0.7.8 [INFO] [stderr] Downloaded cart-tmp-nga v0.1.0 [INFO] [stderr] Downloaded gfx-backend-dx12 v0.5.10 [INFO] [stderr] Downloaded uom v0.30.0 [INFO] [stderr] Downloaded gfx-backend-metal v0.5.7 [INFO] [stderr] Downloaded gfx-hal v0.5.3 [INFO] [stderr] Downloaded loom v0.3.6 [INFO] [stderr] Downloaded gfx-backend-dx11 v0.5.3 [INFO] [stderr] Downloaded generator v0.6.25 [INFO] [stderr] Downloaded nix v0.19.1 [INFO] [stderr] Downloaded ash v0.31.0 [INFO] [stderr] Downloaded spirv_cross v0.20.0 [INFO] [stderr] Downloaded metal v0.20.0 [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] 854cc27437ac6ff9a5cabc1312adf9650d107872ab4627c51d45216f2776ba4c [INFO] running `Command { std: "docker" "start" "-a" "854cc27437ac6ff9a5cabc1312adf9650d107872ab4627c51d45216f2776ba4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "854cc27437ac6ff9a5cabc1312adf9650d107872ab4627c51d45216f2776ba4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "854cc27437ac6ff9a5cabc1312adf9650d107872ab4627c51d45216f2776ba4c", kill_on_drop: false }` [INFO] [stdout] 854cc27437ac6ff9a5cabc1312adf9650d107872ab4627c51d45216f2776ba4c [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] af54d60337d6779d917f450e25163bdaad1d739de53ed6e97855c25055dcb910 [INFO] running `Command { std: "docker" "start" "-a" "af54d60337d6779d917f450e25163bdaad1d739de53ed6e97855c25055dcb910", kill_on_drop: false }` [INFO] [stderr] Checking cty v0.2.2 [INFO] [stderr] Checking once_cell v1.21.4 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking libloading v0.6.7 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking hibitset v0.6.4 [INFO] [stderr] Checking slab v0.4.12 [INFO] [stderr] Checking pin-project-lite v0.2.17 [INFO] [stderr] Checking cart-tmp-wgt v0.1.0 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking parking_lot_core v0.7.3 [INFO] [stderr] Checking raw-window-handle v0.4.3 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Checking raw-window-handle v0.3.4 [INFO] [stderr] Checking ash v0.31.0 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Checking gfx-hal v0.5.3 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking spirv_headers v1.5.0 [INFO] [stderr] Compiling generator v0.6.25 [INFO] [stderr] Checking cart-tmp-nga v0.1.0 [INFO] [stderr] Checking loom v0.3.6 [INFO] [stderr] Checking gfx-backend-empty v0.5.2 [INFO] [stderr] Checking cart-tmp-gmem v0.1.0 [INFO] [stderr] Checking cart-tmp-gdesc v0.1.0 [INFO] [stderr] Checking gfx-backend-vulkan v0.5.11 [INFO] [stderr] Checking cart-tmp-wgc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `dynamic_count` is never read [INFO] [stdout] --> src/binding_model.rs:60:16 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct BindGroupLayout { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 60 | pub(crate) dynamic_count: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BindGroupLayout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parent_ref_count` is never read [INFO] [stdout] --> src/resource.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 121 | pub(crate) struct BufferPendingMapping { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 125 | pub parent_ref_count: RefCount, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BufferPendingMapping` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `full_range` is never read [INFO] [stdout] --> src/resource.rs:135:16 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct Buffer { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 135 | pub(crate) full_range: (), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Buffer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `num_frames` is never read [INFO] [stdout] --> src/swap_chain.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SwapChain { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) num_frames: hal::window::SwapImageIndex, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SwapChain` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/binding_model.rs:167:16 [INFO] [stdout] | [INFO] [stdout] 167 | if offset as wgt::BufferAddress % wgt::BIND_BUFFER_ALIGNMENT != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(offset as wgt::BufferAddress).is_multiple_of(wgt::BIND_BUFFER_ALIGNMENT)` [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: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:924:5 [INFO] [stdout] | [INFO] [stdout] 924 | / pub unsafe extern "C" fn wgpu_render_bundle_push_debug_group( [INFO] [stdout] 925 | | _bundle: &mut RenderBundleEncoder, [INFO] [stdout] 926 | | _label: RawString, [INFO] [stdout] 927 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:933:5 [INFO] [stdout] | [INFO] [stdout] 933 | pub unsafe extern "C" fn wgpu_render_bundle_pop_debug_group(_bundle: &mut RenderBundleEncoder) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:939:5 [INFO] [stdout] | [INFO] [stdout] 939 | / pub unsafe extern "C" fn wgpu_render_bundle_insert_debug_marker( [INFO] [stdout] 940 | | _bundle: &mut RenderBundleEncoder, [INFO] [stdout] 941 | | _label: RawString, [INFO] [stdout] 942 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/compute.rs:394:5 [INFO] [stdout] | [INFO] [stdout] 394 | / pub unsafe extern "C" fn wgpu_compute_pass_push_debug_group( [INFO] [stdout] 395 | | pass: &mut ComputePass, [INFO] [stdout] 396 | | label: RawString, [INFO] [stdout] 397 | | color: u32, [INFO] [stdout] 398 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/compute.rs:416:5 [INFO] [stdout] | [INFO] [stdout] 416 | / pub unsafe extern "C" fn wgpu_compute_pass_insert_debug_marker( [INFO] [stdout] 417 | | pass: &mut ComputePass, [INFO] [stdout] 418 | | label: RawString, [INFO] [stdout] 419 | | color: u32, [INFO] [stdout] 420 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `color_attachments.get(0)` [INFO] [stdout] --> src/command/render.rs:426:32 [INFO] [stdout] | [INFO] [stdout] 426 | let sample_count = color_attachments [INFO] [stdout] | ________________________________^ [INFO] [stdout] 427 | | .get(0) [INFO] [stdout] | |_______________________^ help: try: `color_attachments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` 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/command/render.rs:735:49 [INFO] [stdout] | [INFO] [stdout] 735 | ... .create_framebuffer(&render_pass, attachments, extent.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `render_pass` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/render.rs:757:41 [INFO] [stdout] | [INFO] [stdout] 757 | ... &render_pass, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `render_pass` [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: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/command/render.rs:1069:33 [INFO] [stdout] | [INFO] [stdout] 1069 | .extend(iter::repeat(VertexBufferState::EMPTY).take(empty_slots)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(VertexBufferState::EMPTY, empty_slots)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/command/render.rs:1101:49 [INFO] [stdout] | [INFO] [stdout] 1101 | use std::{convert::TryFrom, i16}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/command/render.rs:1119:49 [INFO] [stdout] | [INFO] [stdout] 1119 | use std::{convert::TryFrom, i16}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1726:5 [INFO] [stdout] | [INFO] [stdout] 1726 | / pub unsafe extern "C" fn wgpu_render_pass_push_debug_group( [INFO] [stdout] 1727 | | pass: &mut RenderPass, [INFO] [stdout] 1728 | | label: RawString, [INFO] [stdout] 1729 | | color: u32, [INFO] [stdout] 1730 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1748:5 [INFO] [stdout] | [INFO] [stdout] 1748 | / pub unsafe extern "C" fn wgpu_render_pass_insert_debug_marker( [INFO] [stdout] 1749 | | pass: &mut RenderPass, [INFO] [stdout] 1750 | | label: RawString, [INFO] [stdout] 1751 | | color: u32, [INFO] [stdout] 1752 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1764:5 [INFO] [stdout] | [INFO] [stdout] 1764 | / pub unsafe fn wgpu_render_pass_execute_bundles( [INFO] [stdout] 1765 | | pass: &mut RenderPass, [INFO] [stdout] 1766 | | render_bundle_ids: *const id::RenderBundleId, [INFO] [stdout] 1767 | | render_bundle_ids_length: usize, [INFO] [stdout] 1768 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:405:12 [INFO] [stdout] | [INFO] [stdout] 405 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] 405 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 405 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 405 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 405 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:500:12 [INFO] [stdout] | [INFO] [stdout] 500 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 500 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 500 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 500 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 500 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:609:12 [INFO] [stdout] | [INFO] [stdout] 609 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 609 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 609 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 609 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 609 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/conv.rs:431:22 [INFO] [stdout] | [INFO] [stdout] 431 | assert!(value <= ::std::u16::MAX as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 431 - assert!(value <= ::std::u16::MAX as u32); [INFO] [stdout] 431 + assert!(value <= u16::MAX as u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/device/life.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | /// and register the buffer with either a submission in flight, or straight into `ready_to_map` vector. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 194 | /// and register the buffer with either a submission in flight, or straight into `ready_to_map` vector. [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `extend` instead of `append` for adding the full range of a second vector [INFO] [stdout] --> src/device/life.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | / self.suspected_resources [INFO] [stdout] 241 | | .buffers [INFO] [stdout] 242 | | .extend(self.future_suspected_buffers.drain(..)); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extend_with_drain [INFO] [stdout] = note: `#[warn(clippy::extend_with_drain)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 240 ~ self.suspected_resources [INFO] [stdout] 241 ~ .buffers.append(&mut self.future_suspected_buffers); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `extend` instead of `append` for adding the full range of a second vector [INFO] [stdout] --> src/device/life.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | / self.suspected_resources [INFO] [stdout] 244 | | .textures [INFO] [stdout] 245 | | .extend(self.future_suspected_textures.drain(..)); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extend_with_drain [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 ~ self.suspected_resources [INFO] [stdout] 244 ~ .textures.append(&mut self.future_suspected_textures); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/device/life.rs:284:26 [INFO] [stdout] | [INFO] [stdout] 284 | let done_count = self [INFO] [stdout] | __________________________^ [INFO] [stdout] 285 | | .active [INFO] [stdout] 286 | | .iter() [INFO] [stdout] 287 | | .position(|a| unsafe { !device.get_fence_status(&a.fence).unwrap() }) [INFO] [stdout] 288 | | .unwrap_or_else(|| self.active.len()); [INFO] [stdout] | |_________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 288 - .unwrap_or_else(|| self.active.len()); [INFO] [stdout] 288 + .unwrap_or(self.active.len()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/device/life.rs:618:40 [INFO] [stdout] | [INFO] [stdout] 618 | ... .unwrap_or(std::usize::MAX) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 618 - .unwrap_or(std::usize::MAX) [INFO] [stdout] 618 + .unwrap_or(usize::MAX) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/device/life.rs:679:33 [INFO] [stdout] | [INFO] [stdout] 679 | let status = if mapping.sub_range.size.map_or(true, |x| x != 0) { [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 a standard comparison instead [INFO] [stdout] | [INFO] [stdout] 679 - let status = if mapping.sub_range.size.map_or(true, |x| x != 0) { [INFO] [stdout] 679 + let status = if mapping.sub_range.size != Some(0) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/device/queue.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if size.width == 0 || size.height == 0 || size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 268 - if size.width == 0 || size.height == 0 || size.width == 0 { [INFO] [stdout] 268 + if !(size.width != 0 && size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 268 - if size.width == 0 || size.height == 0 || size.width == 0 { [INFO] [stdout] 268 + if size.width == 0 || size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/device/queue.rs:496:29 [INFO] [stdout] | [INFO] [stdout] 496 | ... &mut *trackers, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&mut trackers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` 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/device/queue.rs:536:45 [INFO] [stdout] | [INFO] [stdout] 536 | let callbacks = device.maintain(&hub, false, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: this function has too many arguments (8/7) [INFO] [stdout] --> src/device/mod.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub(crate) fn new( [INFO] [stdout] 207 | | raw: B::Device, [INFO] [stdout] 208 | | adapter_id: Stored, [INFO] [stdout] 209 | | queue_group: hal::queue::QueueGroup, [INFO] [stdout] ... | [INFO] [stdout] 214 | | trace_path: Option<&std::path::Path>, [INFO] [stdout] 215 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/device/mod.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / match trace_path { [INFO] [stdout] 234 | | Some(_) => log::error!("Feature 'trace' is not enabled"), [INFO] [stdout] 235 | | None => (), [INFO] [stdout] 236 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(_) = trace_path { log::error!("Feature 'trace' is not enabled") }` [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] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Features` which implements the `Copy` trait [INFO] [stdout] --> src/device/mod.rs:269:23 [INFO] [stdout] | [INFO] [stdout] 269 | features: desc.features.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `desc.features` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:330:70 [INFO] [stdout] | [INFO] [stdout] 330 | let (bind_group_guard, mut token) = hub.bind_groups.read(&mut token); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `token` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:375:24 [INFO] [stdout] | [INFO] [stdout] 375 | self.lock_life(&mut token) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `token` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/device/mod.rs:490:54 [INFO] [stdout] | [INFO] [stdout] 490 | if desc.dimension == TextureDimension::D2 && desc.size.depth % 6 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `desc.size.depth.is_multiple_of(6)` [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] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `color_ids` [INFO] [stdout] --> src/device/mod.rs:560:18 [INFO] [stdout] | [INFO] [stdout] 560 | for i in 0..key.colors.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 560 - for i in 0..key.colors.len() { [INFO] [stdout] 560 + for (i, ) in color_ids.iter_mut().enumerate().take(key.colors.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:824:13 [INFO] [stdout] | [INFO] [stdout] 824 | &mut buffer, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `buffer` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:868:13 [INFO] [stdout] | [INFO] [stdout] 868 | &mut buffer, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `buffer` [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: field `dynamic_count` is never read [INFO] [stdout] --> src/binding_model.rs:60:16 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct BindGroupLayout { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 60 | pub(crate) dynamic_count: usize, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BindGroupLayout` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parent_ref_count` is never read [INFO] [stdout] --> src/resource.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 121 | pub(crate) struct BufferPendingMapping { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 125 | pub parent_ref_count: RefCount, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BufferPendingMapping` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `full_range` is never read [INFO] [stdout] --> src/resource.rs:135:16 [INFO] [stdout] | [INFO] [stdout] 129 | pub struct Buffer { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 135 | pub(crate) full_range: (), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Buffer` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `num_frames` is never read [INFO] [stdout] --> src/swap_chain.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct SwapChain { [INFO] [stdout] | --------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub(crate) num_frames: hal::window::SwapImageIndex, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SwapChain` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:1478:66 [INFO] [stdout] | [INFO] [stdout] 1478 | .set_descriptor_set_name(desc_set.raw_mut(), &label); [INFO] [stdout] | ^^^^^^ help: change this to: `label` [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: this pattern creates a reference to a reference [INFO] [stdout] --> src/device/mod.rs:1674:42 [INFO] [stdout] | [INFO] [stdout] 1674 | Br::TextureViewArray(ref bindings_array) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1674 - Br::TextureViewArray(ref bindings_array) => { [INFO] [stdout] 1674 + Br::TextureViewArray(bindings_array) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/binding_model.rs:167:16 [INFO] [stdout] | [INFO] [stdout] 167 | if offset as wgt::BufferAddress % wgt::BIND_BUFFER_ALIGNMENT != 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `!(offset as wgt::BufferAddress).is_multiple_of(wgt::BIND_BUFFER_ALIGNMENT)` [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 `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/device/mod.rs:1866:40 [INFO] [stdout] | [INFO] [stdout] 1866 | let spv_iter = spv.into_iter().cloned(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` 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/device/mod.rs:2007:29 [INFO] [stdout] | [INFO] [stdout] 2007 | device.untrack::(&hub, &comb.trackers, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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 `TextureFormat` which implements the `Copy` trait [INFO] [stdout] --> src/device/mod.rs:2335:34 [INFO] [stdout] | [INFO] [stdout] 2335 | .map(|state| state.format.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `state.format` [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/device/mod.rs:2626:54 [INFO] [stdout] | [INFO] [stdout] 2626 | swap_chain::swap_chain_descriptor_to_hal(&desc, num_frames, device.private_features); [INFO] [stdout] | ^^^^^ help: change this to: `desc` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:2703:46 [INFO] [stdout] | [INFO] [stdout] 2703 | device_guard[device_id].maintain(&hub, force_wait, &mut token) [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:2719:39 [INFO] [stdout] | [INFO] [stdout] 2719 | let cbs = device.maintain(&hub, force_wait, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: this `impl` can be derived [INFO] [stdout] --> src/hub.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl Default for IdentityManager { [INFO] [stdout] 39 | | fn default() -> Self { [INFO] [stdout] 40 | | IdentityManager { [INFO] [stdout] 41 | | free: Default::default(), [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [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] 33 + #[derive(Default)] [INFO] [stdout] 34 | pub struct IdentityManager { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/hub.rs:219:37 [INFO] [stdout] | [INFO] [stdout] 219 | static ACTIVE_TOKEN: Cell = Cell::new(0); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `const { Cell::new(0) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:924:5 [INFO] [stdout] | [INFO] [stdout] 924 | / pub unsafe extern "C" fn wgpu_render_bundle_push_debug_group( [INFO] [stdout] 925 | | _bundle: &mut RenderBundleEncoder, [INFO] [stdout] 926 | | _label: RawString, [INFO] [stdout] 927 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] = note: `#[warn(clippy::missing_safety_doc)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:933:5 [INFO] [stdout] | [INFO] [stdout] 933 | pub unsafe extern "C" fn wgpu_render_bundle_pop_debug_group(_bundle: &mut RenderBundleEncoder) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/bundle.rs:939:5 [INFO] [stdout] | [INFO] [stdout] 939 | / pub unsafe extern "C" fn wgpu_render_bundle_insert_debug_marker( [INFO] [stdout] 940 | | _bundle: &mut RenderBundleEncoder, [INFO] [stdout] 941 | | _label: RawString, [INFO] [stdout] 942 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/hub.rs:598:44 [INFO] [stdout] | [INFO] [stdout] 598 | self.hubs.vulkan.clear(&mut *surface_guard); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&mut surface_guard` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/id.rs:76:29 [INFO] [stdout] | [INFO] [stdout] 76 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 77 | | Self(self.0, PhantomData) [INFO] [stdout] 78 | | } [INFO] [stdout] | |_____^ help: change this to: `{ *self }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_clone_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_clone_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/compute.rs:394:5 [INFO] [stdout] | [INFO] [stdout] 394 | / pub unsafe extern "C" fn wgpu_compute_pass_push_debug_group( [INFO] [stdout] 395 | | pass: &mut ComputePass, [INFO] [stdout] 396 | | label: RawString, [INFO] [stdout] 397 | | color: u32, [INFO] [stdout] 398 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/compute.rs:416:5 [INFO] [stdout] | [INFO] [stdout] 416 | / pub unsafe extern "C" fn wgpu_compute_pass_insert_debug_marker( [INFO] [stdout] 417 | | pass: &mut ComputePass, [INFO] [stdout] 418 | | label: RawString, [INFO] [stdout] 419 | | color: u32, [INFO] [stdout] 420 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/instance.rs:385:33 [INFO] [stdout] | [INFO] [stdout] 385 | / ... a.queue_families [INFO] [stdout] 386 | | ... .iter() [INFO] [stdout] 387 | | ... .find(|qf| qf.queue_type().supports_graphics()) [INFO] [stdout] 388 | | ... .map_or(false, |qf| surface_backend.supports_queue_family(qf)) [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] 388 - .map_or(false, |qf| surface_backend.supports_queue_family(qf)) [INFO] [stdout] 388 + .is_some_and(|qf| surface_backend.supports_queue_family(qf)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `color_attachments.get(0)` [INFO] [stdout] --> src/command/render.rs:426:32 [INFO] [stdout] | [INFO] [stdout] 426 | let sample_count = color_attachments [INFO] [stdout] | ________________________________^ [INFO] [stdout] 427 | | .get(0) [INFO] [stdout] | |_______________________^ help: try: `color_attachments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` 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/command/render.rs:735:49 [INFO] [stdout] | [INFO] [stdout] 735 | ... .create_framebuffer(&render_pass, attachments, extent.unwrap()) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `render_pass` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/command/render.rs:757:41 [INFO] [stdout] | [INFO] [stdout] 757 | ... &render_pass, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `render_pass` [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: this `repeat().take()` can be written more concisely [INFO] [stdout] --> src/command/render.rs:1069:33 [INFO] [stdout] | [INFO] [stdout] 1069 | .extend(iter::repeat(VertexBufferState::EMPTY).take(empty_slots)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(VertexBufferState::EMPTY, empty_slots)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n [INFO] [stdout] = note: `#[warn(clippy::manual_repeat_n)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/command/render.rs:1101:49 [INFO] [stdout] | [INFO] [stdout] 1101 | use std::{convert::TryFrom, i16}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/command/render.rs:1119:49 [INFO] [stdout] | [INFO] [stdout] 1119 | use std::{convert::TryFrom, i16}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `i16::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1726:5 [INFO] [stdout] | [INFO] [stdout] 1726 | / pub unsafe extern "C" fn wgpu_render_pass_push_debug_group( [INFO] [stdout] 1727 | | pass: &mut RenderPass, [INFO] [stdout] 1728 | | label: RawString, [INFO] [stdout] 1729 | | color: u32, [INFO] [stdout] 1730 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1748:5 [INFO] [stdout] | [INFO] [stdout] 1748 | / pub unsafe extern "C" fn wgpu_render_pass_insert_debug_marker( [INFO] [stdout] 1749 | | pass: &mut RenderPass, [INFO] [stdout] 1750 | | label: RawString, [INFO] [stdout] 1751 | | color: u32, [INFO] [stdout] 1752 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe function's docs are missing a `# Safety` section [INFO] [stdout] --> src/command/render.rs:1764:5 [INFO] [stdout] | [INFO] [stdout] 1764 | / pub unsafe fn wgpu_render_pass_execute_bundles( [INFO] [stdout] 1765 | | pass: &mut RenderPass, [INFO] [stdout] 1766 | | render_bundle_ids: *const id::RenderBundleId, [INFO] [stdout] 1767 | | render_bundle_ids_length: usize, [INFO] [stdout] 1768 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:405:12 [INFO] [stdout] | [INFO] [stdout] 405 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] 405 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 405 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 405 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 405 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:500:12 [INFO] [stdout] | [INFO] [stdout] 500 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 500 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 500 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 500 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 500 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/command/transfer.rs:609:12 [INFO] [stdout] | [INFO] [stdout] 609 | if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 609 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 609 + if !(copy_size.width != 0 && copy_size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 609 - if copy_size.width == 0 || copy_size.height == 0 || copy_size.width == 0 { [INFO] [stdout] 609 + if copy_size.width == 0 || copy_size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/track/range.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | for &(ref range, ref value) in self.ranges.iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 100 - for &(ref range, ref value) in self.ranges.iter() { [INFO] [stdout] 100 + for (range, value) in self.ranges.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/conv.rs:431:22 [INFO] [stdout] | [INFO] [stdout] 431 | assert!(value <= ::std::u16::MAX as u32); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 431 - assert!(value <= ::std::u16::MAX as u32); [INFO] [stdout] 431 + assert!(value <= u16::MAX as u32); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/device/life.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | /// and register the buffer with either a submission in flight, or straight into `ready_to_map` vector. [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 194 | /// and register the buffer with either a submission in flight, or straight into `ready_to_map` vector. [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/track/mod.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 216 | / if e.get().ref_count.load() == 1 { [INFO] [stdout] 217 | | let res = e.remove(); [INFO] [stdout] 218 | | assert_eq!(res.epoch, epoch); [INFO] [stdout] 219 | | true [INFO] [stdout] 220 | | } else { [INFO] [stdout] 221 | | false [INFO] [stdout] 222 | | } [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] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 215 ~ Entry::Occupied(e) [INFO] [stdout] 216 ~ if e.get().ref_count.load() == 1 => { [INFO] [stdout] 217 | let res = e.remove(); [INFO] [stdout] 218 | assert_eq!(res.epoch, epoch); [INFO] [stdout] 219 | true [INFO] [stdout] 220 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `extend` instead of `append` for adding the full range of a second vector [INFO] [stdout] --> src/device/life.rs:240:9 [INFO] [stdout] | [INFO] [stdout] 240 | / self.suspected_resources [INFO] [stdout] 241 | | .buffers [INFO] [stdout] 242 | | .extend(self.future_suspected_buffers.drain(..)); [INFO] [stdout] | |____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extend_with_drain [INFO] [stdout] = note: `#[warn(clippy::extend_with_drain)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 240 ~ self.suspected_resources [INFO] [stdout] 241 ~ .buffers.append(&mut self.future_suspected_buffers); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `extend` instead of `append` for adding the full range of a second vector [INFO] [stdout] --> src/device/life.rs:243:9 [INFO] [stdout] | [INFO] [stdout] 243 | / self.suspected_resources [INFO] [stdout] 244 | | .textures [INFO] [stdout] 245 | | .extend(self.future_suspected_textures.drain(..)); [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extend_with_drain [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 243 ~ self.suspected_resources [INFO] [stdout] 244 ~ .textures.append(&mut self.future_suspected_textures); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/device/life.rs:284:26 [INFO] [stdout] | [INFO] [stdout] 284 | let done_count = self [INFO] [stdout] | __________________________^ [INFO] [stdout] 285 | | .active [INFO] [stdout] 286 | | .iter() [INFO] [stdout] 287 | | .position(|a| unsafe { !device.get_fence_status(&a.fence).unwrap() }) [INFO] [stdout] 288 | | .unwrap_or_else(|| self.active.len()); [INFO] [stdout] | |_________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `unwrap_or` instead [INFO] [stdout] | [INFO] [stdout] 288 - .unwrap_or_else(|| self.active.len()); [INFO] [stdout] 288 + .unwrap_or(self.active.len()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/device/life.rs:618:40 [INFO] [stdout] | [INFO] [stdout] 618 | ... .unwrap_or(std::usize::MAX) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 618 - .unwrap_or(std::usize::MAX) [INFO] [stdout] 618 + .unwrap_or(usize::MAX) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/device/life.rs:679:33 [INFO] [stdout] | [INFO] [stdout] 679 | let status = if mapping.sub_range.size.map_or(true, |x| x != 0) { [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 a standard comparison instead [INFO] [stdout] | [INFO] [stdout] 679 - let status = if mapping.sub_range.size.map_or(true, |x| x != 0) { [INFO] [stdout] 679 + let status = if mapping.sub_range.size != Some(0) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/validation.rs:302:10 [INFO] [stdout] | [INFO] [stdout] 302 | (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 302 - (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] 302 + (Ti::Struct { members: m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/validation.rs:302:43 [INFO] [stdout] | [INFO] [stdout] 302 | (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 302 - (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] 302 + (&Ti::Struct { members: ref m0 }, Ti::Struct { members: m1 }) => m0 == m1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/device/queue.rs:268:12 [INFO] [stdout] | [INFO] [stdout] 268 | if size.width == 0 || size.height == 0 || size.width == 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] help: try [INFO] [stdout] | [INFO] [stdout] 268 - if size.width == 0 || size.height == 0 || size.width == 0 { [INFO] [stdout] 268 + if !(size.width != 0 && size.height != 0) { [INFO] [stdout] | [INFO] [stdout] 268 - if size.width == 0 || size.height == 0 || size.width == 0 { [INFO] [stdout] 268 + if size.width == 0 || size.height == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/command/mod.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn as_ref(&self) -> BasePassRef { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 128 | pub fn as_ref(&self) -> BasePassRef<'_, C> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/command/bind.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn expect_layout(&mut self, bind_group_layout_id: BindGroupLayoutId) -> LayoutChange { [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 93 | pub fn expect_layout(&mut self, bind_group_layout_id: BindGroupLayoutId) -> LayoutChange<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/device/queue.rs:496:29 [INFO] [stdout] | [INFO] [stdout] 496 | ... &mut *trackers, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&mut trackers` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` 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/device/queue.rs:536:45 [INFO] [stdout] | [INFO] [stdout] 536 | let callbacks = device.maintain(&hub, false, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | &mut self, [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 324 | ) -> Drain> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | ) -> Drain<'_, PendingTransition> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:368:71 [INFO] [stdout] | [INFO] [stdout] 368 | pub(crate) fn merge_replace<'a>(&'a mut self, other: &'a Self) -> Drain> { [INFO] [stdout] | -- -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 368 | pub(crate) fn merge_replace<'a>(&'a mut self, other: &'a Self) -> Drain<'a, PendingTransition> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | &mut self, [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 415 | ) -> (&'a T, Drain>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 415 | ) -> (&'a T, Drain<'_, PendingTransition>) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/device/mod.rs:206:5 [INFO] [stdout] | [INFO] [stdout] 206 | / pub(crate) fn new( [INFO] [stdout] 207 | | raw: B::Device, [INFO] [stdout] 208 | | adapter_id: Stored, [INFO] [stdout] 209 | | queue_group: hal::queue::QueueGroup, [INFO] [stdout] ... | [INFO] [stdout] 214 | | trace_path: Option<&std::path::Path>, [INFO] [stdout] 215 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/device/mod.rs:233:9 [INFO] [stdout] | [INFO] [stdout] 233 | / match trace_path { [INFO] [stdout] 234 | | Some(_) => log::error!("Feature 'trace' is not enabled"), [INFO] [stdout] 235 | | None => (), [INFO] [stdout] 236 | | } [INFO] [stdout] | |_________^ help: try: `if let Some(_) = trace_path { log::error!("Feature 'trace' is not enabled") }` [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] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Features` which implements the `Copy` trait [INFO] [stdout] --> src/device/mod.rs:269:23 [INFO] [stdout] | [INFO] [stdout] 269 | features: desc.features.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `desc.features` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:330:70 [INFO] [stdout] | [INFO] [stdout] 330 | let (bind_group_guard, mut token) = hub.bind_groups.read(&mut token); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `token` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:375:24 [INFO] [stdout] | [INFO] [stdout] 375 | self.lock_life(&mut token) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `token` [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/device/mod.rs:490:54 [INFO] [stdout] | [INFO] [stdout] 490 | if desc.dimension == TextureDimension::D2 && desc.size.depth % 6 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `desc.size.depth.is_multiple_of(6)` [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] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `color_ids` [INFO] [stdout] --> src/device/mod.rs:560:18 [INFO] [stdout] | [INFO] [stdout] 560 | for i in 0..key.colors.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 560 - for i in 0..key.colors.len() { [INFO] [stdout] 560 + for (i, ) in color_ids.iter_mut().enumerate().take(key.colors.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:824:13 [INFO] [stdout] | [INFO] [stdout] 824 | &mut buffer, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `buffer` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:868:13 [INFO] [stdout] | [INFO] [stdout] 868 | &mut buffer, [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `buffer` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:1478:66 [INFO] [stdout] | [INFO] [stdout] 1478 | .set_descriptor_set_name(desc_set.raw_mut(), &label); [INFO] [stdout] | ^^^^^^ help: change this to: `label` [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: this pattern creates a reference to a reference [INFO] [stdout] --> src/device/mod.rs:1674:42 [INFO] [stdout] | [INFO] [stdout] 1674 | Br::TextureViewArray(ref bindings_array) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1674 - Br::TextureViewArray(ref bindings_array) => { [INFO] [stdout] 1674 + Br::TextureViewArray(bindings_array) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/device/mod.rs:1866:40 [INFO] [stdout] | [INFO] [stdout] 1866 | let spv_iter = spv.into_iter().cloned(); [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` 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/device/mod.rs:2007:29 [INFO] [stdout] | [INFO] [stdout] 2007 | device.untrack::(&hub, &comb.trackers, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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 `TextureFormat` which implements the `Copy` trait [INFO] [stdout] --> src/device/mod.rs:2335:34 [INFO] [stdout] | [INFO] [stdout] 2335 | .map(|state| state.format.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `state.format` [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/device/mod.rs:2626:54 [INFO] [stdout] | [INFO] [stdout] 2626 | swap_chain::swap_chain_descriptor_to_hal(&desc, num_frames, device.private_features); [INFO] [stdout] | ^^^^^ help: change this to: `desc` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:2703:46 [INFO] [stdout] | [INFO] [stdout] 2703 | device_guard[device_id].maintain(&hub, force_wait, &mut token) [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/device/mod.rs:2719:39 [INFO] [stdout] | [INFO] [stdout] 2719 | let cbs = device.maintain(&hub, force_wait, &mut token); [INFO] [stdout] | ^^^^ help: change this to: `hub` [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: this `impl` can be derived [INFO] [stdout] --> src/hub.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl Default for IdentityManager { [INFO] [stdout] 39 | | fn default() -> Self { [INFO] [stdout] 40 | | IdentityManager { [INFO] [stdout] 41 | | free: Default::default(), [INFO] [stdout] ... | [INFO] [stdout] 45 | | } [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] 33 + #[derive(Default)] [INFO] [stdout] 34 | pub struct IdentityManager { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: initializer for `thread_local` value can be made `const` [INFO] [stdout] --> src/hub.rs:219:37 [INFO] [stdout] | [INFO] [stdout] 219 | static ACTIVE_TOKEN: Cell = Cell::new(0); [INFO] [stdout] | ^^^^^^^^^^^^ help: replace with: `const { Cell::new(0) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_const_for_thread_local [INFO] [stdout] = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/hub.rs:598:44 [INFO] [stdout] | [INFO] [stdout] 598 | self.hubs.vulkan.clear(&mut *surface_guard); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `&mut surface_guard` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `clone` on a `Copy` type [INFO] [stdout] --> src/id.rs:76:29 [INFO] [stdout] | [INFO] [stdout] 76 | fn clone(&self) -> Self { [INFO] [stdout] | _____________________________^ [INFO] [stdout] 77 | | Self(self.0, PhantomData) [INFO] [stdout] 78 | | } [INFO] [stdout] | |_____^ help: change this to: `{ *self }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_clone_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_clone_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/instance.rs:385:33 [INFO] [stdout] | [INFO] [stdout] 385 | / ... a.queue_families [INFO] [stdout] 386 | | ... .iter() [INFO] [stdout] 387 | | ... .find(|qf| qf.queue_type().supports_graphics()) [INFO] [stdout] 388 | | ... .map_or(false, |qf| surface_backend.supports_queue_family(qf)) [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] 388 - .map_or(false, |qf| surface_backend.supports_queue_family(qf)) [INFO] [stdout] 388 + .is_some_and(|qf| surface_backend.supports_queue_family(qf)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/track/range.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | for &(ref range, ref value) in self.ranges.iter() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 100 - for &(ref range, ref value) in self.ranges.iter() { [INFO] [stdout] 100 + for (range, value) in self.ranges.iter() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/track/mod.rs:216:17 [INFO] [stdout] | [INFO] [stdout] 216 | / if e.get().ref_count.load() == 1 { [INFO] [stdout] 217 | | let res = e.remove(); [INFO] [stdout] 218 | | assert_eq!(res.epoch, epoch); [INFO] [stdout] 219 | | true [INFO] [stdout] 220 | | } else { [INFO] [stdout] 221 | | false [INFO] [stdout] 222 | | } [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] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 215 ~ Entry::Occupied(e) [INFO] [stdout] 216 ~ if e.get().ref_count.load() == 1 => { [INFO] [stdout] 217 | let res = e.remove(); [INFO] [stdout] 218 | assert_eq!(res.epoch, epoch); [INFO] [stdout] 219 | true [INFO] [stdout] 220 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/validation.rs:302:10 [INFO] [stdout] | [INFO] [stdout] 302 | (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 302 - (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] 302 + (Ti::Struct { members: m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a struct pattern where every field's pattern takes a reference [INFO] [stdout] --> src/validation.rs:302:43 [INFO] [stdout] | [INFO] [stdout] 302 | (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 302 - (&Ti::Struct { members: ref m0 }, &Ti::Struct { members: ref m1 }) => m0 == m1, [INFO] [stdout] 302 + (&Ti::Struct { members: ref m0 }, Ti::Struct { members: m1 }) => m0 == m1, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/command/mod.rs:128:19 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn as_ref(&self) -> BasePassRef { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 128 | pub fn as_ref(&self) -> BasePassRef<'_, C> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/command/bind.rs:93:26 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn expect_layout(&mut self, bind_group_layout_id: BindGroupLayoutId) -> LayoutChange { [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 93 | pub fn expect_layout(&mut self, bind_group_layout_id: BindGroupLayoutId) -> LayoutChange<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:319:9 [INFO] [stdout] | [INFO] [stdout] 319 | &mut self, [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 324 | ) -> Drain> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | ) -> Drain<'_, PendingTransition> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:368:71 [INFO] [stdout] | [INFO] [stdout] 368 | pub(crate) fn merge_replace<'a>(&'a mut self, other: &'a Self) -> Drain> { [INFO] [stdout] | -- -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 368 | pub(crate) fn merge_replace<'a>(&'a mut self, other: &'a Self) -> Drain<'a, PendingTransition> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/track/mod.rs:410:9 [INFO] [stdout] | [INFO] [stdout] 410 | &mut self, [INFO] [stdout] | ^^^^^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 415 | ) -> (&'a T, Drain>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 415 | ) -> (&'a T, Drain<'_, PendingTransition>) { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.09s [INFO] running `Command { std: "docker" "inspect" "af54d60337d6779d917f450e25163bdaad1d739de53ed6e97855c25055dcb910", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "af54d60337d6779d917f450e25163bdaad1d739de53ed6e97855c25055dcb910", kill_on_drop: false }` [INFO] [stdout] af54d60337d6779d917f450e25163bdaad1d739de53ed6e97855c25055dcb910