[INFO] fetching crate fast 0.1.3... [INFO] testing fast-0.1.3 against try#8de4c7234dd9b97c9d76b58671343fdbbc9a433e+target=x86_64-unknown-linux-musl for musl_upgrade_1_2_5_with_libc_patch_0 [INFO] extracting crate fast 0.1.3 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate fast 0.1.3 [INFO] finished tweaking crates.io crate fast 0.1.3 [INFO] tweaked toml for crates.io crate fast 0.1.3 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate fast 0.1.3 on toolchain 8de4c7234dd9b97c9d76b58671343fdbbc9a433e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate fast 0.1.3 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" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fast-macro v0.0.2 [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d9a0b8ea943354451928722f4142a260006ca515974504e72dff8202d1a36d0e [INFO] running `Command { std: "docker" "start" "-a" "d9a0b8ea943354451928722f4142a260006ca515974504e72dff8202d1a36d0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d9a0b8ea943354451928722f4142a260006ca515974504e72dff8202d1a36d0e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d9a0b8ea943354451928722f4142a260006ca515974504e72dff8202d1a36d0e", kill_on_drop: false }` [INFO] [stdout] d9a0b8ea943354451928722f4142a260006ca515974504e72dff8202d1a36d0e [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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+8de4c7234dd9b97c9d76b58671343fdbbc9a433e" "build" "--frozen" "--message-format=json" "--target" "x86_64-unknown-linux-musl", kill_on_drop: false }` [INFO] [stdout] 421811b2d338b844a4bbef71b7d352048af8f101f0d6987367f6b87ce3a127c8 [INFO] running `Command { std: "docker" "start" "-a" "421811b2d338b844a4bbef71b7d352048af8f101f0d6987367f6b87ce3a127c8", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.14 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling quote v1.0.38 [INFO] [stderr] Compiling syn v2.0.96 [INFO] [stderr] Compiling pin-project-internal v1.1.8 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Compiling fast-macro v0.0.2 [INFO] [stderr] Compiling derive_more v1.0.0 [INFO] [stderr] Compiling pin-project v1.1.8 [INFO] [stderr] Compiling fast v0.1.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes [INFO] [stdout] --> src/lib.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | generic_const_exprs, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #76560 for more information [INFO] [stdout] = note: `#[warn(incomplete_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WrappingAdd` [INFO] [stdout] --> src/lib.rs:17:23 [INFO] [stdout] | [INFO] [stdout] 17 | use num_traits::{Num, WrappingAdd}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `paste::paste` [INFO] [stdout] --> src/lib.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use paste::paste; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JoinExt` [INFO] [stdout] --> src/lib.rs:21:10 [INFO] [stdout] | [INFO] [stdout] 21 | Act, JoinExt, Local, Task, block_on, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `intrinsics::simd::*` and `ops::*` [INFO] [stdout] --> src/lib.rs:24:11 [INFO] [stdout] | [INFO] [stdout] 24 | use std::{intrinsics::simd::*, ops::*}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/collections/array.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::mem::{self, MaybeUninit}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/collections/array.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | use std::ptr::{self, NonNull}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rc::Weak` [INFO] [stdout] --> src/collections/queue.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | rc::Weak, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering`, `convert::identity`, and `iter` [INFO] [stdout] --> src/collections/skip.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | cmp::Ordering, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 5 | convert::identity, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 6 | iter, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Pcg`, `Random`, `prelude::Vector`, and `self` [INFO] [stdout] --> src/collections/skip.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | prelude::Vector, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 17 | rng::{self, Pcg, Random, random}, [INFO] [stdout] | ^^^^ ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `list::Iter` [INFO] [stdout] --> src/collections/skip.rs:645:23 [INFO] [stdout] | [INFO] [stdout] 645 | use super::{List, list::Iter}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DerefMut` and `Deref` [INFO] [stdout] --> src/math/vector.rs:1:27 [INFO] [stdout] | [INFO] [stdout] 1 | use derive_more::derive::{Deref, DerefMut}; [INFO] [stdout] | ^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Simd` [INFO] [stdout] --> src/math/vector.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | use crate::Simd; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around const expression [INFO] [stdout] --> src/math/vector.rs:346:14 [INFO] [stdout] | [INFO] [stdout] 346 | [(); { DIM * DIM }]: Sized, [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 346 - [(); { DIM * DIM }]: Sized, [INFO] [stdout] 346 + [(); DIM * DIM]: Sized, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around const expression [INFO] [stdout] --> src/math/vector.rs:348:30 [INFO] [stdout] | [INFO] [stdout] 348 | type Indices = [u32; { DIM * DIM }]; [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] help: remove these braces [INFO] [stdout] | [INFO] [stdout] 348 - type Indices = [u32; { DIM * DIM }]; [INFO] [stdout] 348 + type Indices = [u32; DIM * DIM]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Bound`, `RangeBounds`, `SystemTime`, and `UNIX_EPOCH` [INFO] [stdout] --> src/rng/mod.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | ops::{Bound, RangeBounds}, [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 4 | time::{SystemTime, UNIX_EPOCH}, [INFO] [stdout] | ^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PrimInt`, `WrappingAdd`, `clamp_max`, and `clamp_min` [INFO] [stdout] --> src/rng/mod.rs:152:39 [INFO] [stdout] | [INFO] [stdout] 152 | Bounded, Float, Num, NumCast, PrimInt, WrappingAdd, clamp_max, clamp_min, real::Real, [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Neg` and `any::TypeId` [INFO] [stdout] --> src/rng/mod.rs:155:9 [INFO] [stdout] | [INFO] [stdout] 155 | any::TypeId, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 156 | marker::PhantomData, [INFO] [stdout] 157 | ops::{Bound, Neg, RangeBounds}, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/rng/mod.rs:239:35 [INFO] [stdout] | [INFO] [stdout] 239 | let mut add = (raw % (high - low)); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 239 - let mut add = (raw % (high - low)); [INFO] [stdout] 239 + let mut add = raw % (high - low); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PI` [INFO] [stdout] --> src/rng/mod.rs:281:28 [INFO] [stdout] | [INFO] [stdout] 281 | use std::f64::consts::{PI, TAU}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Millis`, `Nanos`, and `Seconds` [INFO] [stdout] --> src/rng/mod.rs:356:33 [INFO] [stdout] | [INFO] [stdout] 356 | use crate::time::{Duration, Millis, Nanos, Seconds, TimeUnit}; [INFO] [stdout] | ^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Standard` [INFO] [stdout] --> src/rng/mod.rs:624:41 [INFO] [stdout] | [INFO] [stdout] 624 | use crate::rng::{Distribution, Rng, Standard}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Random` [INFO] [stdout] --> src/rng/mod.rs:733:25 [INFO] [stdout] | [INFO] [stdout] 733 | use super::{Branch, Random}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OnceCell`, `OnceLock`, and `self` [INFO] [stdout] --> src/rt/mod.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | cell::{OnceCell, UnsafeCell}, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 3 | marker::PhantomData, [INFO] [stdout] 4 | mem::{self, ManuallyDrop}, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 7 | Arc, OnceLock, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `select_worker` [INFO] [stdout] --> src/rt/mod.rs:18:30 [INFO] [stdout] | [INFO] [stdout] 18 | use worker::{current_worker, select_worker}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `collections::queue::Queue` and `sync::split::Split` [INFO] [stdout] --> src/rt/mod.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::{collections::queue::Queue, sync::split::Split}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `OnceLock` and `cell::UnsafeCell` [INFO] [stdout] --> src/rt/worker.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | cell::UnsafeCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 5 | Arc, OnceLock, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `bi::BiMap` and `skip::Map` [INFO] [stdout] --> src/rt/worker.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | collections::{bi::BiMap, queue::Queue, skip::Map}, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `JoinExt` [INFO] [stdout] --> src/rt/worker.rs:20:13 [INFO] [stdout] | [INFO] [stdout] 20 | use super::{JoinExt, Key, Local, Remote, SelectExt, Task, Work, block_on}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Convert`, `Nanos`, and `Seconds` [INFO] [stdout] --> src/sync/backoff.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | time::{Convert, Duration, Instant, Millis, Nanos, Seconds}, [INFO] [stdout] | ^^^^^^^ ^^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Arc` and `cell::UnsafeCell` [INFO] [stdout] --> src/sync/split.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | cell::UnsafeCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 3 | sync::{Arc, atomic::AtomicPtr}, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::pin` [INFO] [stdout] --> src/sync/yield.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::task::Poll::*` [INFO] [stdout] --> src/sync/yield.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::task::Poll::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rt::worker::current_worker` [INFO] [stdout] --> src/sync/yield.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::rt::worker::current_worker; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `waker` [INFO] [stdout] --> src/sync/yield.rs:6:23 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::rt::{poll, waker}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rt::block_on` [INFO] [stdout] --> src/sync/yield.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | rt::block_on, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::iter` [INFO] [stdout] --> src/time/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::iter; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::marker::PhantomData` [INFO] [stdout] --> src/time/mod.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::marker::PhantomData; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `List` [INFO] [stdout] --> src/time/mod.rs:9:32 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::collections::skip::{List, Map}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::rt::block_on` [INFO] [stdout] --> src/time/mod.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use crate::rt::block_on; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `pred_ref` is never read [INFO] [stdout] --> src/collections/skip.rs:266:33 [INFO] [stdout] | [INFO] [stdout] 266 | ... pred_ref = curr_ref; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `succ` is assigned to, but never used [INFO] [stdout] --> src/collections/skip.rs:519:33 [INFO] [stdout] | [INFO] [stdout] 519 | let mut succ; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_succ` instead [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `succ` is never read [INFO] [stdout] --> src/collections/skip.rs:521:29 [INFO] [stdout] | [INFO] [stdout] 521 | ... succ = target_ref.next[level].load(Acquire); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `succ` [INFO] [stdout] --> src/collections/skip.rs:535:29 [INFO] [stdout] | [INFO] [stdout] 535 | let mut succ = target_ref.next[0].load(Acquire); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_succ` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/collections/skip.rs:535:25 [INFO] [stdout] | [INFO] [stdout] 535 | let mut succ = target_ref.next[0].load(Acquire); [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rt/worker.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | let Some(mut work) = next_work().await else { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `worker` [INFO] [stdout] --> src/rt/worker.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | for worker in (0..count).map(|x| x + 1).map(WorkerId) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_worker` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Float` [INFO] [stdout] --> src/rng/mod.rs:553:22 [INFO] [stdout] | [INFO] [stdout] 553 | use num_traits::{Float, PrimInt}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Float` [INFO] [stdout] --> src/rng/mod.rs:152:18 [INFO] [stdout] | [INFO] [stdout] 152 | Bounded, Float, Num, NumCast, PrimInt, WrappingAdd, clamp_max, clamp_min, real::Real, [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `real::Real` [INFO] [stdout] --> src/rng/mod.rs:152:83 [INFO] [stdout] | [INFO] [stdout] 152 | Bounded, Float, Num, NumCast, PrimInt, WrappingAdd, clamp_max, clamp_min, real::Real, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::Random` [INFO] [stdout] --> src/rng/mod.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | use super::Random; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/collections/array.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | unsafe { [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/rng/mod.rs:143:12 [INFO] [stdout] | [INFO] [stdout] 143 | Id(unsafe { type_id::() }) [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rng/mod.rs:239:25 [INFO] [stdout] | [INFO] [stdout] 239 | let mut add = (raw % (high - low)); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d1` [INFO] [stdout] --> src/rng/mod.rs:691:27 [INFO] [stdout] | [INFO] [stdout] 691 | Self::Mix(d1, d2, w, _) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `d2` [INFO] [stdout] --> src/rng/mod.rs:691:31 [INFO] [stdout] | [INFO] [stdout] 691 | Self::Mix(d1, d2, w, _) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_d2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `w` [INFO] [stdout] --> src/rng/mod.rs:691:35 [INFO] [stdout] | [INFO] [stdout] 691 | Self::Mix(d1, d2, w, _) => { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_w` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/rt/mod.rs:262:28 [INFO] [stdout] | [INFO] [stdout] 262 | pub fn block_on(mut future: F) -> F::Output { [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/sync/backoff.rs:59:45 [INFO] [stdout] | [INFO] [stdout] 59 | extern "rust-call" fn async_call(&self, args: ()) -> Self::CallRefFuture<'_> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/sync/thread_local.rs:62:25 [INFO] [stdout] | [INFO] [stdout] 62 | .map(|cell| unsafe { cell.into_inner() }); [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/sync/thread_local.rs:90:25 [INFO] [stdout] | [INFO] [stdout] 90 | .map(|cell| unsafe { cell.into_inner() }) [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ptr` is never read [INFO] [stdout] --> src/collections/array.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct IntoIter { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 84 | ptr: NonNull, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ptr` is never read [INFO] [stdout] --> src/collections/array.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 179 | pub struct Iter<'a, T, const N: usize> { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 180 | ptr: NonNull, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `ptr` is never read [INFO] [stdout] --> src/collections/array.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 186 | pub struct IterMut<'a, T, const N: usize> { [INFO] [stdout] | ------- field in this struct [INFO] [stdout] 187 | ptr: NonNull, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `order` is never used [INFO] [stdout] --> src/collections/queue.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Ordered { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 14 | fn order(order: usize, value: T) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `version` is never read [INFO] [stdout] --> src/collections/skip.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub struct List { [INFO] [stdout] | ---- field in this struct [INFO] [stdout] 22 | version: Arc, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `chi_square_test` is never used [INFO] [stdout] --> src/rng/mod.rs:933:4 [INFO] [stdout] | [INFO] [stdout] 933 | fn chi_square_test(observed: &[u64]) -> f64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `simulate_network_conditions` is never used [INFO] [stdout] --> src/rng/mod.rs:1059:4 [INFO] [stdout] | [INFO] [stdout] 1059 | fn simulate_network_conditions() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROT` is never used [INFO] [stdout] --> src/rng/mod.rs:739:11 [INFO] [stdout] | [INFO] [stdout] 739 | const ROT: u32 = 123; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `key` is never read [INFO] [stdout] --> src/rt/mod.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct Notify { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 93 | key: Key, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/sync/split.rs:8:24 [INFO] [stdout] | [INFO] [stdout] 8 | pub struct Split(Inner); [INFO] [stdout] | ----- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this struct [INFO] [stdout] | [INFO] [stdout] = help: consider removing this field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `read`, `write`, and `log` are never read [INFO] [stdout] --> src/sync/split.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct Inner { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 14 | read: AtomicPtr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 15 | write: AtomicPtr, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | log: List, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:311:17 [INFO] [stdout] | [INFO] [stdout] 311 | (*new_node).next[0].store(succ, Release); [INFO] [stdout] | ^^--------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:311:17 [INFO] [stdout] | [INFO] [stdout] 311 | (*new_node).next[0].store(succ, Release); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[deny(dangerous_implicit_autorefs)]` on by default [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 311 | (&(*new_node).next)[0].store(succ, Release); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:313:20 [INFO] [stdout] | [INFO] [stdout] 313 | if (*pred).next[0] [INFO] [stdout] | ^^----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:313:20 [INFO] [stdout] | [INFO] [stdout] 313 | if (*pred).next[0] [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 313 | if (&(*pred).next)[0] [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:335:25 [INFO] [stdout] | [INFO] [stdout] 335 | (*new_node).next[level].store(succ, Release); [INFO] [stdout] | ^^--------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:335:25 [INFO] [stdout] | [INFO] [stdout] 335 | (*new_node).next[level].store(succ, Release); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 335 | (&(*new_node).next)[level].store(succ, Release); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:337:31 [INFO] [stdout] | [INFO] [stdout] 337 | match (*pred).next[level].compare_exchange(succ, new_node, AcqRel, Acquire) [INFO] [stdout] | ^^----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:337:31 [INFO] [stdout] | [INFO] [stdout] 337 | match (*pred).next[level].compare_exchange(succ, new_node, AcqRel, Acquire) [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 337 | match (&(*pred).next)[level].compare_exchange(succ, new_node, AcqRel, Acquire) [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:372:34 [INFO] [stdout] | [INFO] [stdout] 372 | let first = unsafe { (*head).next[0].load(Acquire) }; [INFO] [stdout] | ^^----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:372:34 [INFO] [stdout] | [INFO] [stdout] 372 | let first = unsafe { (*head).next[0].load(Acquire) }; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 372 | let first = unsafe { (&(*head).next)[0].load(Acquire) }; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:412:29 [INFO] [stdout] | [INFO] [stdout] 412 | let _ = (*head).next[level].compare_exchange(first, next, AcqRel, Acquire); [INFO] [stdout] | ^^----^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:412:29 [INFO] [stdout] | [INFO] [stdout] 412 | let _ = (*head).next[level].compare_exchange(first, next, AcqRel, Acquire); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 412 | let _ = (&(*head).next)[level].compare_exchange(first, next, AcqRel, Acquire); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:430:37 [INFO] [stdout] | [INFO] [stdout] 430 | let mut curr = unsafe { (*pred).next[0].load(Acquire) }; [INFO] [stdout] | ^^----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:430:37 [INFO] [stdout] | [INFO] [stdout] 430 | let mut curr = unsafe { (*pred).next[0].load(Acquire) }; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 430 | let mut curr = unsafe { (&(*pred).next)[0].load(Acquire) }; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:436:25 [INFO] [stdout] | [INFO] [stdout] 436 | if !(*curr).marked[0].load(Acquire) { [INFO] [stdout] | ^^----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec` [INFO] [stdout] --> src/collections/skip.rs:436:25 [INFO] [stdout] | [INFO] [stdout] 436 | if !(*curr).marked[0].load(Acquire) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 436 | if !(&(*curr).marked)[0].load(Acquire) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:441:28 [INFO] [stdout] | [INFO] [stdout] 441 | curr = (*curr).next[0].load(Acquire); [INFO] [stdout] | ^^----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:441:28 [INFO] [stdout] | [INFO] [stdout] 441 | curr = (*curr).next[0].load(Acquire); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 441 | curr = (&(*curr).next)[0].load(Acquire); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:485:29 [INFO] [stdout] | [INFO] [stdout] 485 | ... (*last_pred).next[level].compare_exchange(last, next, AcqRel, Acquire); [INFO] [stdout] | ^^---------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:485:29 [INFO] [stdout] | [INFO] [stdout] 485 | ... (*last_pred).next[level].compare_exchange(last, next, AcqRel, Acquire); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 485 | (&(*last_pred).next)[level].compare_exchange(last, next, AcqRel, Acquire); [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:569:40 [INFO] [stdout] | [INFO] [stdout] 569 | if !node.is_null() && !(*node).marked[0].load(Acquire) { [INFO] [stdout] | ^^----^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec` [INFO] [stdout] --> src/collections/skip.rs:569:40 [INFO] [stdout] | [INFO] [stdout] 569 | if !node.is_null() && !(*node).marked[0].load(Acquire) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 569 | if !node.is_null() && !(&(*node).marked)[0].load(Acquire) { [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:603:32 [INFO] [stdout] | [INFO] [stdout] 603 | curr: unsafe { (*self.head.load(Acquire)).next[0].load(Acquire) }, [INFO] [stdout] | ^^-----------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:603:32 [INFO] [stdout] | [INFO] [stdout] 603 | curr: unsafe { (*self.head.load(Acquire)).next[0].load(Acquire) }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 603 | curr: unsafe { (&(*self.head.load(Acquire)).next)[0].load(Acquire) }, [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: implicit autoref creates a reference to the dereference of a raw pointer [INFO] [stdout] --> src/collections/skip.rs:636:37 [INFO] [stdout] | [INFO] [stdout] 636 | let next = unsafe { (*current).next[0].load(Acquire) }; [INFO] [stdout] | ^^-------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this raw pointer has type `*mut Node` [INFO] [stdout] | [INFO] [stdout] = note: creating a reference requires the pointer target to be valid and imposes aliasing requirements [INFO] [stdout] note: autoref is being applied to this expression, resulting in: `&Vec>>` [INFO] [stdout] --> src/collections/skip.rs:636:37 [INFO] [stdout] | [INFO] [stdout] 636 | let next = unsafe { (*current).next[0].load(Acquire) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] help: try using a raw pointer method instead; or if this reference is intentional, make it explicit [INFO] [stdout] | [INFO] [stdout] 636 | let next = unsafe { (&(*current).next)[0].load(Acquire) }; [INFO] [stdout] | ++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/rt/mod.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn schedule(task: Task); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] = note: `#[warn(async_fn_in_trait)]` on by default [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 36 - async fn schedule(task: Task); [INFO] [stdout] 36 + fn schedule(task: Task) -> impl std::future::Future + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stdout] --> src/rt/worker.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn register(&self, worker: Worker); [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: you can suppress this lint if you plan to use the trait only in your own code, or do not care about auto traits like `Send` on the `Future` [INFO] [stdout] help: you can alternatively desugar to a normal `fn` that returns `impl Future` and add any desired bounds such as `Send`, but these cannot be relaxed without a breaking API change [INFO] [stdout] | [INFO] [stdout] 26 - async fn register(&self, worker: Worker); [INFO] [stdout] 26 + fn register(&self, worker: Worker) -> impl std::future::Future + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `fast` (lib) due to 13 previous errors; 74 warnings emitted [INFO] running `Command { std: "docker" "inspect" "421811b2d338b844a4bbef71b7d352048af8f101f0d6987367f6b87ce3a127c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "421811b2d338b844a4bbef71b7d352048af8f101f0d6987367f6b87ce3a127c8", kill_on_drop: false }` [INFO] [stdout] 421811b2d338b844a4bbef71b7d352048af8f101f0d6987367f6b87ce3a127c8