[INFO] cloning repository https://github.com/LOKESH-999/lock-free-mpsc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LOKESH-999/lock-free-mpsc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLOKESH-999%2Flock-free-mpsc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLOKESH-999%2Flock-free-mpsc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2d4e197e34ca1bec71b6c588c28980d37dd4be07
[INFO] testing LOKESH-999/lock-free-mpsc against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLOKESH-999%2Flock-free-mpsc" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/LOKESH-999/lock-free-mpsc
[INFO] finished tweaking git repo https://github.com/LOKESH-999/lock-free-mpsc
[INFO] tweaked toml for git repo https://github.com/LOKESH-999/lock-free-mpsc written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/LOKESH-999/lock-free-mpsc on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/LOKESH-999/lock-free-mpsc 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6740f43fb42a7e05407670b1811cead5df880cd223fd5db009529701414c5897
[INFO] running `Command { std: "docker" "start" "-a" "6740f43fb42a7e05407670b1811cead5df880cd223fd5db009529701414c5897", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6740f43fb42a7e05407670b1811cead5df880cd223fd5db009529701414c5897", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6740f43fb42a7e05407670b1811cead5df880cd223fd5db009529701414c5897", kill_on_drop: false }`
[INFO] [stdout] 6740f43fb42a7e05407670b1811cead5df880cd223fd5db009529701414c5897
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d7c9dc138739ae9b6d6a9eac4fac505641704b377e904474dc9928727424d995
[INFO] running `Command { std: "docker" "start" "-a" "d7c9dc138739ae9b6d6a9eac4fac505641704b377e904474dc9928727424d995", kill_on_drop: false }`
[INFO] [stderr]    Compiling lock-free-mpsc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition name: `no_std`
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[cfg(all(test, not(no_std)))]
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(no_std)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(no_std)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawMpsc` is never constructed
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RawMpsc<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, and `pop` are never used
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<T: Debug> RawMpsc<T> {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn push(&self, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn pop(&self) -> Option<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotArr` is never constructed
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/slot_arr.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SlotArr<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `init_slots`, `set`, and `unset` are never used
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/slot_arr.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T> SlotArr<T> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn init_slots(ptr: NonNull<Slot<T>>, capacity: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn unset(&self, index: usize) -> Result<T, ()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawMpsc` is never constructed
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RawMpsc<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait_for_seg_alloc`, `push`, `pop`, `segment_push`, and `segment_pop` are never used
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<T: Debug> RawMpsc<T> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     fn wait_for_seg_alloc(&self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn push(&self, mut data: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn pop(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn segment_push(segment: &Segment<T>, data: T) -> Result<(), T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn segment_pop(segment: &Segment<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEGMENT_SIZE` is never used
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) const SEGMENT_SIZE: usize = 128;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Segment` is never constructed
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Segment<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `layout`, `set`, `unset`, `set_unchecked`, and `unset_unchecked` are never used
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> Segment<T> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     const fn layout() -> Layout {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn unset(&self, index: usize) -> Option<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub unsafe fn set_unchecked(&self, index: usize, data: T) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub unsafe fn unset_unchecked(&self, index: usize) -> T {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Slot` is never constructed
[INFO] [stdout]   --> src/mpsc/slot.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Slot<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set`, `unset`, `unchecked_set`, and `unchecked_unset` are never used
[INFO] [stdout]    --> src/mpsc/slot.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl<T> Slot<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn set(&self, data: T) -> Result<(), T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn unset(&self) -> Result<T, ()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub unsafe fn unchecked_set(&self, data: T) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub unsafe fn unchecked_unset(&self) -> T {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READY` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:107:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(super) const READY: u8 = 0; // Slot is empty
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESERVED` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:108:7
[INFO] [stdout]     |
[INFO] [stdout] 108 | const RESERVED: u8 = 1; // Slot is reserved for writing
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REGISTERED` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const REGISTERED: u8 = 2; // Slot contains data
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 unsafe { transmute::<isize, usize>(-((next_head < self.slots.capacity) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                         transmute::<isize, usize>(-((next_tail < self.slots.capacity) as isize))
[INFO] [stdout]     |                         -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:130:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     unsafe { transmute::<isize, usize>(-((next < self.slots.capacity) as isize)) };
[INFO] [stdout]     |                              -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { transmute::<isize, usize>(-((next_unbound < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 |             let is_bound = unsafe { transmute::<isize, usize>(-((tail + 1 < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]     |                                     -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] running `Command { std: "docker" "inspect" "d7c9dc138739ae9b6d6a9eac4fac505641704b377e904474dc9928727424d995", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7c9dc138739ae9b6d6a9eac4fac505641704b377e904474dc9928727424d995", kill_on_drop: false }`
[INFO] [stdout] d7c9dc138739ae9b6d6a9eac4fac505641704b377e904474dc9928727424d995
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cfcb374ed0237babca355e8bdbc9772198cb84c415eeb5eb5f7dd58943b8e04c
[INFO] running `Command { std: "docker" "start" "-a" "cfcb374ed0237babca355e8bdbc9772198cb84c415eeb5eb5f7dd58943b8e04c", kill_on_drop: false }`
[INFO] [stdout] warning: unexpected `cfg` condition name: `no_std`
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[cfg(all(test, not(no_std)))]
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(no_std)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(no_std)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawMpsc` is never constructed
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct RawMpsc<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `push`, and `pop` are never used
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<T: Debug> RawMpsc<T> {
[INFO] [stdout]    | ------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub fn push(&self, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 91 |     pub fn pop(&self) -> Option<T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SlotArr` is never constructed
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/slot_arr.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SlotArr<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `init_slots`, `set`, and `unset` are never used
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/slot_arr.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl<T> SlotArr<T> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 17 |     pub fn new(capacity: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn init_slots(ptr: NonNull<Slot<T>>, capacity: usize) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn unset(&self, index: usize) -> Result<T, ()> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawMpsc` is never constructed
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RawMpsc<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `wait_for_seg_alloc`, `push`, `pop`, `segment_push`, and `segment_pop` are never used
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  18 | impl<T: Debug> RawMpsc<T> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  19 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  32 |     fn wait_for_seg_alloc(&self){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  38 |     pub fn push(&self, mut data: T) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn pop(&self) -> Option<T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn segment_push(segment: &Segment<T>, data: T) -> Result<(), T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     fn segment_pop(segment: &Segment<T>) -> Option<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SEGMENT_SIZE` is never used
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:12:18
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) const SEGMENT_SIZE: usize = 128;
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Segment` is never constructed
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Segment<T> {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `layout`, `set`, `unset`, `set_unchecked`, and `unset_unchecked` are never used
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> Segment<T> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 22 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     const fn layout() -> Layout {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn unset(&self, index: usize) -> Option<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub unsafe fn set_unchecked(&self, index: usize, data: T) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub unsafe fn unset_unchecked(&self, index: usize) -> T {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling lock-free-mpsc v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: struct `Slot` is never constructed
[INFO] [stdout]   --> src/mpsc/slot.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Slot<T> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set`, `unset`, `unchecked_set`, and `unchecked_unset` are never used
[INFO] [stdout]    --> src/mpsc/slot.rs:43:12
[INFO] [stdout]     |
[INFO] [stdout]  28 | impl<T> Slot<T> {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub fn set(&self, data: T) -> Result<(), T> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn unset(&self) -> Result<T, ()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub unsafe fn unchecked_set(&self, data: T) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub unsafe fn unchecked_unset(&self) -> T {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `READY` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:107:18
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub(super) const READY: u8 = 0; // Slot is empty
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RESERVED` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:108:7
[INFO] [stdout]     |
[INFO] [stdout] 108 | const RESERVED: u8 = 1; // Slot is reserved for writing
[INFO] [stdout]     |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REGISTERED` is never used
[INFO] [stdout]    --> src/mpsc/slot.rs:109:7
[INFO] [stdout]     |
[INFO] [stdout] 109 | const REGISTERED: u8 = 2; // Slot contains data
[INFO] [stdout]     |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 unsafe { transmute::<isize, usize>(-((next_head < self.slots.capacity) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                         transmute::<isize, usize>(-((next_tail < self.slots.capacity) as isize))
[INFO] [stdout]     |                         -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:130:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     unsafe { transmute::<isize, usize>(-((next < self.slots.capacity) as isize)) };
[INFO] [stdout]     |                              -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { transmute::<isize, usize>(-((next_unbound < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 |             let is_bound = unsafe { transmute::<isize, usize>(-((tail + 1 < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]     |                                     -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition name: `no_std`
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:143:21
[INFO] [stdout]     |
[INFO] [stdout] 143 | #[cfg(all(test, not(no_std)))]
[INFO] [stdout]     |                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stdout]     = help: consider using a Cargo feature instead
[INFO] [stdout]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stdout]              [lints.rust]
[INFO] [stdout]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(no_std)'] }
[INFO] [stdout]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(no_std)");` to the top of the `build.rs`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_multi_producer_single_consumer_basic` is never used
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:175:8
[INFO] [stdout]     |
[INFO] [stdout] 175 |     fn test_multi_producer_single_consumer_basic() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `unset`, `set_unchecked`, and `unset_unchecked` are never used
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl<T> Segment<T> {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn unset(&self, index: usize) -> Option<T> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub unsafe fn set_unchecked(&self, index: usize, data: T) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub unsafe fn unset_unchecked(&self, index: usize) -> T {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                 unsafe { transmute::<isize, usize>(-((next_head < self.slots.capacity) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:100:25
[INFO] [stdout]     |
[INFO] [stdout] 100 |                         transmute::<isize, usize>(-((next_tail < self.slots.capacity) as isize))
[INFO] [stdout]     |                         -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:130:30
[INFO] [stdout]     |
[INFO] [stdout] 130 |                     unsafe { transmute::<isize, usize>(-((next < self.slots.capacity) as isize)) };
[INFO] [stdout]     |                              -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:90:26
[INFO] [stdout]    |
[INFO] [stdout] 90 |                 unsafe { transmute::<isize, usize>(-((next_unbound < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:117:37
[INFO] [stdout]     |
[INFO] [stdout] 117 |             let is_bound = unsafe { transmute::<isize, usize>(-((tail + 1 < SEGMENT_SIZE) as isize)) };
[INFO] [stdout]     |                                     -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     help: replace this with: `isize::cast_unsigned`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.88s
[INFO] running `Command { std: "docker" "inspect" "cfcb374ed0237babca355e8bdbc9772198cb84c415eeb5eb5f7dd58943b8e04c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cfcb374ed0237babca355e8bdbc9772198cb84c415eeb5eb5f7dd58943b8e04c", kill_on_drop: false }`
[INFO] [stdout] cfcb374ed0237babca355e8bdbc9772198cb84c415eeb5eb5f7dd58943b8e04c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1460b7a01c4054ff8d9ef34cf0d31d103169a0a75f08b3631eef67659a03a052
[INFO] running `Command { std: "docker" "start" "-a" "1460b7a01c4054ff8d9ef34cf0d31d103169a0a75f08b3631eef67659a03a052", kill_on_drop: false }`
[INFO] [stderr] warning: unexpected `cfg` condition name: `no_std`
[INFO] [stderr]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:143:21
[INFO] [stderr]     |
[INFO] [stderr] 143 | #[cfg(all(test, not(no_std)))]
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: expected names are: `docsrs`, `feature`, and `test` and 31 more
[INFO] [stderr]     = help: consider using a Cargo feature instead
[INFO] [stderr]     = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint:
[INFO] [stderr]              [lints.rust]
[INFO] [stderr]              unexpected_cfgs = { level = "warn", check-cfg = ['cfg(no_std)'] }
[INFO] [stderr]     = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(no_std)");` to the top of the `build.rs`
[INFO] [stderr]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stderr]     = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawMpsc` is never constructed
[INFO] [stderr]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct RawMpsc<T> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `push`, and `pop` are never used
[INFO] [stderr]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl<T: Debug> RawMpsc<T> {
[INFO] [stderr]    | ------------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn new(capacity: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 56 |     pub fn push(&self, data: T) -> Result<(), T> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 91 |     pub fn pop(&self) -> Option<T> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SlotArr` is never constructed
[INFO] [stderr]   --> src/mpsc/bounded_mpsc/slot_arr.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct SlotArr<T> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `init_slots`, `set`, and `unset` are never used
[INFO] [stderr]   --> src/mpsc/bounded_mpsc/slot_arr.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 16 | impl<T> SlotArr<T> {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 17 |     pub fn new(capacity: usize) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 24 |     fn init_slots(ptr: NonNull<Slot<T>>, capacity: usize) {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 32 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn unset(&self, index: usize) -> Result<T, ()> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawMpsc` is never constructed
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct RawMpsc<T> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `wait_for_seg_alloc`, `push`, `pop`, `segment_push`, and `segment_pop` are never used
[INFO] [stderr]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:19:12
[INFO] [stderr]     |
[INFO] [stderr]  18 | impl<T: Debug> RawMpsc<T> {
[INFO] [stderr]     | ------------------------- associated items in this implementation
[INFO] [stderr]  19 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  32 |     fn wait_for_seg_alloc(&self){
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  38 |     pub fn push(&self, mut data: T) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  62 |     pub fn pop(&self) -> Option<T> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  83 |     fn segment_push(segment: &Segment<T>, data: T) -> Result<(), T> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 110 |     fn segment_pop(segment: &Segment<T>) -> Option<T> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SEGMENT_SIZE` is never used
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:12:18
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub(crate) const SEGMENT_SIZE: usize = 128;
[INFO] [stderr]    |                  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Segment` is never constructed
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct Segment<T> {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `layout`, `set`, `unset`, `set_unchecked`, and `unset_unchecked` are never used
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl<T> Segment<T> {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 22 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     const fn layout() -> Layout {
[INFO] [stderr]    |              ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 50 |     pub fn set(&self, index: usize, data: T) -> Result<(), T> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn unset(&self, index: usize) -> Option<T> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub unsafe fn set_unchecked(&self, index: usize, data: T) {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     pub unsafe fn unset_unchecked(&self, index: usize) -> T {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Slot` is never constructed
[INFO] [stderr]   --> src/mpsc/slot.rs:21:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub struct Slot<T> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `set`, `unset`, `unchecked_set`, and `unchecked_unset` are never used
[INFO] [stderr]    --> src/mpsc/slot.rs:43:12
[INFO] [stderr]     |
[INFO] [stderr]  28 | impl<T> Slot<T> {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  43 |     pub fn set(&self, data: T) -> Result<(), T> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  67 |     pub fn unset(&self) -> Result<T, ()> {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  88 |     pub unsafe fn unchecked_set(&self, data: T) {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     pub unsafe fn unchecked_unset(&self) -> T {
[INFO] [stderr]     |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `READY` is never used
[INFO] [stderr]    --> src/mpsc/slot.rs:107:18
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub(super) const READY: u8 = 0; // Slot is empty
[INFO] [stderr]     |                  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `RESERVED` is never used
[INFO] [stderr]    --> src/mpsc/slot.rs:108:7
[INFO] [stderr]     |
[INFO] [stderr] 108 | const RESERVED: u8 = 1; // Slot is reserved for writing
[INFO] [stderr]     |       ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `REGISTERED` is never used
[INFO] [stderr]    --> src/mpsc/slot.rs:109:7
[INFO] [stderr]     |
[INFO] [stderr] 109 | const REGISTERED: u8 = 2; // Slot contains data
[INFO] [stderr]     |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]   --> src/mpsc/bounded_mpsc/raw_mpsc.rs:64:26
[INFO] [stderr]    |
[INFO] [stderr] 64 |                 unsafe { transmute::<isize, usize>(-((next_head < self.slots.capacity) as isize)) };
[INFO] [stderr]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:100:25
[INFO] [stderr]     |
[INFO] [stderr] 100 |                         transmute::<isize, usize>(-((next_tail < self.slots.capacity) as isize))
[INFO] [stderr]     |                         -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                         |
[INFO] [stderr]     |                         help: replace this with: `isize::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/mpsc/bounded_mpsc/raw_mpsc.rs:130:30
[INFO] [stderr]     |
[INFO] [stderr] 130 |                     unsafe { transmute::<isize, usize>(-((next < self.slots.capacity) as isize)) };
[INFO] [stderr]     |                              -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                              |
[INFO] [stderr]     |                              help: replace this with: `isize::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:90:26
[INFO] [stderr]    |
[INFO] [stderr] 90 |                 unsafe { transmute::<isize, usize>(-((next_unbound < SEGMENT_SIZE) as isize)) };
[INFO] [stderr]    |                          -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |                          |
[INFO] [stderr]    |                          help: replace this with: `isize::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary transmute
[INFO] [stderr]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:117:37
[INFO] [stderr]     |
[INFO] [stderr] 117 |             let is_bound = unsafe { transmute::<isize, usize>(-((tail + 1 < SEGMENT_SIZE) as isize)) };
[INFO] [stderr]     |                                     -------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |                                     |
[INFO] [stderr]     |                                     help: replace this with: `isize::cast_unsigned`
[INFO] [stderr] 
[INFO] [stderr] warning: `lock-free-mpsc` (lib) generated 20 warnings (run `cargo fix --lib -p lock-free-mpsc` to apply 5 suggestions)
[INFO] [stderr] warning: function `test_multi_producer_single_consumer_basic` is never used
[INFO] [stderr]    --> src/mpsc/unbounded_mpsc/raw_mpsc.rs:175:8
[INFO] [stderr]     |
[INFO] [stderr] 175 |     fn test_multi_producer_single_consumer_basic() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `unset`, `set_unchecked`, and `unset_unchecked` are never used
[INFO] [stderr]   --> src/mpsc/unbounded_mpsc/segment_arr.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 21 | impl<T> Segment<T> {
[INFO] [stderr]    | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 58 |     pub fn unset(&self, index: usize) -> Option<T> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub unsafe fn set_unchecked(&self, index: usize, data: T) {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     pub unsafe fn unset_unchecked(&self, index: usize) -> T {
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `lock-free-mpsc` (lib test) generated 8 warnings (6 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lock_free_mpsc-a1e43b5fcf17eb35)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::free_drop_test ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_basic_push_pop ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_capacity_one_behavior ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_order_preserved_single_thread ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_pop_from_empty ... ok
[INFO] [stdout] test mpsc::slot::tests::test_set_failure_when_not_ready ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_custom_struct_message ... ok
[INFO] [stdout] test mpsc::slot::tests::test_unset_failure_when_not_registered ... ok
[INFO] [stdout] test mpsc::slot::tests::test_set_and_unset_success ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_push_until_full ... ok
[INFO] [stdout] test mpsc::slot::tests::test_unchecked_set_and_unset ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_push_pop_single_thread ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_pop_after_exhaustion ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_pop_empty_queue ... ok
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_degenerate_capacity_zero ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_multiple_push_pop_single_thread ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_multi_producer_with_delay ... FAILED
[INFO] [stdout] test mpsc::bounded_mpsc::raw_mpsc::tests::test_multi_producer_single_consumer ... ok
[INFO] [stdout] test mpsc::unbounded_mpsc::raw_mpsc::tests::test_stress_multi_producer_single_consumer has been running for over 60 seconds
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/target/debug/deps/lock_free_mpsc-a1e43b5fcf17eb35` (signal: 9, SIGKILL: kill)
[INFO] running `Command { std: "docker" "inspect" "1460b7a01c4054ff8d9ef34cf0d31d103169a0a75f08b3631eef67659a03a052", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1460b7a01c4054ff8d9ef34cf0d31d103169a0a75f08b3631eef67659a03a052", kill_on_drop: false }`
[INFO] [stdout] 1460b7a01c4054ff8d9ef34cf0d31d103169a0a75f08b3631eef67659a03a052
