[INFO] fetching crate duku 0.2.1...
[INFO] testing duku-0.2.1 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate duku 0.2.1 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate duku 0.2.1
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate duku 0.2.1
[INFO] tweaked toml for crates.io crate duku 0.2.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate duku 0.2.1 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate duku 0.2.1 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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b51c1bad7fa7576c3ee581ad824d3712159e40a573781bd2d278cb36c6c23a5b
[INFO] running `Command { std: "docker" "start" "-a" "b51c1bad7fa7576c3ee581ad824d3712159e40a573781bd2d278cb36c6c23a5b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b51c1bad7fa7576c3ee581ad824d3712159e40a573781bd2d278cb36c6c23a5b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b51c1bad7fa7576c3ee581ad824d3712159e40a573781bd2d278cb36c6c23a5b", kill_on_drop: false }`
[INFO] [stdout] b51c1bad7fa7576c3ee581ad824d3712159e40a573781bd2d278cb36c6c23a5b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f69b0a54fb6683474f3fd587bd809fc1ee1520acabeb9659b060eca5056912e2
[INFO] running `Command { std: "docker" "start" "-a" "f69b0a54fb6683474f3fd587bd809fc1ee1520acabeb9659b060eca5056912e2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.76
[INFO] [stderr]    Compiling pkg-config v0.3.19
[INFO] [stderr]    Compiling xml-rs v0.8.3
[INFO] [stderr]    Compiling nix v0.18.0
[INFO] [stderr]    Compiling smallvec v1.4.2
[INFO] [stderr]    Compiling log v0.4.11
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling once_cell v1.4.1
[INFO] [stderr]    Compiling downcast-rs v1.2.0
[INFO] [stderr]    Compiling libloading v0.6.4
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling nom v5.1.2
[INFO] [stderr]    Compiling scoped-tls v1.0.0
[INFO] [stderr]    Compiling ttf-parser v0.6.2
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling instant v0.1.7
[INFO] [stderr]    Compiling slab v0.4.2
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling walkdir v2.3.1
[INFO] [stderr]    Compiling dlib v0.4.2
[INFO] [stderr]    Compiling lock_api v0.4.1
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling winit v0.23.0
[INFO] [stderr]    Compiling duku v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling wayland-sys v0.28.1
[INFO] [stderr]    Compiling x11-dl v2.18.5
[INFO] [stderr]    Compiling wayland-scanner v0.28.1
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling line_drawing v0.8.0
[INFO] [stderr]    Compiling andrew v0.3.0
[INFO] [stderr]    Compiling net2 v0.2.35
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.8.0
[INFO] [stderr]    Compiling memmap v0.7.0
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling parking_lot v0.11.0
[INFO] [stderr]    Compiling mio v0.6.22
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling xcursor v0.3.2
[INFO] [stderr]    Compiling wayland-client v0.28.1
[INFO] [stderr]    Compiling wayland-protocols v0.28.1
[INFO] [stderr]    Compiling wayland-commons v0.28.1
[INFO] [stderr]    Compiling calloop v0.6.5
[INFO] [stderr]    Compiling wayland-cursor v0.28.1
[INFO] [stderr]    Compiling smithay-client-toolkit v0.12.0
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     unused_qualifications,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 27 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 27 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 56 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 93 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 93 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 116 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 116 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:135:21
[INFO] [stdout]     |
[INFO] [stdout] 135 |         self.size / mem::size_of::<T>()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 135 -         self.size / mem::size_of::<T>()
[INFO] [stdout] 135 +         self.size / size_of::<T>()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/device/commands.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 271 -                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout] 271 +                 size_of::<ShaderConstants>(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 28 -             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout] 28 +             stride: size_of::<Self>() as u32,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:36:35
[INFO] [stdout]    |
[INFO] [stdout] 36 |         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 36 -         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 36 +         offsets[1] = offsets[0] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 -         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 37 +         offsets[2] = offsets[1] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 38 +         offsets[3] = offsets[2] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 39 -         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout] 39 +         offsets[4] = offsets[3] + size_of::<Vec2>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:40:35
[INFO] [stdout]    |
[INFO] [stdout] 40 |         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 40 -         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout] 40 +         offsets[5] = offsets[4] + size_of::<Vec4>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/pipeline/uniforms.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 |             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 181 -             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout] 181 +             size: size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut features: &mut [vk::PhysicalDeviceFeatures] = unsafe { &mut [mem::zeroed()] };
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_mut)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `vk::allocate_command_buffers` that must be used
[INFO] [stdout]   --> src/device/commands.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { vk::allocate_command_buffers(device, &buffer_info, &mut buffer) };
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` implied by `#[warn(unused)]`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { let _ = vk::allocate_command_buffers(device, &buffer_info, &mut buffer); };
[INFO] [stdout]    |                  +++++++                                                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.33s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "f69b0a54fb6683474f3fd587bd809fc1ee1520acabeb9659b060eca5056912e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f69b0a54fb6683474f3fd587bd809fc1ee1520acabeb9659b060eca5056912e2", kill_on_drop: false }`
[INFO] [stdout] f69b0a54fb6683474f3fd587bd809fc1ee1520acabeb9659b060eca5056912e2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ea2fd336e0727630d78410aa1cbde99ac374c08e3e0b4c8bd518da18096861c6
[INFO] running `Command { std: "docker" "start" "-a" "ea2fd336e0727630d78410aa1cbde99ac374c08e3e0b4c8bd518da18096861c6", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     unused_qualifications,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 27 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 27 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 56 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 93 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 93 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 116 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 116 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:135:21
[INFO] [stdout]     |
[INFO] [stdout] 135 |         self.size / mem::size_of::<T>()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 135 -         self.size / mem::size_of::<T>()
[INFO] [stdout] 135 +         self.size / size_of::<T>()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/device/commands.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 271 -                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout] 271 +                 size_of::<ShaderConstants>(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 28 -             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout] 28 +             stride: size_of::<Self>() as u32,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:36:35
[INFO] [stdout]    |
[INFO] [stdout] 36 |         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 36 -         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 36 +         offsets[1] = offsets[0] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 -         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 37 +         offsets[2] = offsets[1] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 38 +         offsets[3] = offsets[2] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 39 -         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout] 39 +         offsets[4] = offsets[3] + size_of::<Vec2>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:40:35
[INFO] [stdout]    |
[INFO] [stdout] 40 |         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 40 -         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout] 40 +         offsets[5] = offsets[4] + size_of::<Vec4>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/pipeline/uniforms.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 |             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 181 -             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout] 181 +             size: size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut features: &mut [vk::PhysicalDeviceFeatures] = unsafe { &mut [mem::zeroed()] };
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_mut)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `vk::allocate_command_buffers` that must be used
[INFO] [stdout]   --> src/device/commands.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { vk::allocate_command_buffers(device, &buffer_info, &mut buffer) };
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` implied by `#[warn(unused)]`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { let _ = vk::allocate_command_buffers(device, &buffer_info, &mut buffer); };
[INFO] [stdout]    |                  +++++++                                                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling duku v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:27:20
[INFO] [stdout]    |
[INFO] [stdout] 27 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 |     unused_qualifications,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 27 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 27 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:56:20
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 56 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 56 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/buffer/mod.rs:93:20
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let size = mem::size_of::<T>() * len;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 93 -         let size = mem::size_of::<T>() * len;
[INFO] [stdout] 93 +         let size = size_of::<T>() * len;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:116:20
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 116 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stdout] 116 +         let size = size_of::<T>() * data.len();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/buffer/mod.rs:135:21
[INFO] [stdout]     |
[INFO] [stdout] 135 |         self.size / mem::size_of::<T>()
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 135 -         self.size / mem::size_of::<T>()
[INFO] [stdout] 135 +         self.size / size_of::<T>()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/device/commands.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 271 -                 mem::size_of::<ShaderConstants>(),
[INFO] [stdout] 271 +                 size_of::<ShaderConstants>(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 28 -             stride: mem::size_of::<Self>() as u32,
[INFO] [stdout] 28 +             stride: size_of::<Self>() as u32,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:36:35
[INFO] [stdout]    |
[INFO] [stdout] 36 |         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 36 -         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 36 +         offsets[1] = offsets[0] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:37:35
[INFO] [stdout]    |
[INFO] [stdout] 37 |         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 37 -         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 37 +         offsets[2] = offsets[1] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:38:35
[INFO] [stdout]    |
[INFO] [stdout] 38 |         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 38 -         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stdout] 38 +         offsets[3] = offsets[2] + size_of::<Vec3>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:39:35
[INFO] [stdout]    |
[INFO] [stdout] 39 |         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 39 -         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stdout] 39 +         offsets[4] = offsets[3] + size_of::<Vec2>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]   --> src/mesh/vertex.rs:40:35
[INFO] [stdout]    |
[INFO] [stdout] 40 |         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]    |
[INFO] [stdout] 40 -         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stdout] 40 +         offsets[5] = offsets[4] + size_of::<Vec4>() as u32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary qualification
[INFO] [stdout]    --> src/pipeline/uniforms.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 |             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: remove the unnecessary path segments
[INFO] [stdout]     |
[INFO] [stdout] 181 -             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stdout] 181 +             size: size_of::<ShaderConstants>() as u32,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/device/mod.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut features: &mut [vk::PhysicalDeviceFeatures] = unsafe { &mut [mem::zeroed()] };
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]   --> src/lib.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     unused,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    = note: `#[warn(unused_mut)]` implied by `#[warn(unused)]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `vk::allocate_command_buffers` that must be used
[INFO] [stdout]   --> src/device/commands.rs:99:18
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { vk::allocate_command_buffers(device, &buffer_info, &mut buffer) };
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` implied by `#[warn(unused)]`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |         unsafe { let _ = vk::allocate_command_buffers(device, &buffer_info, &mut buffer); };
[INFO] [stdout]    |                  +++++++                                                                +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.28s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] running `Command { std: "docker" "inspect" "ea2fd336e0727630d78410aa1cbde99ac374c08e3e0b4c8bd518da18096861c6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea2fd336e0727630d78410aa1cbde99ac374c08e3e0b4c8bd518da18096861c6", kill_on_drop: false }`
[INFO] [stdout] ea2fd336e0727630d78410aa1cbde99ac374c08e3e0b4c8bd518da18096861c6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] bb6d295bc5ad25824a91bea380d3e16eec195c5ae68d33208b4e9bc947bf5d82
[INFO] running `Command { std: "docker" "start" "-a" "bb6d295bc5ad25824a91bea380d3e16eec195c5ae68d33208b4e9bc947bf5d82", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/buffer/mod.rs:27:20
[INFO] [stderr]    |
[INFO] [stderr] 27 |         let size = mem::size_of::<T>() * len;
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:70:5
[INFO] [stderr]    |
[INFO] [stderr] 70 |     unused_qualifications,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 27 -         let size = mem::size_of::<T>() * len;
[INFO] [stderr] 27 +         let size = size_of::<T>() * len;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/buffer/mod.rs:56:20
[INFO] [stderr]    |
[INFO] [stderr] 56 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 56 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stderr] 56 +         let size = size_of::<T>() * data.len();
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/buffer/mod.rs:93:20
[INFO] [stderr]    |
[INFO] [stderr] 93 |         let size = mem::size_of::<T>() * len;
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 93 -         let size = mem::size_of::<T>() * len;
[INFO] [stderr] 93 +         let size = size_of::<T>() * len;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]    --> src/buffer/mod.rs:116:20
[INFO] [stderr]     |
[INFO] [stderr] 116 |         let size = mem::size_of::<T>() * data.len();
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]     |
[INFO] [stderr] 116 -         let size = mem::size_of::<T>() * data.len();
[INFO] [stderr] 116 +         let size = size_of::<T>() * data.len();
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]    --> src/buffer/mod.rs:135:21
[INFO] [stderr]     |
[INFO] [stderr] 135 |         self.size / mem::size_of::<T>()
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]     |
[INFO] [stderr] 135 -         self.size / mem::size_of::<T>()
[INFO] [stderr] 135 +         self.size / size_of::<T>()
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]    --> src/device/commands.rs:271:17
[INFO] [stderr]     |
[INFO] [stderr] 271 |                 mem::size_of::<ShaderConstants>(),
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]     |
[INFO] [stderr] 271 -                 mem::size_of::<ShaderConstants>(),
[INFO] [stderr] 271 +                 size_of::<ShaderConstants>(),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:28:21
[INFO] [stderr]    |
[INFO] [stderr] 28 |             stride: mem::size_of::<Self>() as u32,
[INFO] [stderr]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 28 -             stride: mem::size_of::<Self>() as u32,
[INFO] [stderr] 28 +             stride: size_of::<Self>() as u32,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:36:35
[INFO] [stderr]    |
[INFO] [stderr] 36 |         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 36 -         offsets[1] = offsets[0] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr] 36 +         offsets[1] = offsets[0] + size_of::<Vec3>() as u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:37:35
[INFO] [stderr]    |
[INFO] [stderr] 37 |         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 37 -         offsets[2] = offsets[1] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr] 37 +         offsets[2] = offsets[1] + size_of::<Vec3>() as u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:38:35
[INFO] [stderr]    |
[INFO] [stderr] 38 |         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 38 -         offsets[3] = offsets[2] + mem::size_of::<Vec3>() as u32;
[INFO] [stderr] 38 +         offsets[3] = offsets[2] + size_of::<Vec3>() as u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:39:35
[INFO] [stderr]    |
[INFO] [stderr] 39 |         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 39 -         offsets[4] = offsets[3] + mem::size_of::<Vec2>() as u32;
[INFO] [stderr] 39 +         offsets[4] = offsets[3] + size_of::<Vec2>() as u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]   --> src/mesh/vertex.rs:40:35
[INFO] [stderr]    |
[INFO] [stderr] 40 |         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stderr]    |                                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]    |
[INFO] [stderr] 40 -         offsets[5] = offsets[4] + mem::size_of::<Vec4>() as u32;
[INFO] [stderr] 40 +         offsets[5] = offsets[4] + size_of::<Vec4>() as u32;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary qualification
[INFO] [stderr]    --> src/pipeline/uniforms.rs:181:19
[INFO] [stderr]     |
[INFO] [stderr] 181 |             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: remove the unnecessary path segments
[INFO] [stderr]     |
[INFO] [stderr] 181 -             size: mem::size_of::<ShaderConstants>() as u32,
[INFO] [stderr] 181 +             size: size_of::<ShaderConstants>() as u32,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/device/mod.rs:58:13
[INFO] [stderr]    |
[INFO] [stderr] 58 |         let mut features: &mut [vk::PhysicalDeviceFeatures] = unsafe { &mut [mem::zeroed()] };
[INFO] [stderr]    |             ----^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]   --> src/lib.rs:66:5
[INFO] [stderr]    |
[INFO] [stderr] 66 |     unused,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    = note: `#[warn(unused_mut)]` implied by `#[warn(unused)]`
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `vk::allocate_command_buffers` that must be used
[INFO] [stderr]   --> src/device/commands.rs:99:18
[INFO] [stderr]    |
[INFO] [stderr] 99 |         unsafe { vk::allocate_command_buffers(device, &buffer_info, &mut buffer) };
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` implied by `#[warn(unused)]`
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 99 |         unsafe { let _ = vk::allocate_command_buffers(device, &buffer_info, &mut buffer); };
[INFO] [stderr]    |                  +++++++                                                                +
[INFO] [stderr] 
[INFO] [stderr] warning: `duku` (lib) generated 15 warnings (run `cargo fix --lib -p duku` to apply 14 suggestions)
[INFO] [stderr] warning: `duku` (lib test) generated 15 warnings (15 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.18s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v5.1.2
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/duku-765c7bc87153eafe)
[INFO] [stdout] 
[INFO] [stdout] running 62 tests
[INFO] [stdout] test color::hsb::tests::from_rgbf ... ok
[INFO] [stdout] test color::rgb::tests::from_rgbf ... ok
[INFO] [stdout] test color::rgb::tests::from_hex ... ok
[INFO] [stdout] test color::rgbf::tests::from_rgb ... ok
[INFO] [stdout] test math::mat4::test::columns ... ok
[INFO] [stdout] test color::rgb::tests::from_hsb ... ok
[INFO] [stdout] test color::rgbf::tests::from_hsb ... ok
[INFO] [stdout] test math::mat4::test::compose ... ok
[INFO] [stdout] test color::hsb::tests::from_rgb ... ok
[INFO] [stdout] test math::mat4::test::euler_rotation_x ... ok
[INFO] [stdout] test math::mat4::test::euler_rotation_z ... ok
[INFO] [stdout] test math::mat4::test::from_quaternion ... ok
[INFO] [stdout] test math::mat4::test::identity ... ok
[INFO] [stdout] test math::mat4::test::inverse ... ok
[INFO] [stdout] test math::mat4::test::look_rotation_x ... ok
[INFO] [stdout] test math::mat4::test::look_rotation_y ... ok
[INFO] [stdout] test math::mat4::test::look_rotation_z ... ok
[INFO] [stdout] test math::mat4::test::mul_with_self ... ok
[INFO] [stdout] test math::mat4::test::mul_with_vector ... ok
[INFO] [stdout] test math::mat4::test::orthographic ... ok
[INFO] [stdout] test math::mat4::test::perspective ... ok
[INFO] [stdout] test math::mat4::test::projection ... ok
[INFO] [stdout] test math::mat4::test::rows ... ok
[INFO] [stdout] test math::mat4::test::scale ... ok
[INFO] [stdout] test math::mat4::test::translation ... ok
[INFO] [stdout] test math::quat::test::axis_rotation ... ok
[INFO] [stdout] test math::mat4::test::euler_rotation_y ... ok
[INFO] [stdout] test math::quat::test::default ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_x ... ok
[INFO] [stdout] test math::quat::test::look_rotation_x ... ok
[INFO] [stdout] test math::quat::test::look_rotation_y ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_y ... ok
[INFO] [stdout] test math::quat::test::look_rotation_z ... ok
[INFO] [stdout] test math::quat::test::mul_vector ... ok
[INFO] [stdout] test math::quat::test::quat_to_mat_to_quat ... ok
[INFO] [stdout] test math::quat::test::mul_self ... ok
[INFO] [stdout] test math::vec2::test::angle_between ... ok
[INFO] [stdout] test math::vec2::test::dot ... ok
[INFO] [stdout] test math::vec2::test::new ... ok
[INFO] [stdout] test math::vec2::test::normal ... ok
[INFO] [stdout] test math::vec2::test::length ... ok
[INFO] [stdout] test math::vec2::test::sqr_length ... ok
[INFO] [stdout] test math::vec2::test::unit ... ok
[INFO] [stdout] test math::vec3::test::cross ... ok
[INFO] [stdout] test math::vec3::test::default ... ok
[INFO] [stdout] test math::vec4::test::new ... ok
[INFO] [stdout] test math::vec3::test::direction ... ok
[INFO] [stdout] test math::vec3::test::dot ... ok
[INFO] [stdout] test math::vec3::test::length ... ok
[INFO] [stdout] test math::vec3::test::new ... ok
[INFO] [stdout] test math::vec3::test::operator ... ok
[INFO] [stdout] test math::vec3::test::unit ... ok
[INFO] [stdout] test math::vec3::test::xy ... ok
[INFO] [stdout] test math::vec4::test::default ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_z ... ok
[INFO] [stdout] test math::vec2::test::operators ... ok
[INFO] [stdout] test math::vec4::test::dot ... ok
[INFO] [stdout] test math::vec4::test::operator ... ok
[INFO] [stdout] test math::vec2::test::default ... ok
[INFO] [stdout] test math::vec3::test::angle_between ... ok
[INFO] [stdout] test math::mat4::test::axis_rotation ... ok
[INFO] [stdout] test color::mix::tests::simple_mix ... ok
[INFO] [stderr]    Doc-tests duku
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 62 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] warning: lint `missing_doc_code_examples` has been renamed to `rustdoc::missing_doc_code_examples`
[INFO] [stderr]   --> src/lib.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 69 |     missing_doc_code_examples,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use the new name: `rustdoc::missing_doc_code_examples`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unknown lint: `rustdoc::missing_doc_code_examples`
[INFO] [stderr]   --> src/lib.rs:69:5
[INFO] [stderr]    |
[INFO] [stderr] 69 |     missing_doc_code_examples,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: the `rustdoc::missing_doc_code_examples` lint is unstable
[INFO] [stderr]    = note: see issue #101730 <https://github.com/rust-lang/rust/issues/101730> for more information
[INFO] [stderr]    = help: add `#![feature(rustdoc_missing_doc_code_examples)]` to the crate attributes to enable
[INFO] [stderr]    = note: this compiler was built on 2025-11-07; consider upgrading it if it is out of date
[INFO] [stderr]    = note: `#[warn(unknown_lints)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test src/duku.rs - duku::Duku::draw_on_canvas (line 150) - compile ... ok
[INFO] [stdout] test src/duku.rs - duku::Duku (line 50) - compile ... ok
[INFO] [stdout] test src/device/stats.rs - device::stats::Stats (line 12) - compile ... ok
[INFO] [stdout] test src/duku.rs - duku::Duku::draw (line 118) - compile ... ok
[INFO] [stdout] test src/image/canvas.rs - image::canvas::Canvas (line 29) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 10) - compile ... ok
[INFO] [stdout] test src/math/vec2.rs - math::vec2::Vec2 (line 22) - compile ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::saturate (line 119) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::alpha (line 57) ... ok
[INFO] [stdout] test src/color/gradient.rs - color::gradient::Gradient (line 12) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::brighten (line 104) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::shift (line 74) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::desaturate (line 134) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::darken (line 89) ... ok
[INFO] [stdout] test src/color/rgbf.rs - color::rgbf::Rgbf (line 15) ... ok
[INFO] [stdout] test src/color/rgb.rs - color::rgb::Rgb::alpha (line 74) ... ok
[INFO] [stdout] test src/pipeline/shader.rs - pipeline::shader::Shader (line 28) - compile ... ok
[INFO] [stdout] test src/mesh/mod.rs - mesh::Mesh (line 26) - compile ... ok
[INFO] [stdout] test src/pipeline/material.rs - pipeline::material::Material (line 21) - compile ... ok
[INFO] [stdout] test src/math/vec3.rs - math::vec3::Vec3 (line 26) - compile ... ok
[INFO] [stdout] test src/renderer/camera.rs - renderer::camera::Camera (line 12) - compile ... ok
[INFO] [stdout] test src/math/vec2.rs - math::vec2::Vec2::angle_between (line 114) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb (line 19) ... ok
[INFO] [stdout] test src/renderer/light.rs - renderer::light::Light (line 14) - compile ... ok
[INFO] [stdout] test src/color/rgbf.rs - color::rgbf::Rgbf::alpha (line 70) ... ok
[INFO] [stdout] test src/math/mat4.rs - math::mat4::Mat4 (line 21) ... ok
[INFO] [stdout] test src/color/rgb.rs - color::rgb::Rgb (line 15) ... ok
[INFO] [stdout] test src/math/quat.rs - math::quat::Quat (line 16) ... ok
[INFO] [stdout] test src/math/vec3.rs - math::vec3::Vec3::angle_between (line 135) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.51s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "bb6d295bc5ad25824a91bea380d3e16eec195c5ae68d33208b4e9bc947bf5d82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bb6d295bc5ad25824a91bea380d3e16eec195c5ae68d33208b4e9bc947bf5d82", kill_on_drop: false }`
[INFO] [stdout] bb6d295bc5ad25824a91bea380d3e16eec195c5ae68d33208b4e9bc947bf5d82
