[INFO] fetching crate ratatui-recipe 0.0.2... [INFO] testing ratatui-recipe-0.0.2 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate ratatui-recipe 0.0.2 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate ratatui-recipe 0.0.2 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate ratatui-recipe 0.0.2 [INFO] tweaked toml for crates.io crate ratatui-recipe 0.0.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate ratatui-recipe 0.0.2 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate ratatui-recipe 0.0.2 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] eda7e3d729e70b37583e02eaf4e32302f8713572702ba596ad65e1b2308283d2 [INFO] running `Command { std: "docker" "start" "-a" "eda7e3d729e70b37583e02eaf4e32302f8713572702ba596ad65e1b2308283d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "eda7e3d729e70b37583e02eaf4e32302f8713572702ba596ad65e1b2308283d2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eda7e3d729e70b37583e02eaf4e32302f8713572702ba596ad65e1b2308283d2", kill_on_drop: false }` [INFO] [stdout] eda7e3d729e70b37583e02eaf4e32302f8713572702ba596ad65e1b2308283d2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 12325c90e192ac889fc61ed107570d6afec39552031861184995621753de91dd [INFO] running `Command { std: "docker" "start" "-a" "12325c90e192ac889fc61ed107570d6afec39552031861184995621753de91dd", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling ratatui-recipe-macros v0.0.1 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling ratatui-recipe v0.0.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:21:48 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:24:34 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:26:30 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:33:68 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:34:54 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:37:55 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:38:50 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [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/page.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stdout] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> 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/page.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stdout] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> 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/page.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stdout] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> 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/page.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stdout] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> 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/page.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stdout] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> 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/page.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stdout] 16 + fn task(&mut self, router: Router, state: &mut S) -> 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/page.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [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 on_enter(&mut self, router: Router) {} [INFO] [stdout] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stdout] 27 | future::pending().await [INFO] [stdout] 28 ~ } } [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/page.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stdout] 39 | future::pending().await [INFO] [stdout] 40 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 15.96s [INFO] running `Command { std: "docker" "inspect" "12325c90e192ac889fc61ed107570d6afec39552031861184995621753de91dd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12325c90e192ac889fc61ed107570d6afec39552031861184995621753de91dd", kill_on_drop: false }` [INFO] [stdout] 12325c90e192ac889fc61ed107570d6afec39552031861184995621753de91dd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 80a9199d35098078ac348c673ea571ea7fb2cc49894a6028492605ebc017d195 [INFO] running `Command { std: "docker" "start" "-a" "80a9199d35098078ac348c673ea571ea7fb2cc49894a6028492605ebc017d195", kill_on_drop: false }` [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:21:48 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:24:34 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:26:30 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:33:68 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:34:54 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:37:55 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:38:50 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [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/page.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stdout] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> 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/page.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stdout] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> 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/page.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stdout] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> 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/page.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stdout] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> 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/page.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stdout] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> 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/page.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stdout] 16 + fn task(&mut self, router: Router, state: &mut S) -> 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/page.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [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 on_enter(&mut self, router: Router) {} [INFO] [stdout] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stdout] 27 | future::pending().await [INFO] [stdout] 28 ~ } } [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/page.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ratatui-recipe v0.0.2 (/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/page.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stdout] 39 | future::pending().await [INFO] [stdout] 40 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:21:34 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:21:48 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:22:34 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:23:33 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:24:34 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:25:35 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:26:30 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `event` [INFO] [stdout] --> src/page.rs:33:34 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:33:68 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:34:34 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:34:54 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:35:33 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:36:54 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:37:35 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:37:55 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `router` [INFO] [stdout] --> src/page.rs:38:30 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/page.rs:38:50 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [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/page.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stdout] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> 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/page.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stdout] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> 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/page.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stdout] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> 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/page.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stdout] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> 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/page.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stdout] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> 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/page.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stdout] 16 + fn task(&mut self, router: Router, state: &mut S) -> 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/page.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stdout] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 22 | async fn on_enter(&mut self, router: Router) {} [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 on_enter(&mut self, router: Router) {} [INFO] [stdout] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stdout] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stdout] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stdout] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stdout] 27 | future::pending().await [INFO] [stdout] 28 ~ } } [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/page.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stdout] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stdout] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stdout] | [INFO] [stdout] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stdout] 39 | future::pending().await [INFO] [stdout] 40 ~ } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.07s [INFO] running `Command { std: "docker" "inspect" "80a9199d35098078ac348c673ea571ea7fb2cc49894a6028492605ebc017d195", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "80a9199d35098078ac348c673ea571ea7fb2cc49894a6028492605ebc017d195", kill_on_drop: false }` [INFO] [stdout] 80a9199d35098078ac348c673ea571ea7fb2cc49894a6028492605ebc017d195 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] cdd82edd85dab4b152b9f6bb9793d4784c8f98927dda9068aa8ef5ef7bb8a689 [INFO] running `Command { std: "docker" "start" "-a" "cdd82edd85dab4b152b9f6bb9793d4784c8f98927dda9068aa8ef5ef7bb8a689", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/page.rs:21:34 [INFO] [stderr] | [INFO] [stderr] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:21:48 [INFO] [stderr] | [INFO] [stderr] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:22:34 [INFO] [stderr] | [INFO] [stderr] 22 | async fn on_enter(&mut self, router: Router) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:23:33 [INFO] [stderr] | [INFO] [stderr] 23 | async fn on_exit(&mut self, router: Router) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:24:34 [INFO] [stderr] | [INFO] [stderr] 24 | async fn on_pause(&mut self, router: Router) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:25:35 [INFO] [stderr] | [INFO] [stderr] 25 | async fn on_resume(&mut self, router: Router) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:26:30 [INFO] [stderr] | [INFO] [stderr] 26 | async fn task(&mut self, router: Router) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `event` [INFO] [stderr] --> src/page.rs:33:34 [INFO] [stderr] | [INFO] [stderr] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_event` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:33:48 [INFO] [stderr] | [INFO] [stderr] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:33:68 [INFO] [stderr] | [INFO] [stderr] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:34:34 [INFO] [stderr] | [INFO] [stderr] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:34:54 [INFO] [stderr] | [INFO] [stderr] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:35:33 [INFO] [stderr] | [INFO] [stderr] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:35:53 [INFO] [stderr] | [INFO] [stderr] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:36:34 [INFO] [stderr] | [INFO] [stderr] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:36:54 [INFO] [stderr] | [INFO] [stderr] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:37:35 [INFO] [stderr] | [INFO] [stderr] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:37:55 [INFO] [stderr] | [INFO] [stderr] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `router` [INFO] [stderr] --> src/page.rs:38:30 [INFO] [stderr] | [INFO] [stderr] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_router` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `state` [INFO] [stderr] --> src/page.rs:38:50 [INFO] [stderr] | [INFO] [stderr] 38 | async fn task(&mut self, router: Router, state: &mut State) { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] [INFO] [stderr] warning: use of `async fn` in public traits is discouraged as auto trait bounds cannot be specified [INFO] [stderr] --> src/page.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [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] 11 - async fn on_event(&mut self, event: Event, router: Router, state: &mut S); [INFO] [stderr] 11 + fn on_event(&mut self, event: Event, router: Router, state: &mut S) -> 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/page.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | async fn on_enter(&mut self, router: Router, state: &mut S); [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] 12 - async fn on_enter(&mut self, router: Router, state: &mut S); [INFO] [stderr] 12 + fn on_enter(&mut self, router: Router, state: &mut S) -> 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/page.rs:13:5 [INFO] [stderr] | [INFO] [stderr] 13 | async fn on_exit(&mut self, router: Router, state: &mut S); [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] 13 - async fn on_exit(&mut self, router: Router, state: &mut S); [INFO] [stderr] 13 + fn on_exit(&mut self, router: Router, state: &mut S) -> 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/page.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | async fn on_pause(&mut self, router: Router, state: &mut S); [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] 14 - async fn on_pause(&mut self, router: Router, state: &mut S); [INFO] [stderr] 14 + fn on_pause(&mut self, router: Router, state: &mut S) -> 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/page.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | async fn on_resume(&mut self, router: Router, state: &mut S); [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] 15 - async fn on_resume(&mut self, router: Router, state: &mut S); [INFO] [stderr] 15 + fn on_resume(&mut self, router: Router, state: &mut S) -> 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/page.rs:16:5 [INFO] [stderr] | [INFO] [stderr] 16 | async fn task(&mut self, router: Router, state: &mut S); [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] 16 - async fn task(&mut self, router: Router, state: &mut S); [INFO] [stderr] 16 + fn task(&mut self, router: Router, state: &mut S) -> 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/page.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | async fn on_event(&mut self, event: Event, router: Router) {} [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] 21 - async fn on_event(&mut self, event: Event, router: Router) {} [INFO] [stderr] 21 + fn on_event(&mut self, event: Event, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | async fn on_enter(&mut self, router: Router) {} [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 on_enter(&mut self, router: Router) {} [INFO] [stderr] 22 + fn on_enter(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | async fn on_exit(&mut self, router: Router) {} [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] 23 - async fn on_exit(&mut self, router: Router) {} [INFO] [stderr] 23 + fn on_exit(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | async fn on_pause(&mut self, router: Router) {} [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] 24 - async fn on_pause(&mut self, router: Router) {} [INFO] [stderr] 24 + fn on_pause(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | async fn on_resume(&mut self, router: Router) {} [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] 25 - async fn on_resume(&mut self, router: Router) {} [INFO] [stderr] 25 + fn on_resume(&mut self, router: Router) -> impl std::future::Future + Send { async {} } [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/page.rs:26:5 [INFO] [stderr] | [INFO] [stderr] 26 | async fn task(&mut self, router: Router) { [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] 26 ~ fn task(&mut self, router: Router) -> impl std::future::Future + Send {async { [INFO] [stderr] 27 | future::pending().await [INFO] [stderr] 28 ~ } } [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/page.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [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] 33 - async fn on_event(&mut self, event: Event, router: Router, state: &mut State) {} [INFO] [stderr] 33 + fn on_event(&mut self, event: Event, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | async fn on_enter(&mut self, router: Router, state: &mut State) {} [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] 34 - async fn on_enter(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] 34 + fn on_enter(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:35:5 [INFO] [stderr] | [INFO] [stderr] 35 | async fn on_exit(&mut self, router: Router, state: &mut State) {} [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] 35 - async fn on_exit(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] 35 + fn on_exit(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:36:5 [INFO] [stderr] | [INFO] [stderr] 36 | async fn on_pause(&mut self, router: Router, state: &mut State) {} [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] 36 - async fn on_pause(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] 36 + fn on_pause(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | async fn on_resume(&mut self, router: Router, state: &mut State) {} [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] 37 - async fn on_resume(&mut self, router: Router, state: &mut State) {} [INFO] [stderr] 37 + fn on_resume(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send { async {} } [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/page.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | async fn task(&mut self, router: Router, state: &mut State) { [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] 38 ~ fn task(&mut self, router: Router, state: &mut State) -> impl std::future::Future + Send {async { [INFO] [stderr] 39 | future::pending().await [INFO] [stderr] 40 ~ } } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ratatui-recipe` (lib) generated 38 warnings (run `cargo fix --lib -p ratatui-recipe` to apply 20 suggestions) [INFO] [stderr] warning: `ratatui-recipe` (lib test) generated 38 warnings (38 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ratatui_recipe-5ca035bd8518dc38) [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 ratatui_recipe [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" "cdd82edd85dab4b152b9f6bb9793d4784c8f98927dda9068aa8ef5ef7bb8a689", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cdd82edd85dab4b152b9f6bb9793d4784c8f98927dda9068aa8ef5ef7bb8a689", kill_on_drop: false }` [INFO] [stdout] cdd82edd85dab4b152b9f6bb9793d4784c8f98927dda9068aa8ef5ef7bb8a689