[INFO] fetching crate pipitor 0.3.0-alpha.15... [INFO] checking pipitor-0.3.0-alpha.15 against try#65132f36b923285d5da381c2fbafee6ce899e841 for pr-132712-1 [INFO] extracting crate pipitor 0.3.0-alpha.15 into /workspace/builds/worker-6-tc2/source [INFO] validating manifest of crates.io crate pipitor 0.3.0-alpha.15 on toolchain 65132f36b923285d5da381c2fbafee6ce899e841 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate pipitor 0.3.0-alpha.15 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate pipitor 0.3.0-alpha.15 [INFO] tweaked toml for crates.io crate pipitor 0.3.0-alpha.15 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate crates.io crate pipitor 0.3.0-alpha.15 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4667bb8dca2fcff2b03521dc04d4d77622725dd32b00eedf3a9c1aa5727e9b23 [INFO] running `Command { std: "docker" "start" "-a" "4667bb8dca2fcff2b03521dc04d4d77622725dd32b00eedf3a9c1aa5727e9b23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4667bb8dca2fcff2b03521dc04d4d77622725dd32b00eedf3a9c1aa5727e9b23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4667bb8dca2fcff2b03521dc04d4d77622725dd32b00eedf3a9c1aa5727e9b23", kill_on_drop: false }` [INFO] [stdout] 4667bb8dca2fcff2b03521dc04d4d77622725dd32b00eedf3a9c1aa5727e9b23 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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=allow" "-e" "RUSTDOCFLAGS=--cap-lints=allow" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fc7ce1c63aec01454be1f1ccc46328bf1d3fa87c08fb2f23cc3418945e35a6d1 [INFO] running `Command { std: "docker" "start" "-a" "fc7ce1c63aec01454be1f1ccc46328bf1d3fa87c08fb2f23cc3418945e35a6d1", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling proc-macro2 v1.0.32 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.81 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.107 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling serde_derive v1.0.130 [INFO] [stderr] Compiling futures-core v0.3.17 [INFO] [stderr] Checking pin-project-lite v0.2.7 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Checking bytes v1.1.0 [INFO] [stderr] Compiling pkg-config v0.3.22 [INFO] [stderr] Checking once_cell v1.8.0 [INFO] [stderr] Compiling tokio v1.13.0 [INFO] [stderr] Compiling typenum v1.14.0 [INFO] [stderr] Checking itoa v0.4.8 [INFO] [stderr] Compiling futures-macro v0.3.17 [INFO] [stderr] Compiling generic-array v0.14.4 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Compiling futures-channel v0.3.17 [INFO] [stderr] Compiling futures-task v0.3.17 [INFO] [stderr] Checking mio v0.7.14 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking futures-sink v0.3.17 [INFO] [stderr] Compiling futures-util v0.3.17 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Checking http v0.2.5 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking slab v0.4.5 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Checking futures-io v0.3.17 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking tower-service v0.3.1 [INFO] [stderr] Checking lock_api v0.4.5 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling libsqlite3-sys v0.22.2 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking alloc-no-stdlib v2.0.3 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Compiling openssl-sys v0.9.70 [INFO] [stderr] Compiling openssl v0.10.38 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Compiling encoding_rs v0.8.29 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Checking ppv-lite86 v0.2.15 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking crypto-mac v0.11.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking alloc-stdlib v0.2.1 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking tracing-core v0.1.21 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking http-body v0.4.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Compiling httparse v1.5.1 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking cpufeatures v0.2.1 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking tracing v0.1.29 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking brotli-decompressor v2.3.2 [INFO] [stderr] Checking hmac v0.11.0 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling auto_enums_derive v0.7.12 [INFO] [stderr] Checking matches v0.1.9 [INFO] [stderr] Checking try-lock v0.2.3 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking openssl-probe v0.1.4 [INFO] [stderr] Compiling unicode-segmentation v1.8.0 [INFO] [stderr] Checking tower-layer v0.3.1 [INFO] [stderr] Compiling serde_json v1.0.70 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Checking textwrap v0.11.0 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking brotli v3.3.2 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking form_urlencoded v1.0.1 [INFO] [stderr] Checking flate2 v1.0.22 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking socket2 v0.4.2 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Compiling toml v0.5.8 [INFO] [stderr] Checking quick-xml v0.22.0 [INFO] [stderr] Compiling anyhow v1.0.45 [INFO] [stderr] Checking httpdate v1.0.1 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking diligent-date-parser v0.1.3 [INFO] [stderr] Checking atoi v0.4.0 [INFO] [stderr] Checking string v0.2.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Compiling derive_utils v0.11.2 [INFO] [stderr] Checking slice-of-array v0.2.1 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Checking atom_syndication v0.11.0 [INFO] [stderr] Checking rss v2.0.0 [INFO] [stderr] Compiling proc-macro-crate v0.1.5 [INFO] [stderr] Checking fs2 v0.4.3 [INFO] [stderr] Checking listenfd v0.3.5 [INFO] [stderr] Checking mime v0.3.16 [INFO] [stderr] Checking dotenv v0.15.0 [INFO] [stderr] Compiling tokio-macros v1.5.1 [INFO] [stderr] Compiling diesel_derives v1.4.1 [INFO] [stderr] Compiling pin-project-internal v1.0.8 [INFO] [stderr] Compiling oauth1-request-derive v0.4.1 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Compiling auto_enums_core v0.7.12 [INFO] [stderr] Compiling structopt-derive v0.4.18 [INFO] [stderr] Checking pin-project v1.0.8 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Compiling async-stream-impl v0.3.2 [INFO] [stderr] Checking async-stream v0.3.2 [INFO] [stderr] Checking auto_enums v0.7.12 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Checking structopt v0.3.25 [INFO] [stderr] Checking thiserror v1.0.30 [INFO] [stderr] Compiling diesel v1.4.8 [INFO] [stderr] Checking tower v0.4.10 [INFO] [stderr] Checking futures v0.3.17 [INFO] [stderr] Checking tokio-util v0.6.9 [INFO] [stderr] Checking tokio-stream v0.1.8 [INFO] [stderr] Checking tokio-native-tls v0.3.0 [INFO] [stderr] Checking async-compression v0.3.8 [INFO] [stderr] Checking tokio-test v0.4.2 [INFO] [stderr] Checking h2 v0.3.7 [INFO] [stderr] Checking tower-test v0.4.0 [INFO] [stderr] Checking tower-http v0.1.2 [INFO] [stderr] Compiling migrations_internals v1.4.1 [INFO] [stderr] Compiling migrations_macros v1.4.2 [INFO] [stderr] Checking smallvec v1.7.0 [INFO] [stderr] Checking oauth-credentials v0.3.0 [INFO] [stderr] Checking serde_urlencoded v0.7.0 [INFO] [stderr] Checking http-serde v1.0.3 [INFO] [stderr] Checking oauth1-request v0.5.1 [INFO] [stderr] Checking hyper v0.14.14 [INFO] [stderr] Checking twitter-stream v0.13.0 [INFO] [stderr] Checking parking_lot v0.11.2 [INFO] [stderr] Checking scheduled-thread-pool v0.2.5 [INFO] [stderr] Checking r2d2 v0.8.9 [INFO] [stderr] Checking twitter-client v0.0.1 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking diesel_migrations v1.4.0 [INFO] [stderr] Checking pipitor v0.3.0-alpha.15 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `pipitor` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/app.rs [INFO] [stderr] * src/websub/subscriber/service.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error: expected identifier [INFO] [stderr] --> src/websub/subscriber/service.rs:93:93 [INFO] [stderr] | [INFO] [stderr] 93 | ) -> impl Future + use>)>> + use [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: may only be used on expression, statement, or function [INFO] [stderr] --> src/websub/subscriber/service.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / pub fn discover( [INFO] [stderr] 91 | | &self, [INFO] [stderr] 92 | | topic: String, [INFO] [stderr] 93 | | ) -> impl Future + use>)>> + use [INFO] [stderr] ... | [INFO] [stderr] 145 | | }) [INFO] [stderr] 146 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `discover` found for reference `&subscriber::service::Service` in the current scope [INFO] [stderr] --> src/websub/subscriber/service.rs:70:14 [INFO] [stderr] | [INFO] [stderr] 70 | self.discover(topic).map(|result| { [INFO] [stderr] | ^^^^^^^^ method not found in `&Service` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `discover` found for reference `&subscriber::service::Service, B>` in the current scope [INFO] [stderr] --> src/app.rs:433:41 [INFO] [stderr] | [INFO] [stderr] 433 | let task = websub.service().discover(topic.to_owned()); [INFO] [stderr] | ^^^^^^^^ method not found in `&Service, B>` [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0599`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:102:24 [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr)*) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr)*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:102:38 [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr)*) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr_2021)*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | $method:ident $uri:expr => $Data:ty; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | $method:ident $uri:expr_2021 => $Data:ty; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:7:78 [INFO] [stdout] | [INFO] [stdout] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr)?),* $(,)? [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr_2021)?),* $(,)? [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/account.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / api_requests! { [INFO] [stdout] 2 | | GET "https://api.twitter.com/1.1/account/verify_credentials.json" => super::super::User; [INFO] [stdout] 3 | | #[derive(Default)] [INFO] [stdout] 4 | | pub struct VerifyCredentials {;} [INFO] [stdout] 5 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / api_requests! { [INFO] [stdout] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stdout] 16 | | pub struct Members { [INFO] [stdout] 17 | | list_id: NonZeroU64; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / api_requests! { [INFO] [stdout] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stdout] 16 | | pub struct Members { [INFO] [stdout] 17 | | list_id: NonZeroU64; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / api_requests! { [INFO] [stdout] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stdout] 55 | | pub struct Create { [INFO] [stdout] 56 | | list_id: NonZeroU64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / api_requests! { [INFO] [stdout] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stdout] 55 | | pub struct Create { [INFO] [stdout] 56 | | list_id: NonZeroU64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / api_requests! { [INFO] [stdout] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stdout] 6 | | pub struct Retweet { [INFO] [stdout] 7 | | id: i64; [INFO] [stdout] ... | [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / api_requests! { [INFO] [stdout] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stdout] 6 | | pub struct Retweet { [INFO] [stdout] 7 | | id: i64; [INFO] [stdout] ... | [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/app.rs:241:17 [INFO] [stdout] | [INFO] [stdout] 241 | ($r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 241 | ($r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/websub/subscriber/service.rs:222:21 [INFO] [stdout] | [INFO] [stdout] 222 | ($input:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 222 | ($input:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: patterns are not allowed to reset the default binding mode in edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | State::Streaming(ref mut buf) => buf.put(data), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: desugar the match ergonomics: `&mut` [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see 123076 [INFO] [stdout] = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl std::default::Default + Extend + DerefMut + Deref` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/manifest.rs:307:16 [INFO] [stdout] | [INFO] [stdout] 307 | ) -> &mut (impl Default + Extend + DerefMut) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/manifest.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 307 | ) -> &mut (impl Default + Extend + DerefMut + use<>) { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Extend> + DerefMut + Deref]>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/router.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | ) -> Option<&mut (impl Extend> + DerefMut]>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/router.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] 60 | topic: &TopicId<'static>, // FIXME: This should be `TopicId<'_>` [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 61 | ) -> Option<&mut (impl Extend> + DerefMut]> + use<>)> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl IntoIterator> + DerefMut + Deref]>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/router.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Option> + DerefMut]>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/router.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] 67 | topic: &TopicId<'static>, // FIXME: This should be `TopicId<'_>` [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Option> + DerefMut]> + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | if let Some(ref mut inner) = self.inner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 127 ~ match self.inner { Some(ref mut inner) => { [INFO] [stdout] 128 | // Drop the `Arc` to stop the `Interval` task. [INFO] [stdout] 129 | // If a `Backfill` task is running, the `ListTimeline` will wait for it to complete. [INFO] [stdout] 130 | inner.sender = None; [INFO] [stdout] 131 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:146:25 [INFO] [stdout] | [INFO] [stdout] 146 | let tweets = if let Some(tweets) = ready!(inner.rx.poll_next_unpin(cx)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | } else { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:255:28 [INFO] [stdout] | [INFO] [stdout] 255 | if let twitter_client::Error::Twitter(e) = e { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 255 ~ match e { twitter_client::Error::Twitter(e) => { [INFO] [stdout] 256 | e.rate_limit [INFO] [stdout] 257 ~ } _ => { [INFO] [stdout] 258 | return; [INFO] [stdout] 259 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline/interval.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | let t = if let Some(handle) = this.handle.upgrade() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline/interval.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ let t = match this.handle.upgrade() { Some(handle) => { [INFO] [stdout] 56 | handle [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | return Poll::Ready(None); [INFO] [stdout] 59 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(i) = fds.take_unix_listener(0)? { [INFO] [stdout] | ^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:118:21 [INFO] [stdout] | [INFO] [stdout] 118 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ match fds.take_unix_listener(0)? { Some(i) => { [INFO] [stdout] 117 | Ok(Some(i.try_into()?)) [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | Ok(None) [INFO] [stdout] 120 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | let config = if let Some(ref config) = core.manifest().websub { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ let config = match core.manifest().websub { Some(ref config) => { [INFO] [stdout] 166 | config [INFO] [stdout] 167 ~ } _ => { [INFO] [stdout] 168 | return Ok(None); [INFO] [stdout] 169 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:175:16 [INFO] [stdout] | [INFO] [stdout] 175 | if let Some(i) = fds.take_tcp_listener(0).ok().flatten() { [INFO] [stdout] | ^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 176 | i.try_into()? [INFO] [stdout] 177 | } else if let Some(i) = make_unix_incoming(&mut fds)? { [INFO] [stdout] | ----------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | } else if let Some(i) = make_unix_incoming(&mut fds)? { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 175 ~ match fds.take_tcp_listener(0).ok().flatten() { Some(i) => { [INFO] [stdout] 176 | i.try_into()? [INFO] [stdout] 177 ~ } _ => { match make_unix_incoming(&mut fds)? { Some(i) => { [INFO] [stdout] 178 | i [INFO] [stdout] 179 ~ } _ => { [INFO] [stdout] 180 | anyhow::bail!("Either `websub.bind` in the manifest or `LISTEN_FD` must be provided for WebSub subscriber"); [INFO] [stdout] 181 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:360:29 [INFO] [stdout] | [INFO] [stdout] 360 | let result = if let Some(r) = v { [INFO] [stdout] | ^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:362:13 [INFO] [stdout] | [INFO] [stdout] 362 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 360 ~ let result = match v { Some(r) => { [INFO] [stdout] 361 | r [INFO] [stdout] 362 ~ } _ => { [INFO] [stdout] 363 | this.twitter.set(None); [INFO] [stdout] 364 | return Poll::Ready(Ok(())); [INFO] [stdout] 365 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:375:28 [INFO] [stdout] | [INFO] [stdout] 375 | let tweet = if let Maybe::Just(t) = json::from_str::>(&json)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:377:13 [INFO] [stdout] | [INFO] [stdout] 377 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 375 ~ let tweet = match json::from_str::>(&json)? { Maybe::Just(t) => { [INFO] [stdout] 376 | t [INFO] [stdout] 377 ~ } _ => { [INFO] [stdout] 378 | continue; [INFO] [stdout] 379 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:405:25 [INFO] [stdout] | [INFO] [stdout] 405 | let websub = if let Some(ref s) = self.websub { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 405 ~ let websub = match self.websub { Some(ref s) => { [INFO] [stdout] 406 | s [INFO] [stdout] 407 ~ } _ => { [INFO] [stdout] 408 | return Ok(()); [INFO] [stdout] 409 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:424:20 [INFO] [stdout] | [INFO] [stdout] 424 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 424 ~ match result { Err(e) => { [INFO] [stdout] 425 | log::error!("Error: {:?}", e); [INFO] [stdout] 426 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:435:20 [INFO] [stdout] | [INFO] [stdout] 435 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:437:17 [INFO] [stdout] | [INFO] [stdout] 437 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 435 ~ match result { Err(e) => { [INFO] [stdout] 436 | log::error!("Error: {:?}", e); [INFO] [stdout] 437 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:445:24 [INFO] [stdout] | [INFO] [stdout] 445 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:447:21 [INFO] [stdout] | [INFO] [stdout] 447 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 445 ~ match result { Err(e) => { [INFO] [stdout] 446 | log::error!("Error while unsubscribing from a topic: {:?}", e); [INFO] [stdout] 447 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:514:16 [INFO] [stdout] | [INFO] [stdout] 514 | if let Poll::Ready(result) = self.as_mut().poll_twitter(cx) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:516:13 [INFO] [stdout] | [INFO] [stdout] 516 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 514 ~ match self.as_mut().poll_twitter(cx) { Poll::Ready(result) => { [INFO] [stdout] 515 | return Poll::Ready(result); [INFO] [stdout] 516 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/core.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 84 | let config = if let Some(ref config) = self.manifest.twitter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/core.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 84 ~ let config = match self.manifest.twitter { Some(ref config) => { [INFO] [stdout] 85 | config [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | return Ok(None); [INFO] [stdout] 88 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | ... if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/sender.rs:110:29 [INFO] [stdout] | [INFO] [stdout] 110 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 108 ~ match result { Err(e) => { [INFO] [stdout] 109 | error!("{:?}", e); [INFO] [stdout] 110 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/app/sender.rs:203:25 [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/app/sender.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 201 | tweet: &twitter::Tweet, [INFO] [stdout] | ^ [INFO] [stdout] 202 | core: &Core, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:250:36 [INFO] [stdout] | [INFO] [stdout] 250 | ... if let Ok(conn) = pool.get() { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/sender.rs:253:33 [INFO] [stdout] | [INFO] [stdout] 253 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 250 ~ match pool.get() { Ok(conn) => { [INFO] [stdout] 251 | let row = ongoing_retweets::table.find((tweet_id, user)); [INFO] [stdout] 252 | let _ = diesel::delete(row).execute(&*conn); [INFO] [stdout] 253 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:71:6 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 66 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 70 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:97:6 [INFO] [stdout] | [INFO] [stdout] 97 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:91:15 [INFO] [stdout] | [INFO] [stdout] 91 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 96 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 97 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 139 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 140 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>::Error>>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:165:6 [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:161:15 [INFO] [stdout] | [INFO] [stdout] 161 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 164 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:165:27 [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:161:15 [INFO] [stdout] | [INFO] [stdout] 161 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 164 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator> + use> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/hub.rs:217:20 [INFO] [stdout] | [INFO] [stdout] 217 | if let Some(to) = res.headers().get(LOCATION) { [INFO] [stdout] | ^^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/hub.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 217 ~ match res.headers().get(LOCATION) { Some(to) => { [INFO] [stdout] 218 | let to = String::from_utf8_lossy(to.as_bytes()); [INFO] [stdout] 219 | log::warn!("Topic {} at hub {} redirects to {}", topic, hub, to); [INFO] [stdout] 220 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:63:20 [INFO] [stdout] | [INFO] [stdout] 63 | let t = if let Some(t) = this.handle.upgrade() { [INFO] [stdout] | ^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 63 ~ let t = match this.handle.upgrade() { Some(t) => { [INFO] [stdout] 64 | t [INFO] [stdout] 65 ~ } _ => { [INFO] [stdout] 66 | return Poll::Ready(()); [INFO] [stdout] 67 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | if let Some(next_tick) = (this.get_next_tick)(&t) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 90 ~ match (this.get_next_tick)(&t) { Some(next_tick) => { [INFO] [stdout] 91 | handle.next_tick.store(next_tick, Ordering::Relaxed); [INFO] [stdout] 92 | let next_tick = util::instant_from_unix(Duration::from_secs(next_tick)); [INFO] [stdout] 93 | delay.reset(next_tick.into()); [INFO] [stdout] 94 ~ } _ => { [INFO] [stdout] 95 | handle.next_tick.store(u64::MAX, Ordering::Relaxed); [INFO] [stdout] 96 | this.delay.set(None); [INFO] [stdout] 97 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:61:60 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:61:35 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>), anyhow::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:93:10 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:93:62 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:109:31 [INFO] [stdout] | [INFO] [stdout] 109 | let kind = if let Some(v) = res.headers().get(CONTENT_TYPE) { [INFO] [stdout] | ^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 109 ~ let kind = match res.headers().get(CONTENT_TYPE) { Some(v) => { [INFO] [stdout] 110 | if let Some(m) = v.to_str().ok().and_then(|s| s.parse().ok()) { [INFO] [stdout] ... [INFO] [stdout] 115 | } [INFO] [stdout] 116 ~ } _ => { [INFO] [stdout] 117 | feed::MediaType::Xml [INFO] [stdout] 118 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:122:20 [INFO] [stdout] | [INFO] [stdout] 122 | if let Some(mut feed) = RawFeed::parse(kind, &body) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 141 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 122 ~ match RawFeed::parse(kind, &body) { Some(mut feed) => { [INFO] [stdout] 123 | #[auto_enum(Iterator)] [INFO] [stdout] ... [INFO] [stdout] 140 | Ok((topic, Some(hubs))) [INFO] [stdout] 141 ~ } _ => { [INFO] [stdout] 142 | log::warn!("Topic {}: failed to parse the content", topic); [INFO] [stdout] 143 | Ok((topic, None)) [INFO] [stdout] 144 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:153:10 [INFO] [stdout] | [INFO] [stdout] 153 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 152 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 153 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>::Error>>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:193:10 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 191 | topic: String, [INFO] [stdout] 192 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:193:31 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 191 | topic: String, [INFO] [stdout] 192 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator> + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:203:10 [INFO] [stdout] | [INFO] [stdout] 203 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 202 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:213:10 [INFO] [stdout] | [INFO] [stdout] 213 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 212 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 213 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | let id = if let Some(id) = path.strip_prefix(self.callback.path()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 236 ~ let id = match path.strip_prefix(self.callback.path()) { Some(id) => { [INFO] [stdout] 237 | let id = validate!(crate::websub::decode_callback_id(id).ok_or(())); [INFO] [stdout] 238 | validate!(i64::try_from(id)) [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | return Response::builder() [INFO] [stdout] ... [INFO] [stdout] 243 | .unwrap(); [INFO] [stdout] 244 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:252:40 [INFO] [stdout] | [INFO] [stdout] 252 | let kind: feed::MediaType = if let Some(m) = req [INFO] [stdout] | ^ --- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | ________________________________________| [INFO] [stdout] | | [INFO] [stdout] 253 | | .headers() [INFO] [stdout] 254 | | .get(CONTENT_TYPE) [INFO] [stdout] 255 | | .and_then(|v| v.to_str().ok()) [INFO] [stdout] 256 | | .and_then(|s| s.parse().ok()) [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 252 ~ let kind: feed::MediaType = match req [INFO] [stdout] 253 | .headers() [INFO] [stdout] ... [INFO] [stdout] 256 | .and_then(|s| s.parse().ok()) [INFO] [stdout] 257 ~ { Some(m) => { [INFO] [stdout] 258 | m [INFO] [stdout] 259 ~ } _ => { [INFO] [stdout] 260 | return Response::builder() [INFO] [stdout] ... [INFO] [stdout] 263 | .unwrap(); [INFO] [stdout] 264 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:267:35 [INFO] [stdout] | [INFO] [stdout] 267 | let signature_header = if let Some(v) = req.headers().get(hub_signature) { [INFO] [stdout] | ^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ let signature_header = match req.headers().get(hub_signature) { Some(v) => { [INFO] [stdout] 268 | v.as_bytes() [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | log::debug!("Callback {}: missing signature", id); [INFO] [stdout] 271 | return Response::new(Full::default()); [INFO] [stdout] 272 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | if let Err(e) = tx.start_send((topic, feed)) { [INFO] [stdout] | ^^^^^^^^^^^^^--^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:343:21 [INFO] [stdout] | [INFO] [stdout] 343 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 341 ~ match tx.start_send((topic, feed)) { Err(e) => { [INFO] [stdout] 342 | debug_assert!(e.is_disconnected()); [INFO] [stdout] 343 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:499:8 [INFO] [stdout] | [INFO] [stdout] 499 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:501:5 [INFO] [stdout] | [INFO] [stdout] 501 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match result { Err(e) => { [INFO] [stdout] 500 | log::error!("An HTTP request failed: {:?}", e); [INFO] [stdout] 501 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/bin/pipitor/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `pipitor` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/app.rs [INFO] [stderr] * src/websub/subscriber.rs [INFO] [stderr] * src/websub/subscriber/service.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error: expected identifier [INFO] [stderr] --> src/websub/subscriber/service.rs:93:93 [INFO] [stderr] | [INFO] [stderr] 93 | ) -> impl Future + use>)>> + use [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] error: may only be used on expression, statement, or function [INFO] [stderr] --> src/websub/subscriber/service.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | / pub fn discover( [INFO] [stderr] 91 | | &self, [INFO] [stderr] 92 | | topic: String, [INFO] [stderr] 93 | | ) -> impl Future + use>)>> + use [INFO] [stderr] ... | [INFO] [stderr] 145 | | }) [INFO] [stderr] 146 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `discover` found for reference `&subscriber::service::Service` in the current scope [INFO] [stderr] --> src/websub/subscriber/service.rs:70:14 [INFO] [stderr] | [INFO] [stderr] 70 | self.discover(topic).map(|result| { [INFO] [stderr] | ^^^^^^^^ method not found in `&Service` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `discover` found for reference `&subscriber::service::Service, B>` in the current scope [INFO] [stderr] --> src/app.rs:433:41 [INFO] [stderr] | [INFO] [stderr] 433 | let task = websub.service().discover(topic.to_owned()); [INFO] [stderr] | ^^^^^^^^ method not found in `&Service, B>` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `discover` found for reference `&Service>, Full>` in the current scope [INFO] [stderr] --> src/websub/subscriber.rs:410:54 [INFO] [stderr] | [INFO] [stderr] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stderr] | ^^^^^^^^ method not found in `&Service>, Full>` [INFO] [stderr] | [INFO] [stderr] = note: the full type name has been written to '/opt/rustwide/target/debug/deps/pipitor-a0f3e733f7f53cc8.long-type-7567859678708998668.txt' [INFO] [stderr] = note: consider using `--verbose` to print the full type name to the console [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0599`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util/time.rs:148:15 [INFO] [stdout] | [INFO] [stdout] 148 | ($lhs:expr, $rhs:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 148 | ($lhs:expr_2021, $rhs:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util/time.rs:148:26 [INFO] [stdout] | [INFO] [stdout] 148 | ($lhs:expr, $rhs:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 148 | ($lhs:expr, $rhs:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:102:24 [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr)*) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr)*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:102:38 [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr)*) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 102 | ($path:path, $dbg1:expr $(, $dbg:expr_2021)*) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:3:28 [INFO] [stdout] | [INFO] [stdout] 3 | $method:ident $uri:expr => $Data:ty; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | $method:ident $uri:expr_2021 => $Data:ty; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:7:78 [INFO] [stdout] | [INFO] [stdout] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr)?),* $(,)? [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr_2021)?),* $(,)? [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/account.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | / api_requests! { [INFO] [stdout] 2 | | GET "https://api.twitter.com/1.1/account/verify_credentials.json" => super::super::User; [INFO] [stdout] 3 | | #[derive(Default)] [INFO] [stdout] 4 | | pub struct VerifyCredentials {;} [INFO] [stdout] 5 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / api_requests! { [INFO] [stdout] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stdout] 16 | | pub struct Members { [INFO] [stdout] 17 | | list_id: NonZeroU64; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:14:1 [INFO] [stdout] | [INFO] [stdout] 14 | / api_requests! { [INFO] [stdout] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stdout] 16 | | pub struct Members { [INFO] [stdout] 17 | | list_id: NonZeroU64; [INFO] [stdout] ... | [INFO] [stdout] 33 | | } [INFO] [stdout] 34 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / api_requests! { [INFO] [stdout] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stdout] 55 | | pub struct Create { [INFO] [stdout] 56 | | list_id: NonZeroU64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/lists.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | / api_requests! { [INFO] [stdout] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stdout] 55 | | pub struct Create { [INFO] [stdout] 56 | | list_id: NonZeroU64, [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / api_requests! { [INFO] [stdout] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stdout] 6 | | pub struct Retweet { [INFO] [stdout] 7 | | id: i64; [INFO] [stdout] ... | [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/twitter/api.rs:22:28 [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr) => ($this); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / api_requests! { [INFO] [stdout] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stdout] 6 | | pub struct Retweet { [INFO] [stdout] 7 | | id: i64; [INFO] [stdout] ... | [INFO] [stdout] 14 | | } [INFO] [stdout] 15 | | } [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: this warning originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($this:expr_2021) => ($this); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/app.rs:241:17 [INFO] [stdout] | [INFO] [stdout] 241 | ($r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 241 | ($r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/websub/subscriber/service.rs:222:21 [INFO] [stdout] | [INFO] [stdout] 222 | ($input:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 222 | ($input:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: patterns are not allowed to reset the default binding mode in edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | State::Streaming(ref mut buf) => buf.put(data), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: desugar the match ergonomics: `&mut` [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see 123076 [INFO] [stdout] = note: `--force-warn rust-2024-incompatible-pat` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl std::default::Default + Extend + DerefMut + Deref` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/manifest.rs:307:16 [INFO] [stdout] | [INFO] [stdout] 307 | ) -> &mut (impl Default + Extend + DerefMut) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/manifest.rs:306:9 [INFO] [stdout] | [INFO] [stdout] 306 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 307 | ) -> &mut (impl Default + Extend + DerefMut + use<>) { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Extend> + DerefMut + Deref]>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/router.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | ) -> Option<&mut (impl Extend> + DerefMut]>)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/router.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] 60 | topic: &TopicId<'static>, // FIXME: This should be `TopicId<'_>` [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 61 | ) -> Option<&mut (impl Extend> + DerefMut]> + use<>)> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl IntoIterator> + DerefMut + Deref]>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/router.rs:68:17 [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Option> + DerefMut]>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/router.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | &mut self, [INFO] [stdout] | ^ [INFO] [stdout] 67 | topic: &TopicId<'static>, // FIXME: This should be `TopicId<'_>` [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 68 | ) -> Option> + DerefMut]> + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:127:12 [INFO] [stdout] | [INFO] [stdout] 127 | if let Some(ref mut inner) = self.inner { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 127 ~ match self.inner { Some(ref mut inner) => { [INFO] [stdout] 128 | // Drop the `Arc` to stop the `Interval` task. [INFO] [stdout] 129 | // If a `Backfill` task is running, the `ListTimeline` will wait for it to complete. [INFO] [stdout] 130 | inner.sender = None; [INFO] [stdout] 131 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:146:25 [INFO] [stdout] | [INFO] [stdout] 146 | let tweets = if let Some(tweets) = ready!(inner.rx.poll_next_unpin(cx)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | } else { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:255:28 [INFO] [stdout] | [INFO] [stdout] 255 | if let twitter_client::Error::Twitter(e) = e { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline.rs:257:25 [INFO] [stdout] | [INFO] [stdout] 257 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 255 ~ match e { twitter_client::Error::Twitter(e) => { [INFO] [stdout] 256 | e.rate_limit [INFO] [stdout] 257 ~ } _ => { [INFO] [stdout] 258 | return; [INFO] [stdout] 259 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline/interval.rs:55:20 [INFO] [stdout] | [INFO] [stdout] 55 | let t = if let Some(handle) = this.handle.upgrade() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/twitter/list_timeline/interval.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ let t = match this.handle.upgrade() { Some(handle) => { [INFO] [stdout] 56 | handle [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | return Poll::Ready(None); [INFO] [stdout] 59 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | if let Some(i) = fds.take_unix_listener(0)? { [INFO] [stdout] | ^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:118:21 [INFO] [stdout] | [INFO] [stdout] 118 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ match fds.take_unix_listener(0)? { Some(i) => { [INFO] [stdout] 117 | Ok(Some(i.try_into()?)) [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | Ok(None) [INFO] [stdout] 120 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:165:25 [INFO] [stdout] | [INFO] [stdout] 165 | let config = if let Some(ref config) = core.manifest().websub { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:167:9 [INFO] [stdout] | [INFO] [stdout] 167 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ let config = match core.manifest().websub { Some(ref config) => { [INFO] [stdout] 166 | config [INFO] [stdout] 167 ~ } _ => { [INFO] [stdout] 168 | return Ok(None); [INFO] [stdout] 169 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:175:16 [INFO] [stdout] | [INFO] [stdout] 175 | if let Some(i) = fds.take_tcp_listener(0).ok().flatten() { [INFO] [stdout] | ^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 176 | i.try_into()? [INFO] [stdout] 177 | } else if let Some(i) = make_unix_incoming(&mut fds)? { [INFO] [stdout] | ----------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | } else if let Some(i) = make_unix_incoming(&mut fds)? { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 179 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 175 ~ match fds.take_tcp_listener(0).ok().flatten() { Some(i) => { [INFO] [stdout] 176 | i.try_into()? [INFO] [stdout] 177 ~ } _ => { match make_unix_incoming(&mut fds)? { Some(i) => { [INFO] [stdout] 178 | i [INFO] [stdout] 179 ~ } _ => { [INFO] [stdout] 180 | anyhow::bail!("Either `websub.bind` in the manifest or `LISTEN_FD` must be provided for WebSub subscriber"); [INFO] [stdout] 181 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:360:29 [INFO] [stdout] | [INFO] [stdout] 360 | let result = if let Some(r) = v { [INFO] [stdout] | ^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:362:13 [INFO] [stdout] | [INFO] [stdout] 362 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 360 ~ let result = match v { Some(r) => { [INFO] [stdout] 361 | r [INFO] [stdout] 362 ~ } _ => { [INFO] [stdout] 363 | this.twitter.set(None); [INFO] [stdout] 364 | return Poll::Ready(Ok(())); [INFO] [stdout] 365 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:375:28 [INFO] [stdout] | [INFO] [stdout] 375 | let tweet = if let Maybe::Just(t) = json::from_str::>(&json)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:377:13 [INFO] [stdout] | [INFO] [stdout] 377 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 375 ~ let tweet = match json::from_str::>(&json)? { Maybe::Just(t) => { [INFO] [stdout] 376 | t [INFO] [stdout] 377 ~ } _ => { [INFO] [stdout] 378 | continue; [INFO] [stdout] 379 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:405:25 [INFO] [stdout] | [INFO] [stdout] 405 | let websub = if let Some(ref s) = self.websub { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:407:9 [INFO] [stdout] | [INFO] [stdout] 407 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 405 ~ let websub = match self.websub { Some(ref s) => { [INFO] [stdout] 406 | s [INFO] [stdout] 407 ~ } _ => { [INFO] [stdout] 408 | return Ok(()); [INFO] [stdout] 409 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:424:20 [INFO] [stdout] | [INFO] [stdout] 424 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:426:17 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 424 ~ match result { Err(e) => { [INFO] [stdout] 425 | log::error!("Error: {:?}", e); [INFO] [stdout] 426 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:435:20 [INFO] [stdout] | [INFO] [stdout] 435 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:437:17 [INFO] [stdout] | [INFO] [stdout] 437 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 435 ~ match result { Err(e) => { [INFO] [stdout] 436 | log::error!("Error: {:?}", e); [INFO] [stdout] 437 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:445:24 [INFO] [stdout] | [INFO] [stdout] 445 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:447:21 [INFO] [stdout] | [INFO] [stdout] 447 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 445 ~ match result { Err(e) => { [INFO] [stdout] 446 | log::error!("Error while unsubscribing from a topic: {:?}", e); [INFO] [stdout] 447 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:514:16 [INFO] [stdout] | [INFO] [stdout] 514 | if let Poll::Ready(result) = self.as_mut().poll_twitter(cx) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app.rs:516:13 [INFO] [stdout] | [INFO] [stdout] 516 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 514 ~ match self.as_mut().poll_twitter(cx) { Poll::Ready(result) => { [INFO] [stdout] 515 | return Poll::Ready(result); [INFO] [stdout] 516 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/core.rs:84:25 [INFO] [stdout] | [INFO] [stdout] 84 | let config = if let Some(ref config) = self.manifest.twitter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/core.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 84 ~ let config = match self.manifest.twitter { Some(ref config) => { [INFO] [stdout] 85 | config [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | return Ok(None); [INFO] [stdout] 88 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:108:32 [INFO] [stdout] | [INFO] [stdout] 108 | ... if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/sender.rs:110:29 [INFO] [stdout] | [INFO] [stdout] 110 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 108 ~ match result { Err(e) => { [INFO] [stdout] 109 | error!("{:?}", e); [INFO] [stdout] 110 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/app/sender.rs:203:25 [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/app/sender.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 201 | tweet: &twitter::Tweet, [INFO] [stdout] | ^ [INFO] [stdout] 202 | core: &Core, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:250:36 [INFO] [stdout] | [INFO] [stdout] 250 | ... if let Ok(conn) = pool.get() { [INFO] [stdout] | ^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/app/sender.rs:253:33 [INFO] [stdout] | [INFO] [stdout] 253 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 250 ~ match pool.get() { Ok(conn) => { [INFO] [stdout] 251 | let row = ongoing_retweets::table.find((tweet_id, user)); [INFO] [stdout] 252 | let _ = diesel::delete(row).execute(&*conn); [INFO] [stdout] 253 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:71:6 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:66:15 [INFO] [stdout] | [INFO] [stdout] 66 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 70 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:97:6 [INFO] [stdout] | [INFO] [stdout] 97 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:91:15 [INFO] [stdout] | [INFO] [stdout] 91 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 96 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 97 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:140:6 [INFO] [stdout] | [INFO] [stdout] 140 | ) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:134:15 [INFO] [stdout] | [INFO] [stdout] 134 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 139 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 140 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>::Error>>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:165:6 [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:161:15 [INFO] [stdout] | [INFO] [stdout] 161 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 164 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/hub.rs:165:27 [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/hub.rs:161:15 [INFO] [stdout] | [INFO] [stdout] 161 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 164 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 165 | ) -> impl Iterator> + use> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/hub.rs:217:20 [INFO] [stdout] | [INFO] [stdout] 217 | if let Some(to) = res.headers().get(LOCATION) { [INFO] [stdout] | ^^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/hub.rs:220:17 [INFO] [stdout] | [INFO] [stdout] 220 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 217 ~ match res.headers().get(LOCATION) { Some(to) => { [INFO] [stdout] 218 | let to = String::from_utf8_lossy(to.as_bytes()); [INFO] [stdout] 219 | log::warn!("Topic {} at hub {} redirects to {}", topic, hub, to); [INFO] [stdout] 220 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:63:20 [INFO] [stdout] | [INFO] [stdout] 63 | let t = if let Some(t) = this.handle.upgrade() { [INFO] [stdout] | ^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 63 ~ let t = match this.handle.upgrade() { Some(t) => { [INFO] [stdout] 64 | t [INFO] [stdout] 65 ~ } _ => { [INFO] [stdout] 66 | return Poll::Ready(()); [INFO] [stdout] 67 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | if let Some(next_tick) = (this.get_next_tick)(&t) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/scheduler.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 90 ~ match (this.get_next_tick)(&t) { Some(next_tick) => { [INFO] [stdout] 91 | handle.next_tick.store(next_tick, Ordering::Relaxed); [INFO] [stdout] 92 | let next_tick = util::instant_from_unix(Duration::from_secs(next_tick)); [INFO] [stdout] 93 | delay.reset(next_tick.into()); [INFO] [stdout] 94 ~ } _ => { [INFO] [stdout] 95 | handle.next_tick.store(u64::MAX, Ordering::Relaxed); [INFO] [stdout] 96 | this.delay.set(None); [INFO] [stdout] 97 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:61:60 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:61:35 [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 61 | pub fn discover_and_subscribe(&self, topic: String) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>), anyhow::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:93:10 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:93:62 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future>)>> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:109:31 [INFO] [stdout] | [INFO] [stdout] 109 | let kind = if let Some(v) = res.headers().get(CONTENT_TYPE) { [INFO] [stdout] | ^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 109 ~ let kind = match res.headers().get(CONTENT_TYPE) { Some(v) => { [INFO] [stdout] 110 | if let Some(m) = v.to_str().ok().and_then(|s| s.parse().ok()) { [INFO] [stdout] ... [INFO] [stdout] 115 | } [INFO] [stdout] 116 ~ } _ => { [INFO] [stdout] 117 | feed::MediaType::Xml [INFO] [stdout] 118 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:122:20 [INFO] [stdout] | [INFO] [stdout] 122 | if let Some(mut feed) = RawFeed::parse(kind, &body) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:141:17 [INFO] [stdout] | [INFO] [stdout] 141 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 122 ~ match RawFeed::parse(kind, &body) { Some(mut feed) => { [INFO] [stdout] 123 | #[auto_enum(Iterator)] [INFO] [stdout] ... [INFO] [stdout] 140 | Ok((topic, Some(hubs))) [INFO] [stdout] 141 ~ } _ => { [INFO] [stdout] 142 | log::warn!("Topic {}: failed to parse the content", topic); [INFO] [stdout] 143 | Ok((topic, None)) [INFO] [stdout] 144 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:153:10 [INFO] [stdout] | [INFO] [stdout] 153 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 152 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 153 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>::Error>>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:193:10 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 191 | topic: String, [INFO] [stdout] 192 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:193:31 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | &self, [INFO] [stdout] | ^ [INFO] [stdout] 191 | topic: String, [INFO] [stdout] 192 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator> + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:203:10 [INFO] [stdout] | [INFO] [stdout] 203 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 202 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future>::Error>>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:213:10 [INFO] [stdout] | [INFO] [stdout] 213 | ) -> impl Future> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber/service.rs:208:9 [INFO] [stdout] | [INFO] [stdout] 208 | &self, [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 212 | conn: &SqliteConnection, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 213 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:236:21 [INFO] [stdout] | [INFO] [stdout] 236 | let id = if let Some(id) = path.strip_prefix(self.callback.path()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:239:9 [INFO] [stdout] | [INFO] [stdout] 239 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 236 ~ let id = match path.strip_prefix(self.callback.path()) { Some(id) => { [INFO] [stdout] 237 | let id = validate!(crate::websub::decode_callback_id(id).ok_or(())); [INFO] [stdout] 238 | validate!(i64::try_from(id)) [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | return Response::builder() [INFO] [stdout] ... [INFO] [stdout] 243 | .unwrap(); [INFO] [stdout] 244 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:252:40 [INFO] [stdout] | [INFO] [stdout] 252 | let kind: feed::MediaType = if let Some(m) = req [INFO] [stdout] | ^ --- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | ________________________________________| [INFO] [stdout] | | [INFO] [stdout] 253 | | .headers() [INFO] [stdout] 254 | | .get(CONTENT_TYPE) [INFO] [stdout] 255 | | .and_then(|v| v.to_str().ok()) [INFO] [stdout] 256 | | .and_then(|s| s.parse().ok()) [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:259:9 [INFO] [stdout] | [INFO] [stdout] 259 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 252 ~ let kind: feed::MediaType = match req [INFO] [stdout] 253 | .headers() [INFO] [stdout] ... [INFO] [stdout] 256 | .and_then(|s| s.parse().ok()) [INFO] [stdout] 257 ~ { Some(m) => { [INFO] [stdout] 258 | m [INFO] [stdout] 259 ~ } _ => { [INFO] [stdout] 260 | return Response::builder() [INFO] [stdout] ... [INFO] [stdout] 263 | .unwrap(); [INFO] [stdout] 264 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:267:35 [INFO] [stdout] | [INFO] [stdout] 267 | let signature_header = if let Some(v) = req.headers().get(hub_signature) { [INFO] [stdout] | ^^^^^^^^^^^^^^---^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:269:9 [INFO] [stdout] | [INFO] [stdout] 269 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ let signature_header = match req.headers().get(hub_signature) { Some(v) => { [INFO] [stdout] 268 | v.as_bytes() [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | log::debug!("Callback {}: missing signature", id); [INFO] [stdout] 271 | return Response::new(Full::default()); [INFO] [stdout] 272 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:341:24 [INFO] [stdout] | [INFO] [stdout] 341 | if let Err(e) = tx.start_send((topic, feed)) { [INFO] [stdout] | ^^^^^^^^^^^^^--^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:343:21 [INFO] [stdout] | [INFO] [stdout] 343 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 341 ~ match tx.start_send((topic, feed)) { Err(e) => { [INFO] [stdout] 342 | debug_assert!(e.is_disconnected()); [INFO] [stdout] 343 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:499:8 [INFO] [stdout] | [INFO] [stdout] 499 | if let Err(e) = result { [INFO] [stdout] | ^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/websub/subscriber/service.rs:501:5 [INFO] [stdout] | [INFO] [stdout] 501 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match result { Err(e) => { [INFO] [stdout] 500 | log::error!("An HTTP request failed: {:?}", e); [INFO] [stdout] 501 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures::Future + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/websub/subscriber.rs:672:10 [INFO] [stdout] | [INFO] [stdout] 672 | ) -> impl std::future::Future + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/websub/subscriber.rs:669:17 [INFO] [stdout] | [INFO] [stdout] 669 | client: &Client>, [INFO] [stdout] | ^ [INFO] [stdout] 670 | callback: &Uri, [INFO] [stdout] | ^ [INFO] [stdout] 671 | query: &hub::Verify<&'a str>, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 672 | ) -> impl std::future::Future + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Fixed src/bin/pipitor/ctl.rs (1 fix) [INFO] [stderr] Fixed src/bin/pipitor/twitter_list_sync.rs (1 fix) [INFO] [stderr] Fixed src/bin/pipitor/common/ipc.rs (5 fixes) [INFO] [stderr] Fixed src/bin/pipitor/websub.rs (1 fix) [INFO] [stderr] Fixed src/bin/pipitor/main.rs (1 fix) [INFO] [stderr] Fixed src/bin/pipitor/twitter_login.rs (2 fixes) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.74s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking pipitor v0.3.0-alpha.15 (/tmp/fixit) [INFO] [stdout] error[E0597]: `callback` does not live long enough [INFO] [stdout] --> src/websub/subscriber/service.rs:76:29 [INFO] [stdout] | [INFO] [stdout] 67 | let callback = self.callback.clone(); [INFO] [stdout] | -------- binding `callback` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________- [INFO] [stdout] 76 | | &callback, [INFO] [stdout] | | ^^^^^^^^^ borrowed value does not live long enough [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________- argument requires that `callback` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 85 | }) [INFO] [stdout] | - `callback` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber/service.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/hub.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `conn` does not live long enough [INFO] [stdout] --> src/websub/subscriber/service.rs:80:31 [INFO] [stdout] | [INFO] [stdout] 73 | let conn = pool.get()?; [INFO] [stdout] | ---- binding `conn` declared here [INFO] [stdout] 74 | for hub in hubs { [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________- [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] | | ^^^^ borrowed value does not live long enough [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________- argument requires that `conn` is borrowed for `'static` [INFO] [stdout] 82 | } [INFO] [stdout] 83 | } [INFO] [stdout] | - `conn` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber/service.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/hub.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `callback` does not live long enough [INFO] [stdout] --> src/websub/subscriber/service.rs:76:29 [INFO] [stdout] | [INFO] [stdout] 67 | let callback = self.callback.clone(); [INFO] [stdout] | -------- binding `callback` declared here [INFO] [stdout] ... [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________- [INFO] [stdout] 76 | | &callback, [INFO] [stdout] | | ^^^^^^^^^ borrowed value does not live long enough [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________- argument requires that `callback` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 85 | }) [INFO] [stdout] | - `callback` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber/service.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/hub.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `conn` does not live long enough [INFO] [stdout] --> src/websub/subscriber/service.rs:80:31 [INFO] [stdout] | [INFO] [stdout] 73 | let conn = pool.get()?; [INFO] [stdout] | ---- binding `conn` declared here [INFO] [stdout] 74 | for hub in hubs { [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________- [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] | | ^^^^ borrowed value does not live long enough [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________- argument requires that `conn` is borrowed for `'static` [INFO] [stdout] 82 | } [INFO] [stdout] 83 | } [INFO] [stdout] | - `conn` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber/service.rs:75:38 [INFO] [stdout] | [INFO] [stdout] 75 | tokio::spawn(hub::subscribe( [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 76 | | &callback, [INFO] [stdout] 77 | | hub, [INFO] [stdout] 78 | | topic.clone(), [INFO] [stdout] 79 | | client.clone(), [INFO] [stdout] 80 | | &*conn, [INFO] [stdout] 81 | | )); [INFO] [stdout] | |_________________________^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/hub.rs:71:48 [INFO] [stdout] | [INFO] [stdout] 71 | ) -> impl Future> + use [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: patterns are not allowed to reset the default binding mode in edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | State::Streaming(ref mut buf) => buf.put(data), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: desugar the match ergonomics: `&mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: patterns are not allowed to reset the default binding mode in edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:51:17 [INFO] [stdout] | [INFO] [stdout] 51 | State::Streaming(ref mut buf) => buf.put(data), [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: desugar the match ergonomics: `&mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 138 | &self, [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 140 | core: &Core, [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `core` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `core` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `tweet` does not live long enough [INFO] [stdout] --> src/app/sender.rs:164:37 [INFO] [stdout] | [INFO] [stdout] 139 | tweet: twitter::Tweet, [INFO] [stdout] | ----- binding `tweet` declared here [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | -------------^^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `tweet` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 197 | } [INFO] [stdout] | - `tweet` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `tweet` does not live long enough [INFO] [stdout] --> src/app/sender.rs:178:36 [INFO] [stdout] | [INFO] [stdout] 139 | tweet: twitter::Tweet, [INFO] [stdout] | ----- binding `tweet` declared here [INFO] [stdout] ... [INFO] [stdout] 178 | let retweet = self.retweet(&tweet, core)?; [INFO] [stdout] | -------------^^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `tweet` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 197 | } [INFO] [stdout] | - `tweet` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app/sender.rs:178:23 [INFO] [stdout] | [INFO] [stdout] 178 | let retweet = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/app.rs:411:22 [INFO] [stdout] | [INFO] [stdout] 411 | let conn = &*self.core.conn()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use [INFO] [stdout] ... [INFO] [stdout] 443 | for task in websub.service().unsubscribe_all(topic, conn) { [INFO] [stdout] | --------------------------------------------- argument requires that borrow lasts for `'static` [INFO] [stdout] ... [INFO] [stdout] 454 | } [INFO] [stdout] | - temporary value is freed at the end of this statement [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app.rs:443:25 [INFO] [stdout] | [INFO] [stdout] 443 | for task in websub.service().unsubscribe_all(topic, conn) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:193:74 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app.rs:422:24 [INFO] [stdout] | [INFO] [stdout] 404 | fn sync_websub_subscriptions(&self) -> anyhow::Result<()> { [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 422 | let task = websub.service().discover_and_subscribe(topic.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:185:26 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn renew_subscriptions(&self, conn: &SqliteConnection) [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 185 | tokio::spawn(self.renew(id, hub, topic, conn).map(log_and_discard_error)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:185:26 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn renew_subscriptions(&self, conn: &SqliteConnection) [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `conn` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 185 | tokio::spawn(self.renew(id, hub, topic, conn).map(log_and_discard_error)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `conn` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:401:32 [INFO] [stdout] | [INFO] [stdout] 355 | fn verify_intent(&self, id: i64, query: &str, conn: &SqliteConnection) -> Response> [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 401 | let task = self [INFO] [stdout] | ________________________________^ [INFO] [stdout] 402 | | .unsubscribe(old_id, hub, topic, conn) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________________________`self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:401:32 [INFO] [stdout] | [INFO] [stdout] 355 | fn verify_intent(&self, id: i64, query: &str, conn: &SqliteConnection) -> Response> [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `conn` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 401 | let task = self [INFO] [stdout] | ________________________________^ [INFO] [stdout] 402 | | .unsubscribe(old_id, hub, topic, conn) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________________________`conn` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0521, E0597, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0521`. [INFO] [stdout] [INFO] [stderr] error: could not compile `pipitor` (lib) due to 13 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 138 | &self, [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 140 | core: &Core, [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `core` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `core` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `tweet` does not live long enough [INFO] [stdout] --> src/app/sender.rs:164:37 [INFO] [stdout] | [INFO] [stdout] 139 | tweet: twitter::Tweet, [INFO] [stdout] | ----- binding `tweet` declared here [INFO] [stdout] ... [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | -------------^^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `tweet` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 197 | } [INFO] [stdout] | - `tweet` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app/sender.rs:164:24 [INFO] [stdout] | [INFO] [stdout] 164 | let task = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `tweet` does not live long enough [INFO] [stdout] --> src/app/sender.rs:178:36 [INFO] [stdout] | [INFO] [stdout] 139 | tweet: twitter::Tweet, [INFO] [stdout] | ----- binding `tweet` declared here [INFO] [stdout] ... [INFO] [stdout] 178 | let retweet = self.retweet(&tweet, core)?; [INFO] [stdout] | -------------^^^^^^------- [INFO] [stdout] | | | [INFO] [stdout] | | borrowed value does not live long enough [INFO] [stdout] | argument requires that `tweet` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 197 | } [INFO] [stdout] | - `tweet` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app/sender.rs:178:23 [INFO] [stdout] | [INFO] [stdout] 178 | let retweet = self.retweet(&tweet, core)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 203 | ) -> anyhow::Result + use> { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/app.rs:411:22 [INFO] [stdout] | [INFO] [stdout] 411 | let conn = &*self.core.conn()?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use [INFO] [stdout] ... [INFO] [stdout] 443 | for task in websub.service().unsubscribe_all(topic, conn) { [INFO] [stdout] | --------------------------------------------- argument requires that borrow lasts for `'static` [INFO] [stdout] ... [INFO] [stdout] 454 | } [INFO] [stdout] | - temporary value is freed at the end of this statement [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/app.rs:443:25 [INFO] [stdout] | [INFO] [stdout] 443 | for task in websub.service().unsubscribe_all(topic, conn) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:193:74 [INFO] [stdout] | [INFO] [stdout] 193 | ) -> impl Iterator>> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/app.rs:422:24 [INFO] [stdout] | [INFO] [stdout] 404 | fn sync_websub_subscriptions(&self) -> anyhow::Result<()> { [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 422 | let task = websub.service().discover_and_subscribe(topic.to_owned()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:185:26 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn renew_subscriptions(&self, conn: &SqliteConnection) [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 185 | tokio::spawn(self.renew(id, hub, topic, conn).map(log_and_discard_error)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:185:26 [INFO] [stdout] | [INFO] [stdout] 157 | pub fn renew_subscriptions(&self, conn: &SqliteConnection) [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `conn` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 185 | tokio::spawn(self.renew(id, hub, topic, conn).map(log_and_discard_error)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `conn` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:401:32 [INFO] [stdout] | [INFO] [stdout] 355 | fn verify_intent(&self, id: i64, query: &str, conn: &SqliteConnection) -> Response> [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `self` is a reference that is only valid in the method body [INFO] [stdout] | let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 401 | let task = self [INFO] [stdout] | ________________________________^ [INFO] [stdout] 402 | | .unsubscribe(old_id, hub, topic, conn) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________________________`self` escapes the method body here [INFO] [stdout] | argument requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0521]: borrowed data escapes outside of method [INFO] [stdout] --> src/websub/subscriber/service.rs:401:32 [INFO] [stdout] | [INFO] [stdout] 355 | fn verify_intent(&self, id: i64, query: &str, conn: &SqliteConnection) -> Response> [INFO] [stdout] | ---- - let's call the lifetime of this reference `'2` [INFO] [stdout] | | [INFO] [stdout] | `conn` is a reference that is only valid in the method body [INFO] [stdout] ... [INFO] [stdout] 401 | let task = self [INFO] [stdout] | ________________________________^ [INFO] [stdout] 402 | | .unsubscribe(old_id, hub, topic, conn) [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | |______________________________________________________________`conn` escapes the method body here [INFO] [stdout] | argument requires that `'2` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0597]: `subscriber` does not live long enough [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 402 | let mut subscriber = tokio_test::task::spawn(subscriber); [INFO] [stdout] | -------------- binding `subscriber` declared here [INFO] [stdout] ... [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | borrowed value does not live long enough [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 585 | } [INFO] [stdout] | - `subscriber` dropped here while still borrowed [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:434:13 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 434 | subscriber.next().await.unwrap().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/websub/subscriber.rs:451:14 [INFO] [stdout] | [INFO] [stdout] 451 | &subscriber.service().pool.get().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use [INFO] [stdout] 452 | ); [INFO] [stdout] | - temporary value is freed at the end of this statement [INFO] [stdout] ... [INFO] [stdout] 585 | } [INFO] [stdout] | - borrow might be used here, when `req_task` is dropped and runs the destructor for type `impl futures::Future> as twitter_client::traits::HttpService>>::Error>>` [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:448:24 [INFO] [stdout] | [INFO] [stdout] 448 | let req_task = subscriber.service().subscribe( [INFO] [stdout] | ________________________^ [INFO] [stdout] 449 | | HUB.to_owned(), [INFO] [stdout] 450 | | topic, [INFO] [stdout] 451 | | &subscriber.service().pool.get().unwrap(), [INFO] [stdout] 452 | | ); [INFO] [stdout] | |_________^ [INFO] [stdout] help: consider using a `let` binding to create a longer lived value [INFO] [stdout] | [INFO] [stdout] 448 ~ let binding = subscriber.service().pool.get().unwrap(); [INFO] [stdout] 449 ~ let req_task = subscriber.service().subscribe( [INFO] [stdout] 450 | HUB.to_owned(), [INFO] [stdout] 451 | topic, [INFO] [stdout] 452 ~ &binding, [INFO] [stdout] | [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:153:52 [INFO] [stdout] | [INFO] [stdout] 153 | ) -> impl Future> + use { [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:479:37 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 479 | util::first(task.timeout(), subscriber.next()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:494:48 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 494 | let (res, update) = future::join(task, subscriber.next()).timeout().await; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:512:38 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 512 | let form = util::first(task, subscriber.next()).await.unwrap_left(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:536:37 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 536 | util::first(task.timeout(), subscriber.next()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:544:38 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 544 | let form = util::first(task, subscriber.next()).await.unwrap_left(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:564:37 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 564 | util::first(task.timeout(), subscriber.next()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `subscriber` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/websub/subscriber.rs:570:9 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | -------------------- [INFO] [stdout] | | [INFO] [stdout] | immutable borrow occurs here [INFO] [stdout] | argument requires that `subscriber` is borrowed for `'static` [INFO] [stdout] ... [INFO] [stdout] 570 | subscriber.enter(|cx, subscriber| assert!(subscriber.poll_next(cx).is_pending())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/websub/subscriber.rs:410:33 [INFO] [stdout] | [INFO] [stdout] 410 | let task = tokio::spawn(subscriber.service().discover(TOPIC.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/websub/subscriber/service.rs:93:90 [INFO] [stdout] | [INFO] [stdout] 93 | ) -> impl Future + use>)>> [INFO] [stdout] | +++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0502, E0521, E0597, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0502`. [INFO] [stdout] [INFO] [stderr] error: could not compile `pipitor` (lib test) due to 23 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "fc7ce1c63aec01454be1f1ccc46328bf1d3fa87c08fb2f23cc3418945e35a6d1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc7ce1c63aec01454be1f1ccc46328bf1d3fa87c08fb2f23cc3418945e35a6d1", kill_on_drop: false }` [INFO] [stdout] fc7ce1c63aec01454be1f1ccc46328bf1d3fa87c08fb2f23cc3418945e35a6d1