[INFO] fetching crate weev 0.4.3...
[INFO] testing weev-0.4.3 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate weev 0.4.3 into /workspace/builds/worker-3-tc2/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-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate weev 0.4.3 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5f9f16d1fb9089ad9af75e9c75e4718c46b28f7828b7a160bb571d3d489c80f1
[INFO] running `Command { std: "docker" "start" "-a" "5f9f16d1fb9089ad9af75e9c75e4718c46b28f7828b7a160bb571d3d489c80f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f9f16d1fb9089ad9af75e9c75e4718c46b28f7828b7a160bb571d3d489c80f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f9f16d1fb9089ad9af75e9c75e4718c46b28f7828b7a160bb571d3d489c80f1", kill_on_drop: false }`
[INFO] [stdout] 5f9f16d1fb9089ad9af75e9c75e4718c46b28f7828b7a160bb571d3d489c80f1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b289db50fb55acb1a58c586fc76ddebf59907f6f68269b41e0bc5a62d48e6a2b
[INFO] running `Command { std: "docker" "start" "-a" "b289db50fb55acb1a58c586fc76ddebf59907f6f68269b41e0bc5a62d48e6a2b", kill_on_drop: false }`
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]    Compiling futures-core v0.3.30
[INFO] [stderr]    Compiling pin-project-lite v0.2.14
[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.50s
[INFO] running `Command { std: "docker" "inspect" "b289db50fb55acb1a58c586fc76ddebf59907f6f68269b41e0bc5a62d48e6a2b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b289db50fb55acb1a58c586fc76ddebf59907f6f68269b41e0bc5a62d48e6a2b", kill_on_drop: false }`
[INFO] [stdout] b289db50fb55acb1a58c586fc76ddebf59907f6f68269b41e0bc5a62d48e6a2b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c6d0e0d38f70ef9aece91a65f7031d6a4a5827f6860285618129f75abaca2fa9
[INFO] running `Command { std: "docker" "start" "-a" "c6d0e0d38f70ef9aece91a65f7031d6a4a5827f6860285618129f75abaca2fa9", 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.30s
[INFO] running `Command { std: "docker" "inspect" "c6d0e0d38f70ef9aece91a65f7031d6a4a5827f6860285618129f75abaca2fa9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6d0e0d38f70ef9aece91a65f7031d6a4a5827f6860285618129f75abaca2fa9", kill_on_drop: false }`
[INFO] [stdout] c6d0e0d38f70ef9aece91a65f7031d6a4a5827f6860285618129f75abaca2fa9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] e085533a16abbb12ba1bdbc6dbcd3b630802c42a59623255f6dcb147cc254942
[INFO] running `Command { std: "docker" "start" "-a" "e085533a16abbb12ba1bdbc6dbcd3b630802c42a59623255f6dcb147cc254942", 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.05s
[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" "e085533a16abbb12ba1bdbc6dbcd3b630802c42a59623255f6dcb147cc254942", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e085533a16abbb12ba1bdbc6dbcd3b630802c42a59623255f6dcb147cc254942", kill_on_drop: false }`
[INFO] [stdout] e085533a16abbb12ba1bdbc6dbcd3b630802c42a59623255f6dcb147cc254942
