[INFO] fetching crate smelter-job-manager 0.1.0... [INFO] checking smelter-job-manager-0.1.0 against master#899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13 for pr-127827-3 [INFO] extracting crate smelter-job-manager 0.1.0 into /workspace/builds/worker-2-tc1/source [INFO] validating manifest of crates.io crate smelter-job-manager 0.1.0 on toolchain 899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate smelter-job-manager 0.1.0 [INFO] finished tweaking crates.io crate smelter-job-manager 0.1.0 [INFO] tweaked toml for crates.io crate smelter-job-manager 0.1.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 131 packages to latest compatible versions [INFO] [stderr] Adding addr2line v0.22.0 (latest: v0.24.1) [INFO] [stderr] Adding error-stack v0.4.1 (latest: v0.5.0) [INFO] [stderr] Adding gimli v0.29.0 (latest: v0.31.0) [INFO] [stderr] Adding hermit-abi v0.3.9 (latest: v0.4.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (latest: v0.6.4) [INFO] [stderr] Adding matchers v0.1.0 (latest: v0.2.0) [INFO] [stderr] Adding miniz_oxide v0.7.4 (latest: v0.8.0) [INFO] [stderr] Adding nu-ansi-term v0.46.0 (latest: v0.50.1) [INFO] [stderr] Adding regex-automata v0.1.10 (latest: v0.4.7) [INFO] [stderr] Adding regex-syntax v0.6.29 (latest: v0.8.4) [INFO] [stderr] Adding sysinfo v0.30.13 (latest: v0.31.2) [INFO] [stderr] Adding tracing-log v0.1.4 (latest: v0.2.0) [INFO] [stderr] Adding tracing-tree v0.2.5 (latest: v0.4.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0) [INFO] [stderr] Adding windows v0.52.0 (latest: v0.58.0) [INFO] [stderr] Adding windows-core v0.52.0 (latest: v0.58.0) [INFO] [stderr] Adding windows-sys v0.52.0 (latest: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded indenter v0.3.3 [INFO] [stderr] Downloaded eyre v0.6.12 [INFO] [stderr] Downloaded error-stack v0.4.1 [INFO] [stderr] Downloaded smelter-worker v0.1.1 [INFO] [stderr] Downloaded tracing-tree v0.2.5 [INFO] [stderr] Downloaded sysinfo v0.30.13 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d038ca51791e5703999b828b5aeb1cb65c23b6055513ef1db139c88ca6f495ac [INFO] running `Command { std: "docker" "start" "-a" "d038ca51791e5703999b828b5aeb1cb65c23b6055513ef1db139c88ca6f495ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d038ca51791e5703999b828b5aeb1cb65c23b6055513ef1db139c88ca6f495ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d038ca51791e5703999b828b5aeb1cb65c23b6055513ef1db139c88ca6f495ac", kill_on_drop: false }` [INFO] [stdout] d038ca51791e5703999b828b5aeb1cb65c23b6055513ef1db139c88ca6f495ac [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+899eb03926be23f2e5d2ffcaa1d6f9ac40af7f13" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bd8ce52518221471c4f6ba45c3a18ea7296f840c1d947859929864149d86353e [INFO] running `Command { std: "docker" "start" "-a" "bd8ce52518221471c4f6ba45c3a18ea7296f840c1d947859929864149d86353e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling serde v1.0.206 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling error-stack v0.4.1 [INFO] [stderr] Checking indenter v0.3.3 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling syn v2.0.73 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Compiling serde_json v1.0.122 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v1.0.1 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking num-conv v0.1.0 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking time-core v0.1.2 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking tracing-log v0.1.4 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking sysinfo v0.30.13 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Compiling serde_derive v1.0.206 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Checking tokio v1.39.2 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking tracing-tree v0.2.5 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking smelter-worker v0.1.1 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking smelter-job-manager v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait `SpawnedTaskResultExt` is never used [INFO] [stdout] --> src/spawn.rs:171:7 [INFO] [stdout] | [INFO] [stdout] 171 | trait SpawnedTaskResultExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TestError` is never constructed [INFO] [stdout] --> src/manager/tests.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | struct TestError {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `SpawnedTaskResultExt` is never used [INFO] [stdout] --> src/spawn.rs:171:7 [INFO] [stdout] | [INFO] [stdout] 171 | trait SpawnedTaskResultExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.40s [INFO] running `Command { std: "docker" "inspect" "bd8ce52518221471c4f6ba45c3a18ea7296f840c1d947859929864149d86353e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bd8ce52518221471c4f6ba45c3a18ea7296f840c1d947859929864149d86353e", kill_on_drop: false }` [INFO] [stdout] bd8ce52518221471c4f6ba45c3a18ea7296f840c1d947859929864149d86353e [INFO] checking smelter-job-manager-0.1.0 against try#71e0d7ccb3d54cfc766c826c50c8d523223fcc5c for pr-127827-3 [INFO] extracting crate smelter-job-manager 0.1.0 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate smelter-job-manager 0.1.0 on toolchain 71e0d7ccb3d54cfc766c826c50c8d523223fcc5c [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+71e0d7ccb3d54cfc766c826c50c8d523223fcc5c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate smelter-job-manager 0.1.0 [INFO] finished tweaking crates.io crate smelter-job-manager 0.1.0 [INFO] tweaked toml for crates.io crate smelter-job-manager 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+71e0d7ccb3d54cfc766c826c50c8d523223fcc5c" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 131 packages to latest compatible versions [INFO] [stderr] Adding addr2line v0.22.0 (latest: v0.24.1) [INFO] [stderr] Adding error-stack v0.4.1 (latest: v0.5.0) [INFO] [stderr] Adding gimli v0.29.0 (latest: v0.31.0) [INFO] [stderr] Adding hermit-abi v0.3.9 (latest: v0.4.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (latest: v0.6.4) [INFO] [stderr] Adding matchers v0.1.0 (latest: v0.2.0) [INFO] [stderr] Adding miniz_oxide v0.7.4 (latest: v0.8.0) [INFO] [stderr] Adding nu-ansi-term v0.46.0 (latest: v0.50.1) [INFO] [stderr] Adding regex-automata v0.1.10 (latest: v0.4.7) [INFO] [stderr] Adding regex-syntax v0.6.29 (latest: v0.8.4) [INFO] [stderr] Adding sysinfo v0.30.13 (latest: v0.31.2) [INFO] [stderr] Adding tracing-log v0.1.4 (latest: v0.2.0) [INFO] [stderr] Adding tracing-tree v0.2.5 (latest: v0.4.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.1+wasi-0.2.0) [INFO] [stderr] Adding windows v0.52.0 (latest: v0.58.0) [INFO] [stderr] Adding windows-core v0.52.0 (latest: v0.58.0) [INFO] [stderr] Adding windows-sys v0.52.0 (latest: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+71e0d7ccb3d54cfc766c826c50c8d523223fcc5c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+71e0d7ccb3d54cfc766c826c50c8d523223fcc5c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] efc5d1c28a8bc17473ac9719374e60e91adee0e34089f4666b835232ec25e219 [INFO] running `Command { std: "docker" "start" "-a" "efc5d1c28a8bc17473ac9719374e60e91adee0e34089f4666b835232ec25e219", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "efc5d1c28a8bc17473ac9719374e60e91adee0e34089f4666b835232ec25e219", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "efc5d1c28a8bc17473ac9719374e60e91adee0e34089f4666b835232ec25e219", kill_on_drop: false }` [INFO] [stdout] efc5d1c28a8bc17473ac9719374e60e91adee0e34089f4666b835232ec25e219 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+71e0d7ccb3d54cfc766c826c50c8d523223fcc5c" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 885909171cdc1a8d59fd0aa542be1bf1c0b4684b82f397fe853a2ac1019da1fd [INFO] running `Command { std: "docker" "start" "-a" "885909171cdc1a8d59fd0aa542be1bf1c0b4684b82f397fe853a2ac1019da1fd", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling serde v1.0.206 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Compiling semver v1.0.23 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Compiling error-stack v0.4.1 [INFO] [stderr] Compiling serde_json v1.0.122 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling syn v2.0.73 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking indenter v0.3.3 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking regex-syntax v0.6.29 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking mio v1.0.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking overload v0.1.1 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking nu-ansi-term v0.46.0 [INFO] [stderr] Checking sharded-slab v0.1.7 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking nanorand v0.7.0 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking num-conv v0.1.0 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking time-core v0.1.2 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking flume v0.11.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking tracing-log v0.1.4 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Checking matchers v0.1.0 [INFO] [stderr] Checking sysinfo v0.30.13 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Compiling serde_derive v1.0.206 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Checking tokio v1.39.2 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking tracing-tree v0.2.5 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking uuid v1.10.0 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking smelter-worker v0.1.1 [INFO] [stderr] Checking smelter-job-manager v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait `SpawnedTaskResultExt` is never used [INFO] [stdout] --> src/spawn.rs:171:7 [INFO] [stdout] | [INFO] [stdout] 171 | trait SpawnedTaskResultExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:178:19 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:178:19 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 179 | | event!(Level::INFO, task_id = %info.task_id, "ran task"); [INFO] [stdout] 180 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 181 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:178:28 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:178:28 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:178:28 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 179 | | event!(Level::INFO, task_id = %info.task_id, "ran task"); [INFO] [stdout] 180 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 181 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:183:16 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 183 | let task = TestTask { [INFO] [stdout] | ________________^ [INFO] [stdout] 184 | | num_stages: 3, [INFO] [stdout] 185 | | tasks_per_stage: 5, [INFO] [stdout] 186 | | spawner, [INFO] [stdout] 187 | | fail_serialize: None, [INFO] [stdout] 188 | | expect_failure: false, [INFO] [stdout] 189 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:24 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:24 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:194:24 [INFO] [stdout] | [INFO] [stdout] 178 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 194 | task.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:178:57: 178:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:219:23 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 219 | .map(|result| result.output) [INFO] [stdout] | ^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:199:19 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:199:19 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 200 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 201 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:199:28 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:199:28 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:199:28 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 200 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 201 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:203:21 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 203 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 204 | | num_stages: 1, [INFO] [stdout] 205 | | tasks_per_stage: 5, [INFO] [stdout] 206 | | spawner, [INFO] [stdout] 207 | | fail_serialize: None, [INFO] [stdout] 208 | | expect_failure: false, [INFO] [stdout] 209 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] 219 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] 219 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] 219 | | .map(|result| result.output) [INFO] [stdout] 220 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:214:22 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 214 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 215 | | .run(&manager) [INFO] [stdout] 216 | | .await [INFO] [stdout] 217 | | .expect("Run succeeded") [INFO] [stdout] 218 | | .into_iter() [INFO] [stdout] 219 | | .map(|result| result.output) [INFO] [stdout] 220 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:216:10 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 216 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:216:10 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 216 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:216:10 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 216 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 220 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:220:10 [INFO] [stdout] | [INFO] [stdout] 199 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 220 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:199:57: 199:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:270:23 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 270 | .map(|result| result.output) [INFO] [stdout] | ^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:237:19 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:237:19 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 238 | | info!("Running task {}", info.task_id); [INFO] [stdout] 239 | | let sleep_time = [INFO] [stdout] 240 | | if (info.task_id.task == 0 || info.task_id.task == 2) && info.task_id.try_num == 0 { [INFO] [stdout] ... | [INFO] [stdout] 247 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 248 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:237:28 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:237:28 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:237:28 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 238 | | info!("Running task {}", info.task_id); [INFO] [stdout] 239 | | let sleep_time = [INFO] [stdout] 240 | | if (info.task_id.task == 0 || info.task_id.task == 2) && info.task_id.try_num == 0 { [INFO] [stdout] ... | [INFO] [stdout] 247 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 248 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:250:21 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 250 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 251 | | num_stages: 2, [INFO] [stdout] 252 | | tasks_per_stage: 5, [INFO] [stdout] 253 | | spawner, [INFO] [stdout] 254 | | fail_serialize: None, [INFO] [stdout] 255 | | expect_failure: false, [INFO] [stdout] 256 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] 270 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] 270 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] 270 | | .map(|result| result.output) [INFO] [stdout] 271 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:265:22 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 265 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 266 | | .run(&manager) [INFO] [stdout] 267 | | .await [INFO] [stdout] 268 | | .expect("Run succeeded") [INFO] [stdout] 269 | | .into_iter() [INFO] [stdout] 270 | | .map(|result| result.output) [INFO] [stdout] 271 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:267:10 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 267 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:267:10 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 267 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:267:10 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 267 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:271:10 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 271 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:271:10 [INFO] [stdout] | [INFO] [stdout] 237 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 271 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:237:57: 237:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:316:23 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 316 | .map(|result| result.output) [INFO] [stdout] | ^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:290:19 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 291 | | if (info.task_id.task == 0 || info.task_id.task == 2) && info.task_id.try_num < 2 { [INFO] [stdout] 292 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 293 | | Err(TaskError::failed(info.task_id, true)) [INFO] [stdout] ... | [INFO] [stdout] 297 | | } [INFO] [stdout] 298 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:290:28 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:290:28 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:290:28 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 291 | | if (info.task_id.task == 0 || info.task_id.task == 2) && info.task_id.try_num < 2 { [INFO] [stdout] 292 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 293 | | Err(TaskError::failed(info.task_id, true)) [INFO] [stdout] ... | [INFO] [stdout] 297 | | } [INFO] [stdout] 298 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:300:21 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 300 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 301 | | num_stages: 2, [INFO] [stdout] 302 | | tasks_per_stage: 5, [INFO] [stdout] 303 | | spawner, [INFO] [stdout] 304 | | fail_serialize: None, [INFO] [stdout] 305 | | expect_failure: false, [INFO] [stdout] 306 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] 316 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] 316 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] 316 | | .map(|result| result.output) [INFO] [stdout] 317 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:311:22 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 311 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 312 | | .run(&manager) [INFO] [stdout] 313 | | .await [INFO] [stdout] 314 | | .expect("Run succeeded") [INFO] [stdout] 315 | | .into_iter() [INFO] [stdout] 316 | | .map(|result| result.output) [INFO] [stdout] 317 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 313 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 313 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:313:10 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 313 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:317:10 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 317 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:317:10 [INFO] [stdout] | [INFO] [stdout] 290 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 317 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:290:57: 290:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:336:19 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:336:19 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 337 | | if info.task_id.task == 2 { [INFO] [stdout] 338 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 339 | | Err(TaskError::failed(info.task_id, false)) [INFO] [stdout] ... | [INFO] [stdout] 343 | | } [INFO] [stdout] 344 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:336:28 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:336:28 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:336:28 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 337 | | if info.task_id.task == 2 { [INFO] [stdout] 338 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 339 | | Err(TaskError::failed(info.task_id, false)) [INFO] [stdout] ... | [INFO] [stdout] 343 | | } [INFO] [stdout] 344 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:346:21 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 346 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 347 | | num_stages: 2, [INFO] [stdout] 348 | | tasks_per_stage: 5, [INFO] [stdout] 349 | | spawner, [INFO] [stdout] 350 | | fail_serialize: None, [INFO] [stdout] 351 | | expect_failure: true, [INFO] [stdout] 352 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /rustc/71e0d7ccb3d54cfc766c826c50c8d523223fcc5c/library/core/src/result.rs:1162:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:18 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:42 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:42 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:357:42 [INFO] [stdout] | [INFO] [stdout] 336 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 357 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:336:57: 336:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:388:19 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:388:19 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 389 | | if info.task_id.task == 2 { [INFO] [stdout] 390 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 391 | | Err(TaskError::failed(info.task_id, true)) [INFO] [stdout] ... | [INFO] [stdout] 395 | | } [INFO] [stdout] 396 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:388:28 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:388:28 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:388:28 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 389 | | if info.task_id.task == 2 { [INFO] [stdout] 390 | | info!("Failing task {}", info.task_id); [INFO] [stdout] 391 | | Err(TaskError::failed(info.task_id, true)) [INFO] [stdout] ... | [INFO] [stdout] 395 | | } [INFO] [stdout] 396 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:398:21 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 398 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 399 | | num_stages: 2, [INFO] [stdout] 400 | | tasks_per_stage: 5, [INFO] [stdout] 401 | | spawner, [INFO] [stdout] 402 | | fail_serialize: None, [INFO] [stdout] 403 | | expect_failure: true, [INFO] [stdout] 404 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /rustc/71e0d7ccb3d54cfc766c826c50c8d523223fcc5c/library/core/src/result.rs:1162:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:18 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:42 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:42 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:409:42 [INFO] [stdout] | [INFO] [stdout] 388 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 409 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:388:57: 388:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:455:23 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 455 | .map(|result| result.output) [INFO] [stdout] | ^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:432:19 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:432:19 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 433 | | if info.task_id.task == 2 && info.task_id.try_num == 0 { [INFO] [stdout] 434 | | panic!("test panic") [INFO] [stdout] 435 | | } [INFO] [stdout] 436 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 437 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:432:28 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:432:28 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:432:28 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 433 | | if info.task_id.task == 2 && info.task_id.try_num == 0 { [INFO] [stdout] 434 | | panic!("test panic") [INFO] [stdout] 435 | | } [INFO] [stdout] 436 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 437 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:439:21 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 439 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 440 | | num_stages: 2, [INFO] [stdout] 441 | | tasks_per_stage: 5, [INFO] [stdout] 442 | | spawner, [INFO] [stdout] 443 | | fail_serialize: None, [INFO] [stdout] 444 | | expect_failure: false, [INFO] [stdout] 445 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] 455 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] 455 | | .map(|result| result.output) [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] 455 | | .map(|result| result.output) [INFO] [stdout] 456 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:450:22 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 450 | let mut result = task_data [INFO] [stdout] | ______________________^ [INFO] [stdout] 451 | | .run(&manager) [INFO] [stdout] 452 | | .await [INFO] [stdout] 453 | | .expect("Run succeeded") [INFO] [stdout] 454 | | .into_iter() [INFO] [stdout] 455 | | .map(|result| result.output) [INFO] [stdout] 456 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:452:10 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 452 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:452:10 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 452 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:452:10 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 452 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:456:10 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 456 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:456:10 [INFO] [stdout] | [INFO] [stdout] 432 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 456 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:432:57: 432:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:475:19 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:475:19 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 476 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 477 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:475:28 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:475:28 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:475:28 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 476 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 477 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:479:21 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 479 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 480 | | num_stages: 2, [INFO] [stdout] 481 | | tasks_per_stage: 5, [INFO] [stdout] 482 | | spawner, [INFO] [stdout] ... | [INFO] [stdout] 489 | | expect_failure: true, [INFO] [stdout] 490 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /rustc/71e0d7ccb3d54cfc766c826c50c8d523223fcc5c/library/core/src/result.rs:1162:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:18 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:42 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:42 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:495:42 [INFO] [stdout] | [INFO] [stdout] 475 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 495 | let result = task_data.run(&manager).await.expect_err("Run failed"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:475:57: 475:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:526:19 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:526:19 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 527 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 528 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:526:28 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:526:28 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:526:28 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 527 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 528 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:530:21 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 530 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 531 | | num_stages: 3, [INFO] [stdout] 532 | | tasks_per_stage: 5, [INFO] [stdout] 533 | | spawner, [INFO] [stdout] 534 | | fail_serialize: None, [INFO] [stdout] 535 | | expect_failure: false, [INFO] [stdout] 536 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:18 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:18 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:18 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:18 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:18 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:42 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:42 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:545:42 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 545 | let result = task_data.run(&manager).await.expect("Run succeeded"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:546:16 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 546 | assert_eq!(result.len(), 5); [INFO] [stdout] | ^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:546:16 [INFO] [stdout] | [INFO] [stdout] 526 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 546 | assert_eq!(result.len(), 5); [INFO] [stdout] | ^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:526:57: 526:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:593:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 593 | .map(|i| i.output) [INFO] [stdout] | ^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:571:19 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:571:19 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 572 | | let duration = 100 - (info.task_id.task * 10); [INFO] [stdout] 573 | | tokio::time::sleep(Duration::from_millis(duration as u64)).await; [INFO] [stdout] 574 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 575 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:571:28 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:571:28 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:571:28 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 572 | | let duration = 100 - (info.task_id.task * 10); [INFO] [stdout] 573 | | tokio::time::sleep(Duration::from_millis(duration as u64)).await; [INFO] [stdout] 574 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 575 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:577:21 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 577 | let task_data = TestTask { [INFO] [stdout] | _____________________^ [INFO] [stdout] 578 | | num_stages: 1, [INFO] [stdout] 579 | | tasks_per_stage: 5, [INFO] [stdout] 580 | | spawner, [INFO] [stdout] 581 | | fail_serialize: None, [INFO] [stdout] 582 | | expect_failure: false, [INFO] [stdout] 583 | | }; [INFO] [stdout] | |_____^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] | |______________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:55:26 [INFO] [stdout] | [INFO] [stdout] 55 | struct TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] | |________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] | |____________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] 593 | | .map(|i| i.output) [INFO] [stdout] | |__________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] 593 | | .map(|i| i.output) [INFO] [stdout] | |__________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] 593 | | .map(|i| i.output) [INFO] [stdout] 594 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:588:18 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 588 | let result = task_data [INFO] [stdout] | __________________^ [INFO] [stdout] 589 | | .run(&manager) [INFO] [stdout] 590 | | .await [INFO] [stdout] 591 | | .expect("Run succeeded") [INFO] [stdout] 592 | | .into_iter() [INFO] [stdout] 593 | | .map(|i| i.output) [INFO] [stdout] 594 | | .collect::>(); [INFO] [stdout] | |____________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:590:10 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 590 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:590:10 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 590 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:128:15 [INFO] [stdout] | [INFO] [stdout] 128 | impl TestTask { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:590:10 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 590 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:594:10 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 594 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:594:10 [INFO] [stdout] | [INFO] [stdout] 571 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 594 | .collect::>(); [INFO] [stdout] | ^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:571:57: 571:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:618:19 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:618:19 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ___________________^ [INFO] [stdout] 619 | | let duration = 1000; [INFO] [stdout] 620 | | tokio::time::sleep(Duration::from_millis(duration as u64)).await; [INFO] [stdout] 621 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 622 | | })); [INFO] [stdout] | |_______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:618:28 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:618:28 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:618:28 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 619 | | let duration = 1000; [INFO] [stdout] 620 | | tokio::time::sleep(Duration::from_millis(duration as u64)).await; [INFO] [stdout] 621 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 622 | | })); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:629:32 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 629 | let (stage_tx, stage_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/job.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn add_stage( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:629:32 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 629 | let (stage_tx, stage_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:629:32 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 629 | let (stage_tx, stage_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:629:48 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 629 | let (stage_tx, stage_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:629:48 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 629 | let (stage_tx, stage_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 632 | / stage_tx [INFO] [stdout] 633 | | .push(TestSubTaskDef { [INFO] [stdout] 634 | | spawn_name: "test".to_string(), [INFO] [stdout] 635 | | spawner: spawner.clone(), [INFO] [stdout] 636 | | fail_serialize: false, [INFO] [stdout] 637 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | impl JobStageTaskSender { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 632 | / stage_tx [INFO] [stdout] 633 | | .push(TestSubTaskDef { [INFO] [stdout] 634 | | spawn_name: "test".to_string(), [INFO] [stdout] 635 | | spawner: spawner.clone(), [INFO] [stdout] 636 | | fail_serialize: false, [INFO] [stdout] 637 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 632 | / stage_tx [INFO] [stdout] 633 | | .push(TestSubTaskDef { [INFO] [stdout] 634 | | spawn_name: "test".to_string(), [INFO] [stdout] 635 | | spawner: spawner.clone(), [INFO] [stdout] 636 | | fail_serialize: false, [INFO] [stdout] 637 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:633:19 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 633 | .push(TestSubTaskDef { [INFO] [stdout] | ___________________^ [INFO] [stdout] 634 | | spawn_name: "test".to_string(), [INFO] [stdout] 635 | | spawner: spawner.clone(), [INFO] [stdout] 636 | | fail_serialize: false, [INFO] [stdout] 637 | | }) [INFO] [stdout] | |_____________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:635:26 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 635 | spawner: spawner.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:638:14 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 638 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:638:14 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 638 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:24 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:79:15 [INFO] [stdout] | [INFO] [stdout] 79 | impl JobStageResultReceiver { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:24 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:24 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:24 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:24 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:43 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:648:43 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 648 | let task_results = stage_rx.collect().await.expect("done"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:649:13 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 649 | assert!(task_results.is_empty()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:649:13 [INFO] [stdout] | [INFO] [stdout] 618 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 649 | assert!(task_results.is_empty()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:618:57: 618:67}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:663:23 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:663:23 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:663:23 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 664 | | let duration = 1000; [INFO] [stdout] 665 | | [INFO] [stdout] 666 | | if info.task_id.stage == 0 && info.task_id.task == 2 { [INFO] [stdout] ... | [INFO] [stdout] 675 | | } [INFO] [stdout] 676 | | }); [INFO] [stdout] | |______^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `finished` does not live long enough [INFO] [stdout] --> src/manager/tests.rs:663:45 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________- ^ [INFO] [stdout] | |_____________________________________________| [INFO] [stdout] 664 | || let duration = 1000; [INFO] [stdout] 665 | || [INFO] [stdout] 666 | || if info.task_id.stage == 0 && info.task_id.task == 2 { [INFO] [stdout] ... || [INFO] [stdout] 675 | || } [INFO] [stdout] 676 | || }); [INFO] [stdout] | ||_____^- argument requires that `finished` is borrowed for `'static` [INFO] [stdout] | |______| [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] ... [INFO] [stdout] 735 | } [INFO] [stdout] | - `finished` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `started` does not live long enough [INFO] [stdout] --> src/manager/tests.rs:663:45 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________- ^ [INFO] [stdout] | |_____________________________________________| [INFO] [stdout] 664 | || let duration = 1000; [INFO] [stdout] 665 | || [INFO] [stdout] 666 | || if info.task_id.stage == 0 && info.task_id.task == 2 { [INFO] [stdout] ... || [INFO] [stdout] 675 | || } [INFO] [stdout] 676 | || }); [INFO] [stdout] | ||_____^- argument requires that `started` is borrowed for `'static` [INFO] [stdout] | |______| [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] ... [INFO] [stdout] 735 | } [INFO] [stdout] | - `started` dropped here while still borrowed [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:680:19 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 680 | let spawner = Arc::new(spawner); [INFO] [stdout] | ^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:680:19 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 680 | let spawner = Arc::new(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:687:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/job.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn add_stage( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:687:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:687:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:687:50 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:687:50 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:687:54 [INFO] [stdout] | [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:687:55 [INFO] [stdout] | [INFO] [stdout] 687 | let (stage1_tx, stage1_rx) = job.add_stage().await; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:688:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/job.rs:124:37 [INFO] [stdout] | [INFO] [stdout] 124 | pub async fn add_stage( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:688:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:688:34 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:688:50 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:688:50 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:688:54 [INFO] [stdout] | [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:688:55 [INFO] [stdout] | [INFO] [stdout] 688 | let (stage2_tx, stage2_rx) = job.add_stage().await; [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:691:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 691 | / stage1_tx [INFO] [stdout] 692 | | .push(TestSubTaskDef { [INFO] [stdout] 693 | | spawn_name: "test".to_string(), [INFO] [stdout] 694 | | spawner: spawner.clone(), [INFO] [stdout] 695 | | fail_serialize: false, [INFO] [stdout] 696 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | impl JobStageTaskSender { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:691:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 691 | / stage1_tx [INFO] [stdout] 692 | | .push(TestSubTaskDef { [INFO] [stdout] 693 | | spawn_name: "test".to_string(), [INFO] [stdout] 694 | | spawner: spawner.clone(), [INFO] [stdout] 695 | | fail_serialize: false, [INFO] [stdout] 696 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:691:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 691 | / stage1_tx [INFO] [stdout] 692 | | .push(TestSubTaskDef { [INFO] [stdout] 693 | | spawn_name: "test".to_string(), [INFO] [stdout] 694 | | spawner: spawner.clone(), [INFO] [stdout] 695 | | fail_serialize: false, [INFO] [stdout] 696 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:692:19 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 692 | .push(TestSubTaskDef { [INFO] [stdout] | ___________________^ [INFO] [stdout] 693 | | spawn_name: "test".to_string(), [INFO] [stdout] 694 | | spawner: spawner.clone(), [INFO] [stdout] 695 | | fail_serialize: false, [INFO] [stdout] 696 | | }) [INFO] [stdout] | |_____________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:694:26 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 694 | spawner: spawner.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:697:14 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 697 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:697:14 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 697 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:701:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 701 | / stage2_tx [INFO] [stdout] 702 | | .push(TestSubTaskDef { [INFO] [stdout] 703 | | spawn_name: "test".to_string(), [INFO] [stdout] 704 | | spawner: spawner.clone(), [INFO] [stdout] 705 | | fail_serialize: false, [INFO] [stdout] 706 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:44:15 [INFO] [stdout] | [INFO] [stdout] 44 | impl JobStageTaskSender { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:701:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 701 | / stage2_tx [INFO] [stdout] 702 | | .push(TestSubTaskDef { [INFO] [stdout] 703 | | spawn_name: "test".to_string(), [INFO] [stdout] 704 | | spawner: spawner.clone(), [INFO] [stdout] 705 | | fail_serialize: false, [INFO] [stdout] 706 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:701:9 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 701 | / stage2_tx [INFO] [stdout] 702 | | .push(TestSubTaskDef { [INFO] [stdout] 703 | | spawn_name: "test".to_string(), [INFO] [stdout] 704 | | spawner: spawner.clone(), [INFO] [stdout] 705 | | fail_serialize: false, [INFO] [stdout] 706 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:702:19 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 702 | .push(TestSubTaskDef { [INFO] [stdout] | ___________________^ [INFO] [stdout] 703 | | spawn_name: "test".to_string(), [INFO] [stdout] 704 | | spawner: spawner.clone(), [INFO] [stdout] 705 | | fail_serialize: false, [INFO] [stdout] 706 | | }) [INFO] [stdout] | |_____________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:704:26 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 704 | spawner: spawner.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:707:14 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 707 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:707:14 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 707 | .await; [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:79:15 [INFO] [stdout] | [INFO] [stdout] 79 | impl JobStageResultReceiver { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /rustc/71e0d7ccb3d54cfc766c826c50c8d523223fcc5c/library/core/src/result.rs:1162:12 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:45 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:715:45 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:715:49 [INFO] [stdout] | [INFO] [stdout] 715 | let stage1_result = stage1_rx.collect().await.expect_err("finishing stage"); [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | _________________________^ [INFO] [stdout] 723 | | .await [INFO] [stdout] 724 | | .expect("finishing stage 2 timed out") [INFO] [stdout] | |______________________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | _________________________^ [INFO] [stdout] 723 | | .await [INFO] [stdout] 724 | | .expect("finishing stage 2 timed out") [INFO] [stdout] | |______________________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | _________________________^ [INFO] [stdout] 723 | | .await [INFO] [stdout] 724 | | .expect("finishing stage 2 timed out") [INFO] [stdout] 725 | | .expect("finishing stage 2 should not erro"); [INFO] [stdout] | |____________________________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:25 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | _________________________^ [INFO] [stdout] 723 | | .await [INFO] [stdout] 724 | | .expect("finishing stage 2 timed out") [INFO] [stdout] 725 | | .expect("finishing stage 2 should not erro"); [INFO] [stdout] | |____________________________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:57 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/stage.rs:79:15 [INFO] [stdout] | [INFO] [stdout] 79 | impl JobStageResultReceiver { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:57 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:722:57 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 722 | let stage2_result = timeout(Duration::from_secs(5), stage2_rx.collect()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:723:10 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 723 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:723:10 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 723 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:723:14 [INFO] [stdout] | [INFO] [stdout] 723 | .await [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:726:30 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 726 | println!("stage2_result: {:?}", stage2_result); [INFO] [stdout] | ^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:726:30 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 726 | println!("stage2_result: {:?}", stage2_result); [INFO] [stdout] | ^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 727 | assert!(stage2_result.is_empty()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/manager/tests.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 663 | let mut spawner = InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 727 | assert!(stage2_result.is_empty()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] found `async` closure body `{async closure body@src/manager/tests.rs:663:52: 663:62}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: higher-ranked subtype error [INFO] [stdout] --> src/manager/tests.rs:735:1 [INFO] [stdout] | [INFO] [stdout] 735 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:159:23 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:159:23 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 160 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 161 | | })); [INFO] [stdout] | |___________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:159:32 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:159:32 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:159:32 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 160 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 161 | | })); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:163:60 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 163 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:163:60 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 163 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:163:60 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 163 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:165:23 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 165 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 166 | | input, [INFO] [stdout] 167 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 168 | | task_id: SubtaskId { [INFO] [stdout] ... | [INFO] [stdout] 173 | | }, [INFO] [stdout] 174 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:176:22 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 176 | let result = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:176:22 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 176 | let result = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:176:22 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 176 | let result = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:177:14 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 177 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:177:14 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 177 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:177:14 [INFO] [stdout] | [INFO] [stdout] 159 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 177 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:159:61: 159:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:190:23 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:190:23 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 191 | | futures::future::pending::<()>().await; [INFO] [stdout] 192 | | Ok::<_, TaskError>(format!("result {}", info.task_id)) [INFO] [stdout] 193 | | })); [INFO] [stdout] | |___________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:190:32 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:190:32 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:190:32 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 191 | | futures::future::pending::<()>().await; [INFO] [stdout] 192 | | Ok::<_, TaskError>(format!("result {}", info.task_id)) [INFO] [stdout] 193 | | })); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:195:59 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 195 | let (input, status_collector, cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:195:59 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 195 | let (input, status_collector, cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:195:59 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 195 | let (input, status_collector, cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:197:23 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 197 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 198 | | input, [INFO] [stdout] 199 | | task_id: SubtaskId { [INFO] [stdout] 200 | | job: TEST_JOB_UUID, [INFO] [stdout] ... | [INFO] [stdout] 205 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 206 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | F: Future + Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:20 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:27 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:20 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:39 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:39 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:208:39 [INFO] [stdout] | [INFO] [stdout] 190 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 208 | let task = tokio::task::spawn(run_subtask(tracing::Span::current(), syncs, payload)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:190:61: 190:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:227:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:227:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 228 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 229 | | })); [INFO] [stdout] | |___________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:227:32 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:227:32 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:227:32 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 228 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 229 | | })); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:231:60 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 231 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:231:60 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 231 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:231:60 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 231 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:255:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 255 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 256 | | input, [INFO] [stdout] 257 | | task_id: SubtaskId { [INFO] [stdout] 258 | | job: TEST_JOB_UUID, [INFO] [stdout] ... | [INFO] [stdout] 263 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 264 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | F: Future + Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:20 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:27 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:20 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:39 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:39 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:266:39 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 266 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 267 | | tracing::Span::current(), [INFO] [stdout] 268 | | syncs.clone(), [INFO] [stdout] 269 | | payload, [INFO] [stdout] 270 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:227:61: 227:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:301:23 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:301:23 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 302 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 303 | | })); [INFO] [stdout] | |___________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:301:32 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:301:32 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:301:32 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 302 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 303 | | })); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:305:60 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 305 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:305:60 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 305 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:305:60 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 305 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:324:23 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 324 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 325 | | input, [INFO] [stdout] 326 | | task_id: SubtaskId { [INFO] [stdout] 327 | | job: TEST_JOB_UUID, [INFO] [stdout] ... | [INFO] [stdout] 332 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 333 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | F: Future + Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:20 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:27 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:20 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:39 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:39 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:335:39 [INFO] [stdout] | [INFO] [stdout] 301 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 335 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 336 | | tracing::Span::current(), [INFO] [stdout] 337 | | syncs.clone(), [INFO] [stdout] 338 | | payload, [INFO] [stdout] 339 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:301:61: 301:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:354:23 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:354:23 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 355 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 356 | | })); [INFO] [stdout] | |___________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:354:32 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ________________________________^ [INFO] [stdout] 355 | | Ok(format!("result {}", info.task_id)) [INFO] [stdout] 356 | | })); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:358:60 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 358 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:358:60 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 358 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:358:60 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 358 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(spawner); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:375:23 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 375 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 376 | | input, [INFO] [stdout] 377 | | task_id: SubtaskId { [INFO] [stdout] 378 | | job: TEST_JOB_UUID, [INFO] [stdout] ... | [INFO] [stdout] 383 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 384 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | F: Future + Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:20 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.39.2/src/task/spawn.rs:168:27 [INFO] [stdout] | [INFO] [stdout] 168 | F::Output: Send + 'static, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:20 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | ____________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:39 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:39 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:386:39 [INFO] [stdout] | [INFO] [stdout] 354 | let spawner = Arc::new(InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 386 | let task = tokio::task::spawn(run_subtask( [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 387 | | tracing::Span::current(), [INFO] [stdout] 388 | | syncs.clone(), [INFO] [stdout] 389 | | payload, [INFO] [stdout] 390 | | )); [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:354:61: 354:71}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:410:60 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 410 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(Arc::new(spawner)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:131:35 [INFO] [stdout] | [INFO] [stdout] 131 | fn create_task_input( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:410:60 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 410 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(Arc::new(spawner)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:410:60 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 410 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(Arc::new(spawner)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:410:78 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 410 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(Arc::new(spawner)); [INFO] [stdout] | ^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:410:78 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 410 | let (input, status_collector, _cancel_tx, syncs) = create_task_input(Arc::new(spawner)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:412:23 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 412 | let payload = SubtaskPayload { [INFO] [stdout] | _______________________^ [INFO] [stdout] 413 | | input, [INFO] [stdout] 414 | | task_id: SubtaskId { [INFO] [stdout] 415 | | job: TEST_JOB_UUID, [INFO] [stdout] ... | [INFO] [stdout] 420 | | status_sender: status_collector.sender.clone(), [INFO] [stdout] 421 | | }; [INFO] [stdout] | |_________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:23:43 [INFO] [stdout] | [INFO] [stdout] 23 | pub(crate) struct SubtaskPayload { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:423:19 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 423 | let err = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/run_subtask.rs:36:42 [INFO] [stdout] | [INFO] [stdout] 36 | pub(super) async fn run_subtask( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:423:19 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 423 | let err = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:423:19 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 423 | let err = run_subtask(tracing::Span::current(), syncs, payload) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:424:14 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 424 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:424:14 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 424 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/manager/tests.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | pub(crate) struct TestSubTaskDef { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/run_subtask.rs:424:14 [INFO] [stdout] | [INFO] [stdout] 406 | InProcessSpawner::new(|info| async move { Ok(format!("result {}", info.task_id)) }); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 424 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] found `async` closure body `{async closure body@src/run_subtask.rs:406:42: 406:52}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 242 | spawner.spawn(task_id, "map".into(), None, serde_json::json!({})) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 242 | spawner.spawn(task_id, "map".into(), None, serde_json::json!({})) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:227:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:227:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------- [INFO] [stdout] | | | [INFO] [stdout] | | the expected `async` closure body [INFO] [stdout] | | the found `async` closure body [INFO] [stdout] | one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:227:23 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | _______________________^ [INFO] [stdout] 228 | | Ok(format!("result {}", info.task_id.task)) [INFO] [stdout] 229 | | }); [INFO] [stdout] | |__________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 233 | let tasks = futures::stream::iter(1..=3) [INFO] [stdout] | _____________________^ [INFO] [stdout] 234 | | .map(Ok) [INFO] [stdout] 235 | | .and_then(|i| { [INFO] [stdout] 236 | | let task_id = SubtaskId { [INFO] [stdout] ... | [INFO] [stdout] 242 | | spawner.spawn(task_id, "map".into(), None, serde_json::json!({})) [INFO] [stdout] 243 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 233 | let tasks = futures::stream::iter(1..=3) [INFO] [stdout] | _____________________^ [INFO] [stdout] 234 | | .map(Ok) [INFO] [stdout] 235 | | .and_then(|i| { [INFO] [stdout] 236 | | let task_id = SubtaskId { [INFO] [stdout] ... | [INFO] [stdout] 242 | | spawner.spawn(task_id, "map".into(), None, serde_json::json!({})) [INFO] [stdout] 243 | | }) [INFO] [stdout] | |______________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 233 | let tasks = futures::stream::iter(1..=3) [INFO] [stdout] | _____________________^ [INFO] [stdout] 234 | | .map(Ok) [INFO] [stdout] 235 | | .and_then(|i| { [INFO] [stdout] 236 | | let task_id = SubtaskId { [INFO] [stdout] ... | [INFO] [stdout] 243 | | }) [INFO] [stdout] 244 | | .try_collect::>() [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:233:21 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 233 | let tasks = futures::stream::iter(1..=3) [INFO] [stdout] | _____________________^ [INFO] [stdout] 234 | | .map(Ok) [INFO] [stdout] 235 | | .and_then(|i| { [INFO] [stdout] 236 | | let task_id = SubtaskId { [INFO] [stdout] ... | [INFO] [stdout] 243 | | }) [INFO] [stdout] 244 | | .try_collect::>() [INFO] [stdout] | |____________________________________^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:244:14 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 244 | .try_collect::>() [INFO] [stdout] | ^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:244:14 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 244 | .try_collect::>() [INFO] [stdout] | ^^^^^^^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:245:14 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 245 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:38:40 [INFO] [stdout] | [INFO] [stdout] 38 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0308]: mismatched types [INFO] [stdout] --> src/spawn/inprocess.rs:245:14 [INFO] [stdout] | [INFO] [stdout] 227 | let spawner = super::InProcessSpawner::new(|info| async move { [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | the expected `async` closure body [INFO] [stdout] | the found `async` closure body [INFO] [stdout] ... [INFO] [stdout] 245 | .await [INFO] [stdout] | ^^^^^ one type is more general than the other [INFO] [stdout] | [INFO] [stdout] = note: expected `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] found `async` closure body `{async closure body@src/spawn/inprocess.rs:227:59: 227:69}` [INFO] [stdout] = note: no two async blocks, even if identical, have the same type [INFO] [stdout] = help: consider pinning your async block and casting it to a trait object [INFO] [stdout] note: the lifetime requirement is introduced here [INFO] [stdout] --> src/spawn/inprocess.rs:28:40 [INFO] [stdout] | [INFO] [stdout] 28 | FUNC: FnOnce(InProcessTaskInfo) -> F + Send + Sync + Clone + 'static, [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 392 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0308, E0597. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0308`. [INFO] [stdout] [INFO] [stderr] error: could not compile `smelter-job-manager` (lib test) due to 393 previous errors [INFO] running `Command { std: "docker" "inspect" "885909171cdc1a8d59fd0aa542be1bf1c0b4684b82f397fe853a2ac1019da1fd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "885909171cdc1a8d59fd0aa542be1bf1c0b4684b82f397fe853a2ac1019da1fd", kill_on_drop: false }` [INFO] [stdout] 885909171cdc1a8d59fd0aa542be1bf1c0b4684b82f397fe853a2ac1019da1fd