[INFO] fetching crate duku 0.2.1...
[INFO] testing duku-0.2.1 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate duku 0.2.1 into /workspace/builds/worker-7-tc1/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-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate duku 0.2.1 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded maybe-uninit v2.0.0
[INFO] [stderr]   Downloaded pkg-config v0.3.19
[INFO] [stderr]   Downloaded libloading v0.6.4
[INFO] [stderr]   Downloaded x11-dl v2.18.5
[INFO] [stderr]   Downloaded dlib v0.4.2
[INFO] [stderr]   Downloaded strsim v0.9.3
[INFO] [stderr]   Downloaded wayland-scanner v0.28.1
[INFO] [stderr]   Downloaded gltf v0.15.2
[INFO] [stderr]   Downloaded wayland-cursor v0.28.1
[INFO] [stderr]   Downloaded wayland-sys v0.28.1
[INFO] [stderr]   Downloaded wayland-client v0.28.1
[INFO] [stderr]   Downloaded winit v0.23.0
[INFO] [stderr]   Downloaded ab_glyph v0.2.6
[INFO] [stderr]   Downloaded serde_derive v1.0.117
[INFO] [stderr]   Downloaded deflate v0.8.6
[INFO] [stderr]   Downloaded owned_ttf_parser v0.8.0
[INFO] [stderr]   Downloaded wayland-protocols v0.28.1
[INFO] [stderr]   Downloaded serde_json v1.0.59
[INFO] [stderr]   Downloaded ttf-parser v0.6.2
[INFO] [stderr]   Downloaded ttf-parser v0.8.3
[INFO] [stderr]   Downloaded jpeg-decoder v0.1.20
[INFO] [stderr]   Downloaded nom v5.1.2
[INFO] [stderr]   Downloaded nix v0.18.0
[INFO] [stderr]   Downloaded smithay-client-toolkit v0.12.0
[INFO] [stderr]   Downloaded cocoa v0.23.0
[INFO] [stderr]   Downloaded core-foundation-sys v0.7.0
[INFO] [stderr]   Downloaded num_enum v0.4.3
[INFO] [stderr]   Downloaded syn v1.0.44
[INFO] [stderr]   Downloaded num-traits v0.1.43
[INFO] [stderr]   Downloaded png v0.16.7
[INFO] [stderr]   Downloaded cmake v0.1.44
[INFO] [stderr]   Downloaded shaderc v0.7.0
[INFO] [stderr]   Downloaded core-foundation-sys v0.8.2
[INFO] [stderr]   Downloaded derivative v2.1.1
[INFO] [stderr]   Downloaded darling_macro v0.10.2
[INFO] [stderr]   Downloaded proc-macro-crate v0.1.5
[INFO] [stderr]   Downloaded ndk-sys v0.2.0
[INFO] [stderr]   Downloaded line_drawing v0.8.0
[INFO] [stderr]   Downloaded xml-rs v0.8.3
[INFO] [stderr]   Downloaded crc32fast v1.2.0
[INFO] [stderr]   Downloaded miniz_oxide v0.3.7
[INFO] [stderr]   Downloaded cocoa-foundation v0.1.0
[INFO] [stderr]   Downloaded core-foundation v0.9.1
[INFO] [stderr]   Downloaded core-foundation v0.7.0
[INFO] [stderr]   Downloaded core-graphics v0.19.2
[INFO] [stderr]   Downloaded core-video-sys v0.1.4
[INFO] [stderr]   Downloaded net2 v0.2.35
[INFO] [stderr]   Downloaded num_enum_derive v0.4.3
[INFO] [stderr]   Downloaded ndk-macro v0.2.0
[INFO] [stderr]   Downloaded ndk-glue v0.2.0
[INFO] [stderr]   Downloaded cloudabi v0.1.0
[INFO] [stderr]   Downloaded instant v0.1.7
[INFO] [stderr]   Downloaded parking_lot_core v0.8.0
[INFO] [stderr]   Downloaded rusttype v0.9.2
[INFO] [stderr]   Downloaded walkdir v2.3.1
[INFO] [stderr]   Downloaded xdg v2.2.0
[INFO] [stderr]   Downloaded andrew v0.3.0
[INFO] [stderr]   Downloaded calloop v0.6.5
[INFO] [stderr]   Downloaded xcursor v0.3.2
[INFO] [stderr]   Downloaded downcast-rs v1.2.0
[INFO] [stderr]   Downloaded wayland-commons v0.28.1
[INFO] [stderr]   Downloaded gltf-derive v0.15.2
[INFO] [stderr]   Downloaded gltf-json v0.15.2
[INFO] [stderr]   Downloaded core-graphics v0.22.1
[INFO] [stderr]   Downloaded thiserror-impl v1.0.21
[INFO] [stderr]   Downloaded thiserror v1.0.21
[INFO] [stderr]   Downloaded ndk v0.2.0
[INFO] [stderr]   Downloaded darling_core v0.10.2
[INFO] [stderr]   Downloaded darling v0.10.2
[INFO] [stderr]   Downloaded lock_api v0.4.1
[INFO] [stderr]   Downloaded parking_lot v0.11.0
[INFO] [stderr]   Downloaded raw-window-handle v0.3.3
[INFO] [stderr]   Downloaded ab_glyph_rasterizer v0.1.4
[INFO] [stderr]   Downloaded owned_ttf_parser v0.6.0
[INFO] [stderr]   Downloaded smallvec v1.4.2
[INFO] [stderr]   Downloaded shaderc-sys v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ef30bfff3a082d14009a06417ff0d8180051c9d626dc0a4a9e4fe20424b60f5
[INFO] running `Command { std: "docker" "start" "-a" "9ef30bfff3a082d14009a06417ff0d8180051c9d626dc0a4a9e4fe20424b60f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ef30bfff3a082d14009a06417ff0d8180051c9d626dc0a4a9e4fe20424b60f5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ef30bfff3a082d14009a06417ff0d8180051c9d626dc0a4a9e4fe20424b60f5", kill_on_drop: false }`
[INFO] [stdout] 9ef30bfff3a082d14009a06417ff0d8180051c9d626dc0a4a9e4fe20424b60f5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c557c0c6423c1285327fe73e37a72723ac29b4c02545e5a16dcbf729de49010f
[INFO] running `Command { std: "docker" "start" "-a" "c557c0c6423c1285327fe73e37a72723ac29b4c02545e5a16dcbf729de49010f", 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 scoped-tls v1.0.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 ttf-parser v0.6.2
[INFO] [stderr]    Compiling downcast-rs v1.2.0
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling ab_glyph_rasterizer v0.1.4
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling instant v0.1.7
[INFO] [stderr]    Compiling xdg v2.2.0
[INFO] [stderr]    Compiling walkdir v2.3.1
[INFO] [stderr]    Compiling slab v0.4.2
[INFO] [stderr]    Compiling lock_api v0.4.1
[INFO] [stderr]    Compiling dlib v0.4.2
[INFO] [stderr]    Compiling winit v0.23.0
[INFO] [stderr]    Compiling lazycell v1.3.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 iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.35
[INFO] [stderr]    Compiling memmap v0.7.0
[INFO] [stderr]    Compiling parking_lot_core v0.8.0
[INFO] [stderr]    Compiling raw-window-handle v0.3.3
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling wayland-scanner v0.28.1
[INFO] [stderr]    Compiling line_drawing v0.8.0
[INFO] [stderr]    Compiling mio v0.6.22
[INFO] [stderr]    Compiling owned_ttf_parser v0.6.0
[INFO] [stderr]    Compiling parking_lot v0.11.0
[INFO] [stderr]    Compiling rusttype v0.9.2
[INFO] [stderr]    Compiling andrew v0.3.0
[INFO] [stderr]    Compiling xcursor v0.3.2
[INFO] [stderr]    Compiling mio-extras v2.0.6
[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 56.94s
[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" "c557c0c6423c1285327fe73e37a72723ac29b4c02545e5a16dcbf729de49010f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c557c0c6423c1285327fe73e37a72723ac29b4c02545e5a16dcbf729de49010f", kill_on_drop: false }`
[INFO] [stdout] c557c0c6423c1285327fe73e37a72723ac29b4c02545e5a16dcbf729de49010f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cf682cada8826706e1b6968cc45b57a1be5600d9dc5b56f14ec3d2fd7f8690b7
[INFO] running `Command { std: "docker" "start" "-a" "cf682cada8826706e1b6968cc45b57a1be5600d9dc5b56f14ec3d2fd7f8690b7", 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.42s
[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" "cf682cada8826706e1b6968cc45b57a1be5600d9dc5b56f14ec3d2fd7f8690b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cf682cada8826706e1b6968cc45b57a1be5600d9dc5b56f14ec3d2fd7f8690b7", kill_on_drop: false }`
[INFO] [stdout] cf682cada8826706e1b6968cc45b57a1be5600d9dc5b56f14ec3d2fd7f8690b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6f7ce0a4ac79ea151a2a055b4fa2ad826eb341047805c45230318e0262506681
[INFO] running `Command { std: "docker" "start" "-a" "6f7ce0a4ac79ea151a2a055b4fa2ad826eb341047805c45230318e0262506681", 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.12s
[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_rgb ... ok
[INFO] [stdout] test color::mix::tests::simple_mix ... ok
[INFO] [stdout] test color::rgb::tests::from_hex ... ok
[INFO] [stdout] test color::rgbf::tests::from_hsb ... ok
[INFO] [stdout] test color::rgbf::tests::from_rgb ... ok
[INFO] [stdout] test color::rgb::tests::from_hsb ... ok
[INFO] [stdout] test math::mat4::test::axis_rotation ... ok
[INFO] [stdout] test math::mat4::test::columns ... ok
[INFO] [stdout] test math::mat4::test::compose ... ok
[INFO] [stdout] test math::mat4::test::euler_rotation_x ... ok
[INFO] [stdout] test math::mat4::test::euler_rotation_y ... 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 color::rgb::tests::from_rgbf ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_x ... 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::mul_with_vector ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_y ... ok
[INFO] [stdout] test math::quat::test::euler_rotation_z ... ok
[INFO] [stdout] test math::mat4::test::mul_with_self ... ok
[INFO] [stdout] test math::quat::test::look_rotation_x ... ok
[INFO] [stdout] test math::mat4::test::orthographic ... ok
[INFO] [stdout] test math::mat4::test::look_rotation_z ... ok
[INFO] [stdout] test math::mat4::test::translation ... ok
[INFO] [stdout] test math::mat4::test::projection ... ok
[INFO] [stdout] test math::quat::test::default ... 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::vec2::test::angle_between ... ok
[INFO] [stdout] test math::vec2::test::default ... ok
[INFO] [stdout] test math::mat4::test::inverse ... ok
[INFO] [stdout] test math::quat::test::mul_self ... ok
[INFO] [stdout] test math::mat4::test::perspective ... ok
[INFO] [stdout] test math::mat4::test::rows ... ok
[INFO] [stdout] test math::vec2::test::normal ... ok
[INFO] [stdout] test math::quat::test::axis_rotation ... ok
[INFO] [stdout] test math::vec2::test::sqr_length ... ok
[INFO] [stdout] test math::vec2::test::operators ... ok
[INFO] [stdout] test math::vec3::test::angle_between ... ok
[INFO] [stdout] test math::vec2::test::unit ... ok
[INFO] [stdout] test math::vec3::test::default ... ok
[INFO] [stdout] test math::mat4::test::scale ... ok
[INFO] [stdout] test math::vec2::test::dot ... ok
[INFO] [stdout] test math::vec2::test::length ... ok
[INFO] [stdout] test math::vec3::test::direction ... ok
[INFO] [stdout] test math::vec2::test::new ... ok
[INFO] [stdout] test math::vec3::test::cross ... ok
[INFO] [stdout] test math::vec3::test::dot ... ok
[INFO] [stdout] test math::vec3::test::length ... ok
[INFO] [stdout] test math::quat::test::look_rotation_y ... 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::vec4::test::default ... ok
[INFO] [stdout] test math::vec3::test::xy ... ok
[INFO] [stdout] test math::vec4::test::dot ... ok
[INFO] [stdout] test math::vec4::test::new ... ok
[INFO] [stdout] test math::vec4::test::operator ... ok
[INFO] [stdout] test color::hsb::tests::from_rgbf ... 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.09s
[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-06; 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/device/stats.rs - device::stats::Stats (line 12) - compile ... ok
[INFO] [stdout] test src/image/canvas.rs - image::canvas::Canvas (line 29) - compile ... ok
[INFO] [stdout] test src/duku.rs - duku::Duku (line 50) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 10) - compile ... ok
[INFO] [stdout] test src/duku.rs - duku::Duku::draw (line 118) - compile ... ok
[INFO] [stdout] test src/math/vec2.rs - math::vec2::Vec2 (line 22) - compile ... ok
[INFO] [stdout] test src/color/rgb.rs - color::rgb::Rgb::alpha (line 74) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::shift (line 74) ... ok
[INFO] [stdout] test src/color/gradient.rs - color::gradient::Gradient (line 12) ... ok
[INFO] [stdout] test src/math/vec3.rs - math::vec3::Vec3 (line 26) - 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::darken (line 89) ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::brighten (line 104) ... ok
[INFO] [stdout] test src/mesh/mod.rs - mesh::Mesh (line 26) - compile ... ok
[INFO] [stdout] test src/color/rgbf.rs - color::rgbf::Rgbf::alpha (line 70) ... ok
[INFO] [stdout] test src/renderer/camera.rs - renderer::camera::Camera (line 12) - compile ... ok
[INFO] [stdout] test src/pipeline/shader.rs - pipeline::shader::Shader (line 28) - compile ... ok
[INFO] [stdout] test src/color/hsb.rs - color::hsb::Hsb::desaturate (line 134) ... ok
[INFO] [stdout] test src/math/mat4.rs - math::mat4::Mat4 (line 21) ... ok
[INFO] [stdout] test src/pipeline/material.rs - pipeline::material::Material (line 21) - compile ... ok
[INFO] [stdout] test src/color/rgbf.rs - color::rgbf::Rgbf (line 15) ... 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/hsb.rs - color::hsb::Hsb::alpha (line 57) ... 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.36s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6f7ce0a4ac79ea151a2a055b4fa2ad826eb341047805c45230318e0262506681", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f7ce0a4ac79ea151a2a055b4fa2ad826eb341047805c45230318e0262506681", kill_on_drop: false }`
[INFO] [stdout] 6f7ce0a4ac79ea151a2a055b4fa2ad826eb341047805c45230318e0262506681
