[INFO] cloning repository https://github.com/portal-co/weev
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/portal-co/weev" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fportal-co%2Fweev", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fportal-co%2Fweev'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 87df1877471472f68e33c74f37a02c1ace50788e
[INFO] testing portal-co/weev against beta-2025-10-28 for beta-1.92-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fportal-co%2Fweev" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/portal-co/weev
[INFO] finished tweaking git repo https://github.com/portal-co/weev
[INFO] tweaked toml for git repo https://github.com/portal-co/weev written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/portal-co/weev on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/portal-co/weev 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" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 39e63f1e8a7c514ea1eb1fac1c304ec921239c6d50ed0f7b8e1caceb6c9718fe
[INFO] running `Command { std: "docker" "start" "-a" "39e63f1e8a7c514ea1eb1fac1c304ec921239c6d50ed0f7b8e1caceb6c9718fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "39e63f1e8a7c514ea1eb1fac1c304ec921239c6d50ed0f7b8e1caceb6c9718fe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "39e63f1e8a7c514ea1eb1fac1c304ec921239c6d50ed0f7b8e1caceb6c9718fe", kill_on_drop: false }`
[INFO] [stdout] 39e63f1e8a7c514ea1eb1fac1c304ec921239c6d50ed0f7b8e1caceb6c9718fe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5bc50306348f10317e8cbe5146989020d9909265f16faab0b20b456230a2e23a
[INFO] running `Command { std: "docker" "start" "-a" "5bc50306348f10317e8cbe5146989020d9909265f16faab0b20b456230a2e23a", kill_on_drop: false }`
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling embedded-io v0.6.1
[INFO] [stderr]    Compiling mutex_trait2 v0.4.3 (/opt/rustwide/workdir/mutex_trait2)
[INFO] [stderr]    Compiling futures-lite v2.3.0
[INFO] [stderr]    Compiling weev v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, and `iter`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     iter,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     ops::{Deref, DerefMut},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncMutex` and `Mutex`
[INFO] [stdout]   --> src/lib.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use mutex_trait2::{AsyncMutex, Mutex};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Write`
[INFO] [stdout]   --> src/lib.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         use embedded_io::Write;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Read`
[INFO] [stdout]   --> src/lib.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         use embedded_io::Read;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[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/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[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] 21 -     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[INFO] [stdout] 21 +     fn send_packet(&mut self, s: Sid, x: &[u8]) -> impl std::future::Future<Output = Result<(), Self::Error>> + 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/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn recv_packet(
[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] 22 ~     fn recv_packet(
[INFO] [stdout] 23 |         &mut self,
[INFO] [stdout] 24 |         b: &mut [u8],
[INFO] [stdout] 25 ~     ) -> impl std::future::Future<Output = Result<(u16, Sid), ReadExactError<Self::Error>>> + 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/lib.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     async fn push(&self, s: Sid, a: &[u8]);
[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] 90 -     async fn push(&self, s: Sid, a: &[u8]);
[INFO] [stdout] 90 +     fn push(&self, s: Sid, a: &[u8]) -> impl std::future::Future<Output = ()> + 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/lib.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[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] 91 -     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[INFO] [stdout] 91 +     fn pop(&self, s: Sid, len: usize) -> impl std::future::Future<Output = impl futures_lite::Stream<Item = u8>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.74s
[INFO] running `Command { std: "docker" "inspect" "5bc50306348f10317e8cbe5146989020d9909265f16faab0b20b456230a2e23a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5bc50306348f10317e8cbe5146989020d9909265f16faab0b20b456230a2e23a", kill_on_drop: false }`
[INFO] [stdout] 5bc50306348f10317e8cbe5146989020d9909265f16faab0b20b456230a2e23a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a7b3c60182594bec6054c1db109675cea863b8491593fb13977330f1472dc885
[INFO] running `Command { std: "docker" "start" "-a" "a7b3c60182594bec6054c1db109675cea863b8491593fb13977330f1472dc885", kill_on_drop: false }`
[INFO] [stderr]    Compiling weev v0.4.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, and `iter`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     iter,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     ops::{Deref, DerefMut},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncMutex` and `Mutex`
[INFO] [stdout]   --> src/lib.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use mutex_trait2::{AsyncMutex, Mutex};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Write`
[INFO] [stdout]   --> src/lib.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         use embedded_io::Write;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Read`
[INFO] [stdout]   --> src/lib.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         use embedded_io::Read;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[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/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[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] 21 -     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[INFO] [stdout] 21 +     fn send_packet(&mut self, s: Sid, x: &[u8]) -> impl std::future::Future<Output = Result<(), Self::Error>> + 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/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn recv_packet(
[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] 22 ~     fn recv_packet(
[INFO] [stdout] 23 |         &mut self,
[INFO] [stdout] 24 |         b: &mut [u8],
[INFO] [stdout] 25 ~     ) -> impl std::future::Future<Output = Result<(u16, Sid), ReadExactError<Self::Error>>> + 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/lib.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     async fn push(&self, s: Sid, a: &[u8]);
[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] 90 -     async fn push(&self, s: Sid, a: &[u8]);
[INFO] [stdout] 90 +     fn push(&self, s: Sid, a: &[u8]) -> impl std::future::Future<Output = ()> + 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/lib.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[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] 91 -     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[INFO] [stdout] 91 +     fn pop(&self, s: Sid, len: usize) -> impl std::future::Future<Output = impl futures_lite::Stream<Item = u8>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DerefMut`, `Deref`, and `iter`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     iter,
[INFO] [stdout]   |     ^^^^
[INFO] [stdout] 5 |     ops::{Deref, DerefMut},
[INFO] [stdout]   |           ^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AsyncMutex` and `Mutex`
[INFO] [stdout]   --> src/lib.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 | use mutex_trait2::{AsyncMutex, Mutex};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:44:13
[INFO] [stdout]    |
[INFO] [stdout] 44 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:147:13
[INFO] [stdout]     |
[INFO] [stdout] 147 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Write`
[INFO] [stdout]   --> src/lib.rs:61:13
[INFO] [stdout]    |
[INFO] [stdout] 61 |         use embedded_io::Write;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `embedded_io::Read`
[INFO] [stdout]   --> src/lib.rs:72:13
[INFO] [stdout]    |
[INFO] [stdout] 72 |         use embedded_io::Read;
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:62:13
[INFO] [stdout]    |
[INFO] [stdout] 62 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/lib.rs:73:13
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let mut lock = self;
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut lock = &mut self.queue;
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[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/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[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] 21 -     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[INFO] [stdout] 21 +     fn send_packet(&mut self, s: Sid, x: &[u8]) -> impl std::future::Future<Output = Result<(), Self::Error>> + 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/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn recv_packet(
[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] 22 ~     fn recv_packet(
[INFO] [stdout] 23 |         &mut self,
[INFO] [stdout] 24 |         b: &mut [u8],
[INFO] [stdout] 25 ~     ) -> impl std::future::Future<Output = Result<(u16, Sid), ReadExactError<Self::Error>>> + 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/lib.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     async fn push(&self, s: Sid, a: &[u8]);
[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] 90 -     async fn push(&self, s: Sid, a: &[u8]);
[INFO] [stdout] 90 +     fn push(&self, s: Sid, a: &[u8]) -> impl std::future::Future<Output = ()> + 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/lib.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[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] 91 -     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[INFO] [stdout] 91 +     fn pop(&self, s: Sid, len: usize) -> impl std::future::Future<Output = impl futures_lite::Stream<Item = u8>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.55s
[INFO] running `Command { std: "docker" "inspect" "a7b3c60182594bec6054c1db109675cea863b8491593fb13977330f1472dc885", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a7b3c60182594bec6054c1db109675cea863b8491593fb13977330f1472dc885", kill_on_drop: false }`
[INFO] [stdout] a7b3c60182594bec6054c1db109675cea863b8491593fb13977330f1472dc885
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7e85f46ebfcbe8546265d3ee015bfb27363a7f42be8e3fcb633a1012b86edfbb
[INFO] running `Command { std: "docker" "start" "-a" "7e85f46ebfcbe8546265d3ee015bfb27363a7f42be8e3fcb633a1012b86edfbb", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `DerefMut`, `Deref`, and `iter`
[INFO] [stderr]  --> src/lib.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 |     iter,
[INFO] [stderr]   |     ^^^^
[INFO] [stderr] 5 |     ops::{Deref, DerefMut},
[INFO] [stderr]   |           ^^^^^  ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `AsyncMutex` and `Mutex`
[INFO] [stderr]   --> src/lib.rs:11:20
[INFO] [stderr]    |
[INFO] [stderr] 11 | use mutex_trait2::{AsyncMutex, Mutex};
[INFO] [stderr]    |                    ^^^^^^^^^^  ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let mut lock = self;
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:44:13
[INFO] [stderr]    |
[INFO] [stderr] 44 |         let mut lock = self;
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:147:13
[INFO] [stderr]     |
[INFO] [stderr] 147 |         let mut lock = &mut self.queue;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `embedded_io::Write`
[INFO] [stderr]   --> src/lib.rs:61:13
[INFO] [stderr]    |
[INFO] [stderr] 61 |         use embedded_io::Write;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `embedded_io::Read`
[INFO] [stderr]   --> src/lib.rs:72:13
[INFO] [stderr]    |
[INFO] [stderr] 72 |         use embedded_io::Read;
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:62:13
[INFO] [stderr]    |
[INFO] [stderr] 62 |         let mut lock = self;
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/lib.rs:73:13
[INFO] [stderr]    |
[INFO] [stderr] 73 |         let mut lock = self;
[INFO] [stderr]    |             ----^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:198:13
[INFO] [stderr]     |
[INFO] [stderr] 198 |         let mut lock = &mut self.queue;
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/lib.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = 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] [stderr]    = note: `#[warn(async_fn_in_trait)]` on by default
[INFO] [stderr] 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] [stderr]    |
[INFO] [stderr] 21 -     async fn send_packet(&mut self, s: Sid, x: &[u8]) -> Result<(), Self::Error>;
[INFO] [stderr] 21 +     fn send_packet(&mut self, s: Sid, x: &[u8]) -> impl std::future::Future<Output = Result<(), Self::Error>> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/lib.rs:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     async fn recv_packet(
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = 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] [stderr] 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] [stderr]    |
[INFO] [stderr] 22 ~     fn recv_packet(
[INFO] [stderr] 23 |         &mut self,
[INFO] [stderr] 24 |         b: &mut [u8],
[INFO] [stderr] 25 ~     ) -> impl std::future::Future<Output = Result<(u16, Sid), ReadExactError<Self::Error>>> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/lib.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 90 |     async fn push(&self, s: Sid, a: &[u8]);
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = 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] [stderr] 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] [stderr]    |
[INFO] [stderr] 90 -     async fn push(&self, s: Sid, a: &[u8]);
[INFO] [stderr] 90 +     fn push(&self, s: Sid, a: &[u8]) -> impl std::future::Future<Output = ()> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/lib.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = 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] [stderr] 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] [stderr]    |
[INFO] [stderr] 91 -     async fn pop(&self, s: Sid, len: usize) -> impl futures_lite::Stream<Item = u8>;
[INFO] [stderr] 91 +     fn pop(&self, s: Sid, len: usize) -> impl std::future::Future<Output = impl futures_lite::Stream<Item = u8>> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `weev` (lib) generated 14 warnings (run `cargo fix --lib -p weev` to apply 8 suggestions)
[INFO] [stderr] warning: `weev` (lib test) generated 14 warnings (14 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/weev-322abdce126e0cc6)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests weev
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7e85f46ebfcbe8546265d3ee015bfb27363a7f42be8e3fcb633a1012b86edfbb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e85f46ebfcbe8546265d3ee015bfb27363a7f42be8e3fcb633a1012b86edfbb", kill_on_drop: false }`
[INFO] [stdout] 7e85f46ebfcbe8546265d3ee015bfb27363a7f42be8e3fcb633a1012b86edfbb
