[INFO] fetching crate brug 0.3.0-alpha0...
[INFO] testing brug-0.3.0-alpha0 against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] extracting crate brug 0.3.0-alpha0 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate brug 0.3.0-alpha0
[INFO] finished tweaking crates.io crate brug 0.3.0-alpha0
[INFO] tweaked toml for crates.io crate brug 0.3.0-alpha0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate brug 0.3.0-alpha0 on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 38 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded kanal v0.1.1
[INFO] [stderr]   Downloaded brug-macros v0.3.0-alpha0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dc6bd2f999764c3be17414981f6095c35ab5370d0df8df6666bcc6436efdce5c
[INFO] running `Command { std: "docker" "start" "-a" "dc6bd2f999764c3be17414981f6095c35ab5370d0df8df6666bcc6436efdce5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dc6bd2f999764c3be17414981f6095c35ab5370d0df8df6666bcc6436efdce5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dc6bd2f999764c3be17414981f6095c35ab5370d0df8df6666bcc6436efdce5c", kill_on_drop: false }`
[INFO] [stdout] dc6bd2f999764c3be17414981f6095c35ab5370d0df8df6666bcc6436efdce5c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a00a70c0944667f03171602bdac96b0a9c5f6f9b41c7f717b9d8307ac170e887
[INFO] running `Command { std: "docker" "start" "-a" "a00a70c0944667f03171602bdac96b0a9c5f6f9b41c7f717b9d8307ac170e887", kill_on_drop: false }`
[INFO] [stderr]    Compiling brug v0.3.0-alpha0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn perform(&mut self, command: Command);
[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] 12 -     async fn perform(&mut self, command: Command);
[INFO] [stdout] 12 +     fn perform(&mut self, command: Command) -> 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:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     async fn send(self, data: T);
[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] 17 -     async fn send(self, data: T);
[INFO] [stdout] 17 +     fn send(self, data: T) -> 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:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn receive(self) -> Option<T>;
[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 -     async fn receive(self) -> Option<T>;
[INFO] [stdout] 22 +     fn receive(self) -> impl std::future::Future<Output = Option<T>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.15s
[INFO] running `Command { std: "docker" "inspect" "a00a70c0944667f03171602bdac96b0a9c5f6f9b41c7f717b9d8307ac170e887", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a00a70c0944667f03171602bdac96b0a9c5f6f9b41c7f717b9d8307ac170e887", kill_on_drop: false }`
[INFO] [stdout] a00a70c0944667f03171602bdac96b0a9c5f6f9b41c7f717b9d8307ac170e887
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a88cd4577a7441971edaeaa5700ddc79d87c1b18dd6ea4fba46e68efa25034d6
[INFO] running `Command { std: "docker" "start" "-a" "a88cd4577a7441971edaeaa5700ddc79d87c1b18dd6ea4fba46e68efa25034d6", kill_on_drop: false }`
[INFO] [stdout] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn perform(&mut self, command: Command);
[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] 12 -     async fn perform(&mut self, command: Command);
[INFO] [stdout] 12 +     fn perform(&mut self, command: Command) -> 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:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     async fn send(self, data: T);
[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] 17 -     async fn send(self, data: T);
[INFO] [stdout] 17 +     fn send(self, data: T) -> impl std::future::Future<Output = ()> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling brug v0.3.0-alpha0 (/opt/rustwide/workdir)
[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 receive(self) -> Option<T>;
[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 -     async fn receive(self) -> Option<T>;
[INFO] [stdout] 22 +     fn receive(self) -> impl std::future::Future<Output = Option<T>> + 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:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn perform(&mut self, command: Command);
[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] 12 -     async fn perform(&mut self, command: Command);
[INFO] [stdout] 12 +     fn perform(&mut self, command: Command) -> 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:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     async fn send(self, data: T);
[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] 17 -     async fn send(self, data: T);
[INFO] [stdout] 17 +     fn send(self, data: T) -> 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:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn receive(self) -> Option<T>;
[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 -     async fn receive(self) -> Option<T>;
[INFO] [stdout] 22 +     fn receive(self) -> impl std::future::Future<Output = Option<T>> + Send;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] running `Command { std: "docker" "inspect" "a88cd4577a7441971edaeaa5700ddc79d87c1b18dd6ea4fba46e68efa25034d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a88cd4577a7441971edaeaa5700ddc79d87c1b18dd6ea4fba46e68efa25034d6", kill_on_drop: false }`
[INFO] [stdout] a88cd4577a7441971edaeaa5700ddc79d87c1b18dd6ea4fba46e68efa25034d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 70114b6beae233b7bd6ff838d69ddc30fc919d23594025f512f3080dd0aa0f75
[INFO] running `Command { std: "docker" "start" "-a" "70114b6beae233b7bd6ff838d69ddc30fc919d23594025f512f3080dd0aa0f75", kill_on_drop: false }`
[INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified
[INFO] [stderr]   --> src/lib.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 |     async fn perform(&mut self, command: Command);
[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] 12 -     async fn perform(&mut self, command: Command);
[INFO] [stderr] 12 +     fn perform(&mut self, command: Command) -> 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:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     async fn send(self, data: T);
[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] 17 -     async fn send(self, data: T);
[INFO] [stderr] 17 +     fn send(self, data: T) -> 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:22:5
[INFO] [stderr]    |
[INFO] [stderr] 22 |     async fn receive(self) -> Option<T>;
[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 -     async fn receive(self) -> Option<T>;
[INFO] [stderr] 22 +     fn receive(self) -> impl std::future::Future<Output = Option<T>> + Send;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `brug` (lib) generated 3 warnings
[INFO] [stderr] warning: `brug` (lib test) generated 3 warnings (3 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/brug-c9a9d54e1186f430)
[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] [stderr]    Doc-tests brug
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 9) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 9) stdout ----
[INFO] [stdout] error[E0432]: unresolved import `brug::tokio`
[INFO] [stdout]   --> src/lib.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 4  | use brug::{Performer, tokio::OneShot};
[INFO] [stdout]    |                       ^^^^^ could not find `tokio` in `brug`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub mod tokio {
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] note: the item is gated behind the `tokio` feature
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:40:7
[INFO] [stdout]    |
[INFO] [stdout] 40 | #[cfg(feature = "tokio")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `performer` in `brug`
[INFO] [stdout]  --> src/lib.rs:15:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | #[brug::performer]
[INFO] [stdout]   |         ^^^^^^^^^ could not find `performer` in `brug`
[INFO] [stdout]   |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]  --> /opt/rustwide/workdir/src/lib.rs:7:22
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use brug_macros::performer;
[INFO] [stdout]   |                      ^^^^^^^^^
[INFO] [stdout] note: the item is gated behind the `macros` feature
[INFO] [stdout]  --> /opt/rustwide/workdir/src/lib.rs:6:7
[INFO] [stdout]   |
[INFO] [stdout] 6 | #[cfg(feature = "macros")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `async_trait` in `brug`
[INFO] [stdout]   --> src/lib.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | #[::brug::async_trait]
[INFO] [stdout]    |           ^^^^^^^^^^^ could not find `async_trait` in `brug`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:4:22
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub use async_trait::async_trait;
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] note: the item is gated behind the `async_trait` feature
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:3:7
[INFO] [stdout]    |
[INFO] [stdout] 3  | #[cfg(feature = "async_trait")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `async_trait` in `brug`
[INFO] [stdout]   --> src/lib.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | #[::brug::async_trait]
[INFO] [stdout]    |           ^^^^^^^^^^^ could not find `async_trait` in `brug`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:4:22
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub use async_trait::async_trait;
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] note: the item is gated behind the `async_trait` feature
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:3:7
[INFO] [stdout]    |
[INFO] [stdout] 3  | #[cfg(feature = "async_trait")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `async_trait` in `brug`
[INFO] [stdout]   --> src/lib.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | #[::brug::async_trait]
[INFO] [stdout]    |           ^^^^^^^^^^^ could not find `async_trait` in `brug`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:4:22
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub use async_trait::async_trait;
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] note: the item is gated behind the `async_trait` feature
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:3:7
[INFO] [stdout]    |
[INFO] [stdout] 3  | #[cfg(feature = "async_trait")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: could not find `async_trait` in `brug`
[INFO] [stdout]   --> src/lib.rs:69:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[::brug::async_trait]
[INFO] [stdout]    |           ^^^^^^^^^^^ could not find `async_trait` in `brug`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:4:22
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub use async_trait::async_trait;
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] note: the item is gated behind the `async_trait` feature
[INFO] [stdout]   --> /opt/rustwide/workdir/src/lib.rs:3:7
[INFO] [stdout]    |
[INFO] [stdout] 3  | #[cfg(feature = "async_trait")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `MyStructCommand`
[INFO] [stdout]   --> src/lib.rs:37:24
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ::brug::Performer<MyStructCommand> for MyStruct {
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]   --> src/lib.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum MyStructCommand<T: ::brug::Transport> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl ::brug::Performer<MyStructCommand<T>> for MyStruct {
[INFO] [stdout]    |                                       +++
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: missing generics for enum `MyStructCommand`
[INFO] [stdout]   --> src/lib.rs:38:40
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn perform(&mut self, command: MyStructCommand) {
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^ expected 1 generic argument
[INFO] [stdout]    |
[INFO] [stdout] note: enum defined here, with 1 generic parameter: `T`
[INFO] [stdout]   --> src/lib.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum MyStructCommand<T: ::brug::Transport> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^ -
[INFO] [stdout] help: add missing generic argument
[INFO] [stdout]    |
[INFO] [stdout] 31 |   async fn perform(&mut self, command: MyStructCommand<T>) {
[INFO] [stdout]    |                                                       +++
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `add` exists for mutable reference `&mut MyStruct`, but its trait bounds were not satisfied
[INFO] [stdout]   --> src/lib.rs:41:41
[INFO] [stdout]    |
[INFO] [stdout] 6  | struct MyStruct;
[INFO] [stdout]    | --------------- doesn't satisfy `MyStruct: MyStructFacade<_>` or `MyStruct: MyStructFacadeMut<_>`
[INFO] [stdout] ...
[INFO] [stdout] 34 |         ::brug::Sender::send(resp, self.add(a, b)).await;
[INFO] [stdout]    |                                    -----^^^------
[INFO] [stdout]    |                                    |    |
[INFO] [stdout]    |                                    |    this is an associated function, not a method
[INFO] [stdout]    |                                    help: use associated function syntax instead: `MyStruct::add(a, b)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: found the following associated functions; to be used as methods, functions must have a `self` parameter
[INFO] [stdout] note: the candidate is defined in an impl for the type `MyStruct`
[INFO] [stdout]   --> src/lib.rs:17:3
[INFO] [stdout]    |
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] [stdout] 10 |   fn add(a: usize, b: usize) -> usize {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: the following trait bounds were not satisfied:
[INFO] [stdout]       `&mut MyStruct: MyStructFacade<_>`
[INFO] [stdout]       `MyStruct: MyStructFacade<_>`
[INFO] [stdout]   --> src/lib.rs:70:31
[INFO] [stdout]    |
[INFO] [stdout] 63 | impl<T: ::brug::Transport, F: MyStructFacade<T> + Send + Sync> MyStructFacadeMut<T> for F {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^                --------------------     -
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               unsatisfied trait bound introduced here
[INFO] [stdout] note: the trait `MyStructFacade` must be implemented
[INFO] [stdout]   --> src/lib.rs:48:1
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub trait MyStructFacade<T: ::brug::Transport> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following traits define an item `add`, perhaps you need to implement one of them:
[INFO] [stdout]            candidate #1: `MyStructFacade`
[INFO] [stdout]            candidate #2: `MyStructFacadeMut`
[INFO] [stdout]            candidate #3: `Add`
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `receive` found for associated type `<T as Transport>::Receiver<usize>` in the current scope
[INFO] [stdout]   --> src/lib.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 45 |     return r.receive().await.expect("add didn't return a value");
[INFO] [stdout]    |              ^^^^^^^ method not found in `<T as Transport>::Receiver<usize>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/lib.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn receive(self) -> Option<T>;
[INFO] [stdout]    |              ------- the method is available for `<T as Transport>::Receiver<usize>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Receiver` which provides `receive` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 2  + use crate::brug::Receiver;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `receive` found for associated type `<T as Transport>::Receiver<usize>` in the current scope
[INFO] [stdout]   --> src/lib.rs:63:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |     return r.receive().await.expect("add didn't return a value");
[INFO] [stdout]    |              ^^^^^^^ method not found in `<T as Transport>::Receiver<usize>`
[INFO] [stdout]    |
[INFO] [stdout]   ::: /opt/rustwide/workdir/src/lib.rs:22:14
[INFO] [stdout]    |
[INFO] [stdout] 22 |     async fn receive(self) -> Option<T>;
[INFO] [stdout]    |              ------- the method is available for `<T as Transport>::Receiver<usize>` here
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: trait `Receiver` which provides `receive` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]    |
[INFO] [stdout] 2  + use crate::brug::Receiver;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0752]: `main` function is not allowed to be `async`
[INFO] [stdout]   --> src/lib.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | async fn main() {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^ `main` function is not allowed to be `async`
[INFO] [stdout] 
[INFO] [stdout] error[E0733]: recursion in an async fn requires boxing
[INFO] [stdout]   --> src/lib.rs:71:3
[INFO] [stdout]    |
[INFO] [stdout] 64 |   async fn handle(&mut self, command: MyStructCommand<T>) {
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 65 |     MyStructFacadeMut::handle(self, command).await;
[INFO] [stdout]    |     ---------------------------------------------- recursive call here
[INFO] [stdout]    |
[INFO] [stdout]    = note: a recursive `async fn` call must introduce indirection such as `Box::pin` to avoid an infinitely sized future
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 13 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0107, E0432, E0433, E0599, E0733, E0752.
[INFO] [stdout] For more information about an error, try `rustc --explain E0107`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/lib.rs - (line 9)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "70114b6beae233b7bd6ff838d69ddc30fc919d23594025f512f3080dd0aa0f75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "70114b6beae233b7bd6ff838d69ddc30fc919d23594025f512f3080dd0aa0f75", kill_on_drop: false }`
[INFO] [stdout] 70114b6beae233b7bd6ff838d69ddc30fc919d23594025f512f3080dd0aa0f75
