[INFO] cloning repository https://github.com/oxy/banyan
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/oxy/banyan" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foxy%2Fbanyan", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foxy%2Fbanyan'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a0dea906e18fa4b76407f3a699dbb94e55f1402
[INFO] checking oxy/banyan against master#642c19bfc3a5c1de985bf5d0cc8207ac9d22708a for pr-148577
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foxy%2Fbanyan" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/oxy/banyan
[INFO] finished tweaking git repo https://github.com/oxy/banyan
[INFO] tweaked toml for git repo https://github.com/oxy/banyan written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/oxy/banyan on toolchain 642c19bfc3a5c1de985bf5d0cc8207ac9d22708a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/oxy/banyan 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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_derive v3.1.4
[INFO] [stderr]   Downloaded dhat v0.3.0
[INFO] [stderr]   Downloaded syn v1.0.78
[INFO] [stderr]   Downloaded clap v3.1.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0cbaba05d5d7edc5cc0a455715787a2e4e9fdefb09effe5b3901b97c08f2e438
[INFO] running `Command { std: "docker" "start" "-a" "0cbaba05d5d7edc5cc0a455715787a2e4e9fdefb09effe5b3901b97c08f2e438", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0cbaba05d5d7edc5cc0a455715787a2e4e9fdefb09effe5b3901b97c08f2e438", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0cbaba05d5d7edc5cc0a455715787a2e4e9fdefb09effe5b3901b97c08f2e438", kill_on_drop: false }`
[INFO] [stdout] 0cbaba05d5d7edc5cc0a455715787a2e4e9fdefb09effe5b3901b97c08f2e438
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+642c19bfc3a5c1de985bf5d0cc8207ac9d22708a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cb9e03d3e903b6823a48cf7555edd0d416e592cf1f217da33efbe7daa0d04844
[INFO] running `Command { std: "docker" "start" "-a" "cb9e03d3e903b6823a48cf7555edd0d416e592cf1f217da33efbe7daa0d04844", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.97
[INFO] [stderr]    Compiling syn v1.0.78
[INFO] [stderr]    Compiling cc v1.0.68
[INFO] [stderr]    Compiling serde_derive v1.0.126
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling serde v1.0.126
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking subtle v2.4.0
[INFO] [stderr]     Checking addr2line v0.17.0
[INFO] [stderr]     Checking object v0.27.1
[INFO] [stderr]     Checking textwrap v0.15.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking thousands v0.2.0
[INFO] [stderr]    Compiling backtrace v0.3.64
[INFO] [stderr]    Compiling blake3 v0.3.8
[INFO] [stderr]     Checking parking_lot_core v0.8.5
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking generic-array v0.14.4
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking parking_lot v0.12.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v3.1.4
[INFO] [stderr]     Checking clap v3.1.6
[INFO] [stderr]     Checking serde_json v1.0.78
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking dhat v0.3.0
[INFO] [stderr]     Checking banyan v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/repo/layer.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{File, Metadata};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsRawFd`
[INFO] [stdout]  --> src/repo/layer.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::os::unix::prelude::{AsRawFd, RawFd, OsStrExt};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/repo/layer.rs:250:22
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let threads = if (threads > 4) {
[INFO] [stdout]     |                      ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 250 -     let threads = if (threads > 4) {
[INFO] [stdout] 250 +     let threads = if threads > 4  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `joinpath`
[INFO] [stdout]  --> src/util/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use utfpath::{joinpath, os_to_utf};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::aparc::APArc`
[INFO] [stdout]  --> src/util/queue.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::aparc::APArc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `null`
[INFO] [stdout]  --> src/util/queue.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::{null, self};
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicUsize`
[INFO] [stdout]  --> src/util/queue.rs:7:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicIsize, AtomicUsize, AtomicPtr, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/util/queue.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ffi::CString`, `fs::File`, `os::unix::prelude::AsRawFd`, and `sync::Arc`
[INFO] [stdout]   --> src/main.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     error::Error, ffi::CString, fs::File, os::unix::prelude::AsRawFd,
[INFO] [stdout]    |                   ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     sync::Arc,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::PString`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::util::PString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/repo/layer.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::fs::{File, Metadata};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsRawFd`
[INFO] [stdout]  --> src/repo/layer.rs:7:30
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::os::unix::prelude::{AsRawFd, RawFd, OsStrExt};
[INFO] [stdout]   |                              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/repo/layer.rs:250:22
[INFO] [stdout]     |
[INFO] [stdout] 250 |     let threads = if (threads > 4) {
[INFO] [stdout]     |                      ^           ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 250 -     let threads = if (threads > 4) {
[INFO] [stdout] 250 +     let threads = if threads > 4  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `joinpath`
[INFO] [stdout]  --> src/util/mod.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use utfpath::{joinpath, os_to_utf};
[INFO] [stdout]   |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::aparc::APArc`
[INFO] [stdout]  --> src/util/queue.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::aparc::APArc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `null`
[INFO] [stdout]  --> src/util/queue.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ptr::{null, self};
[INFO] [stdout]   |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AtomicUsize`
[INFO] [stdout]  --> src/util/queue.rs:7:38
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::atomic::{AtomicIsize, AtomicUsize, AtomicPtr, Ordering};
[INFO] [stdout]   |                                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> src/util/queue.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ffi::CString`, `fs::File`, `os::unix::prelude::AsRawFd`, and `sync::Arc`
[INFO] [stdout]   --> src/main.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 |     error::Error, ffi::CString, fs::File, os::unix::prelude::AsRawFd,
[INFO] [stdout]    |                   ^^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     sync::Arc,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::util::PString`
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::util::PString;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::BorrowMut`
[INFO] [stdout]   --> src/repo/object.rs:16:52
[INFO] [stdout]    |
[INFO] [stdout] 16 |         os::unix::prelude::{FromRawFd, IntoRawFd}, borrow::BorrowMut,
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `borrow::BorrowMut`
[INFO] [stdout]   --> src/repo/object.rs:16:52
[INFO] [stdout]    |
[INFO] [stdout] 16 |         os::unix::prelude::{FromRawFd, IntoRawFd}, borrow::BorrowMut,
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/util/queue.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut head = Box::new(Node {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_device`
[INFO] [stdout]   --> src/main.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         Commands::Import { path, same_device } => {
[INFO] [stdout]    |                                  ^^^^^^^^^^^ help: try ignoring the field: `same_device: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/repo/layer.rs:322:5
[INFO] [stdout]     |
[INFO] [stdout] 322 |     layer.write(&ser);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 322 |     let _ = layer.write(&ser);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `into_raw_fd` that must be used
[INFO] [stdout]   --> src/repo/object.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         file.into_raw_fd();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: losing the raw file descriptor may leak resources
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let _ = file.into_raw_fd();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[u8; 3904]` does not permit being left uninitialized
[INFO] [stdout]    --> src/util/queue.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 MaybeUninit::<[u8; NODE_LEN]>::uninit().assume_init()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this code causes undefined behavior when executed
[INFO] [stdout]     |                 help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/util/queue.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 | /                         self.tail.compare_exchange(
[INFO] [stdout] 261 | |                             tailptr, 
[INFO] [stdout] 262 | |                             ptr,
[INFO] [stdout] 263 | |                             Ordering::AcqRel,
[INFO] [stdout] 264 | |                             Ordering::Acquire
[INFO] [stdout] 265 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |                         let _ = self.tail.compare_exchange(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/util/queue.rs:278:25
[INFO] [stdout]     |
[INFO] [stdout] 278 | /                         self.tail.compare_exchange(
[INFO] [stdout] 279 | |                             tailptr,
[INFO] [stdout] 280 | |                             real_tail,
[INFO] [stdout] 281 | |                             Ordering::AcqRel,
[INFO] [stdout] 282 | |                             Ordering::Acquire
[INFO] [stdout] 283 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |                         let _ = self.tail.compare_exchange(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/util/queue.rs:293:33
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let head = unsafe { std::mem::transmute::<usize, &Node>(headptr) };
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout]     = note: `#[warn(integer_to_ptr_transmutes)]` on by default
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 293 -             let head = unsafe { std::mem::transmute::<usize, &Node>(headptr) };
[INFO] [stdout] 293 +             let head = unsafe { &*std::ptr::with_exposed_provenance::<Node>(headptr) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/util/queue.rs:305:38
[INFO] [stdout]     |
[INFO] [stdout] 305 | ...                   unsafe { Box::from_raw(*headlock as *mut Node) };
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 305 |                             unsafe { let _ = Box::from_raw(*headlock as *mut Node); };
[INFO] [stdout]     |                                      +++++++                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/util/queue.rs:190:13
[INFO] [stdout]     |
[INFO] [stdout] 190 |         let mut head = Box::new(Node {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `same_device`
[INFO] [stdout]   --> src/main.rs:54:34
[INFO] [stdout]    |
[INFO] [stdout] 54 |         Commands::Import { path, same_device } => {
[INFO] [stdout]    |                                  ^^^^^^^^^^^ help: try ignoring the field: `same_device: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/repo/layer.rs:322:5
[INFO] [stdout]     |
[INFO] [stdout] 322 |     layer.write(&ser);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 322 |     let _ = layer.write(&ser);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `into_raw_fd` that must be used
[INFO] [stdout]   --> src/repo/object.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         file.into_raw_fd();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: losing the raw file descriptor may leak resources
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 65 |         let _ = file.into_raw_fd();
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `[u8; 3904]` does not permit being left uninitialized
[INFO] [stdout]    --> src/util/queue.rs:127:17
[INFO] [stdout]     |
[INFO] [stdout] 127 |                 MaybeUninit::<[u8; NODE_LEN]>::uninit().assume_init()
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this code causes undefined behavior when executed
[INFO] [stdout]     |                 help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout]     = note: integers must be initialized
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/util/queue.rs:260:25
[INFO] [stdout]     |
[INFO] [stdout] 260 | /                         self.tail.compare_exchange(
[INFO] [stdout] 261 | |                             tailptr, 
[INFO] [stdout] 262 | |                             ptr,
[INFO] [stdout] 263 | |                             Ordering::AcqRel,
[INFO] [stdout] 264 | |                             Ordering::Acquire
[INFO] [stdout] 265 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |                         let _ = self.tail.compare_exchange(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/util/queue.rs:278:25
[INFO] [stdout]     |
[INFO] [stdout] 278 | /                         self.tail.compare_exchange(
[INFO] [stdout] 279 | |                             tailptr,
[INFO] [stdout] 280 | |                             real_tail,
[INFO] [stdout] 281 | |                             Ordering::AcqRel,
[INFO] [stdout] 282 | |                             Ordering::Acquire
[INFO] [stdout] 283 | |                         );
[INFO] [stdout]     | |_________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |                         let _ = self.tail.compare_exchange(
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: transmuting an integer to a pointer creates a pointer without provenance
[INFO] [stdout]    --> src/util/queue.rs:293:33
[INFO] [stdout]     |
[INFO] [stdout] 293 |             let head = unsafe { std::mem::transmute::<usize, &Node>(headptr) };
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this is dangerous because dereferencing the resulting pointer is undefined behavior
[INFO] [stdout]     = note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
[INFO] [stdout]     = help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
[INFO] [stdout]     = help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
[INFO] [stdout]     = help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
[INFO] [stdout]     = note: `#[warn(integer_to_ptr_transmutes)]` on by default
[INFO] [stdout] help: use `std::ptr::with_exposed_provenance` instead to use a previously exposed provenance
[INFO] [stdout]     |
[INFO] [stdout] 293 -             let head = unsafe { std::mem::transmute::<usize, &Node>(headptr) };
[INFO] [stdout] 293 +             let head = unsafe { &*std::ptr::with_exposed_provenance::<Node>(headptr) };
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/util/queue.rs:305:38
[INFO] [stdout]     |
[INFO] [stdout] 305 | ...                   unsafe { Box::from_raw(*headlock as *mut Node) };
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 305 |                             unsafe { let _ = Box::from_raw(*headlock as *mut Node); };
[INFO] [stdout]     |                                      +++++++                                      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.27s
[INFO] running `Command { std: "docker" "inspect" "cb9e03d3e903b6823a48cf7555edd0d416e592cf1f217da33efbe7daa0d04844", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb9e03d3e903b6823a48cf7555edd0d416e592cf1f217da33efbe7daa0d04844", kill_on_drop: false }`
[INFO] [stdout] cb9e03d3e903b6823a48cf7555edd0d416e592cf1f217da33efbe7daa0d04844
