[INFO] fetching crate brug 0.3.0-alpha0... [INFO] testing brug-0.3.0-alpha0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7 [INFO] extracting crate brug 0.3.0-alpha0 into /workspace/builds/worker-3-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-3-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate brug 0.3.0-alpha0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 12 packages to latest compatible versions [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9c3a723db3cab229ab6e576aeae138d64c7653bd0621452436de5aa65d8671a1 [INFO] running `Command { std: "docker" "start" "-a" "9c3a723db3cab229ab6e576aeae138d64c7653bd0621452436de5aa65d8671a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9c3a723db3cab229ab6e576aeae138d64c7653bd0621452436de5aa65d8671a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9c3a723db3cab229ab6e576aeae138d64c7653bd0621452436de5aa65d8671a1", kill_on_drop: false }` [INFO] [stdout] 9c3a723db3cab229ab6e576aeae138d64c7653bd0621452436de5aa65d8671a1 [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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 855decb409b3eaa33e082ba08c1c436485a32de0421e4d176e6e3b2e35177320 [INFO] running `Command { std: "docker" "start" "-a" "855decb409b3eaa33e082ba08c1c436485a32de0421e4d176e6e3b2e35177320", 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 + 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 + 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; [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; [INFO] [stdout] 22 + fn receive(self) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] running `Command { std: "docker" "inspect" "855decb409b3eaa33e082ba08c1c436485a32de0421e4d176e6e3b2e35177320", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "855decb409b3eaa33e082ba08c1c436485a32de0421e4d176e6e3b2e35177320", kill_on_drop: false }` [INFO] [stdout] 855decb409b3eaa33e082ba08c1c436485a32de0421e4d176e6e3b2e35177320 [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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 072cb8f097ed194a90161d1a0db90c680bdb55e6e5105a3984f4445bb6416607 [INFO] running `Command { std: "docker" "start" "-a" "072cb8f097ed194a90161d1a0db90c680bdb55e6e5105a3984f4445bb6416607", 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 + 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 + 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; [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; [INFO] [stdout] 22 + fn receive(self) -> impl std::future::Future> + 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: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 + 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 + 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; [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; [INFO] [stdout] 22 + fn receive(self) -> impl std::future::Future> + Send; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] running `Command { std: "docker" "inspect" "072cb8f097ed194a90161d1a0db90c680bdb55e6e5105a3984f4445bb6416607", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "072cb8f097ed194a90161d1a0db90c680bdb55e6e5105a3984f4445bb6416607", kill_on_drop: false }` [INFO] [stdout] 072cb8f097ed194a90161d1a0db90c680bdb55e6e5105a3984f4445bb6416607 [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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fdccc5141a8588b51979c83f8520cadd401d5ea78fd3f4ef55ea0ee7cc73f025 [INFO] running `Command { std: "docker" "start" "-a" "fdccc5141a8588b51979c83f8520cadd401d5ea78fd3f4ef55ea0ee7cc73f025", 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 + 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 + 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; [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; [INFO] [stderr] 22 + fn receive(self) -> impl std::future::Future> + 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-cd883a6e5ca6ca7a) [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] 11 | 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] 40 | #[cfg(feature = "tokio")] [INFO] [stdout] | ----------------- the item is gated behind the `tokio` feature [INFO] [stdout] 41 | pub mod 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] 15 | #[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] 6 | #[cfg(feature = "macros")] [INFO] [stdout] | ------------------ the item is gated behind the `macros` feature [INFO] [stdout] 7 | pub use brug_macros::performer; [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] 36 | #[::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] 3 | #[cfg(feature = "async_trait")] [INFO] [stdout] | ----------------------- the item is gated behind the `async_trait` feature [INFO] [stdout] 4 | pub use async_trait::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] 47 | #[::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] 3 | #[cfg(feature = "async_trait")] [INFO] [stdout] | ----------------------- the item is gated behind the `async_trait` feature [INFO] [stdout] 4 | pub use async_trait::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] 58 | #[::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] 3 | #[cfg(feature = "async_trait")] [INFO] [stdout] | ----------------------- the item is gated behind the `async_trait` feature [INFO] [stdout] 4 | pub use async_trait::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] 69 | #[::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] 3 | #[cfg(feature = "async_trait")] [INFO] [stdout] | ----------------------- the item is gated behind the `async_trait` feature [INFO] [stdout] 4 | pub use async_trait::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] 37 | impl ::brug::Performer 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] 32 | pub enum MyStructCommand { [INFO] [stdout] | ^^^^^^^^^^^^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 37 | impl ::brug::Performer> for MyStruct { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/lib.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | assert_eq!(r.receive().await.expect("command got dropped before processed"), 3); [INFO] [stdout] | ^ cannot infer type [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/lib.rs:28:14 [INFO] [stdout] | [INFO] [stdout] 28 | assert_eq!(r.receive().await.expect("command got dropped before processed"), 3); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] error[E0107]: missing generics for enum `MyStructCommand` [INFO] [stdout] --> src/lib.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | 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] 32 | pub enum MyStructCommand { [INFO] [stdout] | ^^^^^^^^^^^^^^^ - [INFO] [stdout] help: add missing generic argument [INFO] [stdout] | [INFO] [stdout] 38 | async fn perform(&mut self, command: MyStructCommand) { [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] 13 | struct MyStruct; [INFO] [stdout] | --------------- doesn't satisfy `MyStruct: MyStructFacade<_>` or `MyStruct: MyStructFacadeMut<_>` [INFO] [stdout] ... [INFO] [stdout] 41 | ::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] [stdout] 17 | 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] 70 | impl + Send + Sync> MyStructFacadeMut 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] 48 | pub trait MyStructFacade { [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 `::Receiver` in the current scope [INFO] [stdout] --> src/lib.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | return r.receive().await.expect("add didn't return a value"); [INFO] [stdout] | ^^^^^^^ method not found in `::Receiver` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/workdir/src/lib.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | async fn receive(self) -> Option; [INFO] [stdout] | ------- the method is available for `::Receiver` 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] 9 + use crate::brug::Receiver; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/lib.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | return r.receive().await.expect("add didn't return a value"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ cannot infer type [INFO] [stdout] [INFO] [stdout] error[E0599]: no method named `receive` found for associated type `::Receiver` in the current scope [INFO] [stdout] --> src/lib.rs:63:14 [INFO] [stdout] | [INFO] [stdout] 63 | return r.receive().await.expect("add didn't return a value"); [INFO] [stdout] | ^^^^^^^ method not found in `::Receiver` [INFO] [stdout] | [INFO] [stdout] ::: /opt/rustwide/workdir/src/lib.rs:22:14 [INFO] [stdout] | [INFO] [stdout] 22 | async fn receive(self) -> Option; [INFO] [stdout] | ------- the method is available for `::Receiver` 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] 9 + use crate::brug::Receiver; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0282]: type annotations needed [INFO] [stdout] --> src/lib.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | return r.receive().await.expect("add didn't return a value"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ cannot infer type [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] 22 | 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] 71 | async fn handle(&mut self, command: MyStructCommand) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 72 | 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 17 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0107, E0282, 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.23s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "fdccc5141a8588b51979c83f8520cadd401d5ea78fd3f4ef55ea0ee7cc73f025", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fdccc5141a8588b51979c83f8520cadd401d5ea78fd3f4ef55ea0ee7cc73f025", kill_on_drop: false }` [INFO] [stdout] fdccc5141a8588b51979c83f8520cadd401d5ea78fd3f4ef55ea0ee7cc73f025