[INFO] fetching crate weev 0.4.3...
[INFO] testing weev-0.4.3 against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739-1
[INFO] extracting crate weev 0.4.3 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate weev 0.4.3
[INFO] finished tweaking crates.io crate weev 0.4.3
[INFO] tweaked toml for crates.io crate weev 0.4.3 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate weev 0.4.3 on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate weev 0.4.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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded futures-core v0.3.30
[INFO] [stderr]   Downloaded embedded-io-async v0.6.1
[INFO] [stderr]   Downloaded mutex_trait2 v0.4.3
[INFO] [stderr]   Downloaded whisk v0.13.0
[INFO] [stderr]   Downloaded ahash v0.8.11
[INFO] [stderr]   Downloaded once_map v0.4.19
[INFO] [stderr]   Downloaded parking v2.2.0
[INFO] [stderr]   Downloaded futures-io v0.3.30
[INFO] [stderr]   Downloaded fastrand v2.1.1
[INFO] [stderr]   Downloaded pin-project-lite v0.2.14
[INFO] [stderr]   Downloaded zerocopy-derive v0.7.35
[INFO] [stderr]   Downloaded proc-macro2 v1.0.86
[INFO] [stderr]   Downloaded once_cell v1.19.0
[INFO] [stderr]   Downloaded futures-lite v2.3.0
[INFO] [stderr]   Downloaded zerocopy v0.7.35
[INFO] [stderr]   Downloaded syn v2.0.77
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 51a66f78d739e8fe2a1887b2da91e0f769da80e64894b44097b4d65d33eaedbe
[INFO] running `Command { std: "docker" "start" "-a" "51a66f78d739e8fe2a1887b2da91e0f769da80e64894b44097b4d65d33eaedbe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "51a66f78d739e8fe2a1887b2da91e0f769da80e64894b44097b4d65d33eaedbe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "51a66f78d739e8fe2a1887b2da91e0f769da80e64894b44097b4d65d33eaedbe", kill_on_drop: false }`
[INFO] [stdout] 51a66f78d739e8fe2a1887b2da91e0f769da80e64894b44097b4d65d33eaedbe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 99795bf65ebfc46e252a7b58cabe71a25975f381668eac7cb52276d802af688d
[INFO] running `Command { std: "docker" "start" "-a" "99795bf65ebfc46e252a7b58cabe71a25975f381668eac7cb52276d802af688d", kill_on_drop: false }`
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling embedded-io v0.6.1
[INFO] [stderr]    Compiling mutex_trait2 v0.4.3
[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.25s
[INFO] running `Command { std: "docker" "inspect" "99795bf65ebfc46e252a7b58cabe71a25975f381668eac7cb52276d802af688d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "99795bf65ebfc46e252a7b58cabe71a25975f381668eac7cb52276d802af688d", kill_on_drop: false }`
[INFO] [stdout] 99795bf65ebfc46e252a7b58cabe71a25975f381668eac7cb52276d802af688d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cb3b10f1576376b6134e07e5a9123323ae941d3da523a7d3f06c7ba4bc7e99f1
[INFO] running `Command { std: "docker" "start" "-a" "cb3b10f1576376b6134e07e5a9123323ae941d3da523a7d3f06c7ba4bc7e99f1", kill_on_drop: false }`
[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]    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 `test` profile [unoptimized + debuginfo] target(s) in 0.41s
[INFO] running `Command { std: "docker" "inspect" "cb3b10f1576376b6134e07e5a9123323ae941d3da523a7d3f06c7ba4bc7e99f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cb3b10f1576376b6134e07e5a9123323ae941d3da523a7d3f06c7ba4bc7e99f1", kill_on_drop: false }`
[INFO] [stdout] cb3b10f1576376b6134e07e5a9123323ae941d3da523a7d3f06c7ba4bc7e99f1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] f1c8eaad76990fdc1235031e5bc34afdbcd9eabc24df6835b083581e7d27b967
[INFO] running `Command { std: "docker" "start" "-a" "f1c8eaad76990fdc1235031e5bc34afdbcd9eabc24df6835b083581e7d27b967", 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-9fbf42e568806993)
[INFO] [stderr]    Doc-tests weev
[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] [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" "f1c8eaad76990fdc1235031e5bc34afdbcd9eabc24df6835b083581e7d27b967", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1c8eaad76990fdc1235031e5bc34afdbcd9eabc24df6835b083581e7d27b967", kill_on_drop: false }`
[INFO] [stdout] f1c8eaad76990fdc1235031e5bc34afdbcd9eabc24df6835b083581e7d27b967
