[INFO] fetching crate pipitor 0.3.0-alpha.15... [INFO] checking pipitor-0.3.0-alpha.15 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate pipitor 0.3.0-alpha.15 into /workspace/builds/worker-4-tc2/source [INFO] validating manifest of crates.io crate pipitor 0.3.0-alpha.15 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "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-4-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" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] be4bfef4c6f6438356b874a283db7c5c86d6b6c9836431e552102d81622125bc [INFO] running `Command { std: "docker" "start" "-a" "be4bfef4c6f6438356b874a283db7c5c86d6b6c9836431e552102d81622125bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "be4bfef4c6f6438356b874a283db7c5c86d6b6c9836431e552102d81622125bc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be4bfef4c6f6438356b874a283db7c5c86d6b6c9836431e552102d81622125bc", kill_on_drop: false }` [INFO] [stdout] be4bfef4c6f6438356b874a283db7c5c86d6b6c9836431e552102d81622125bc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 1d41db760fadb8e798addc25592922969c287a1093ddfff31457ad637f3d7324 [INFO] running `Command { std: "docker" "start" "-a" "1d41db760fadb8e798addc25592922969c287a1093ddfff31457ad637f3d7324", 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] Fixed Cargo.toml (10 fixes) [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] Checking pin-project-lite v0.2.7 [INFO] [stderr] Compiling serde v1.0.130 [INFO] [stderr] Compiling futures-core v0.3.17 [INFO] [stderr] Compiling pkg-config v0.3.22 [INFO] [stderr] Checking once_cell v1.8.0 [INFO] [stderr] Compiling typenum v1.14.0 [INFO] [stderr] Checking futures-sink v0.3.17 [INFO] [stderr] Compiling futures-task v0.3.17 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling futures-channel v0.3.17 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Checking http v0.2.5 [INFO] [stderr] Checking slab v0.4.5 [INFO] [stderr] Checking futures-io v0.3.17 [INFO] [stderr] Compiling parking_lot_core v0.8.5 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Compiling generic-array v0.14.4 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling tokio v1.13.0 [INFO] [stderr] Compiling futures-macro v0.3.17 [INFO] [stderr] Compiling futures-util v0.3.17 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking tower-service v0.3.1 [INFO] [stderr] Checking lock_api v0.4.5 [INFO] [stderr] Compiling libsqlite3-sys v0.22.2 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling openssl v0.10.38 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Compiling encoding_rs v0.8.29 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling quote v1.0.10 [INFO] [stderr] Checking ppv-lite86 v0.2.15 [INFO] [stderr] Checking alloc-no-stdlib v2.0.3 [INFO] [stderr] Checking tracing-core v0.1.21 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Checking alloc-stdlib v0.2.1 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking mio v0.7.14 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling httparse v1.5.1 [INFO] [stderr] Checking cpufeatures v0.2.1 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking tracing v0.1.29 [INFO] [stderr] Checking brotli-decompressor v2.3.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Compiling auto_enums_derive v0.7.12 [INFO] [stderr] Checking tower-layer v0.3.1 [INFO] [stderr] Compiling openssl-sys v0.9.70 [INFO] [stderr] Compiling serde_json v1.0.70 [INFO] [stderr] Compiling unicode-segmentation v1.8.0 [INFO] [stderr] Checking openssl-probe v0.1.4 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking flate2 v1.0.22 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking socket2 v0.4.2 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Compiling anyhow v1.0.45 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Compiling heck v0.3.3 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking crypto-mac v0.11.1 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking httpdate v1.0.1 [INFO] [stderr] Checking clap v2.33.3 [INFO] [stderr] Checking hmac v0.11.0 [INFO] [stderr] Checking sha-1 v0.9.8 [INFO] [stderr] Checking atoi v0.4.0 [INFO] [stderr] Checking string v0.2.1 [INFO] [stderr] Checking termcolor v1.1.2 [INFO] [stderr] Checking slice-of-array v0.2.1 [INFO] [stderr] Checking http-body v0.4.4 [INFO] [stderr] Checking fs2 v0.4.3 [INFO] [stderr] Checking listenfd v0.3.5 [INFO] [stderr] Checking brotli v3.3.2 [INFO] [stderr] Checking diligent-date-parser v0.1.3 [INFO] [stderr] Checking quick-xml v0.22.0 [INFO] [stderr] Checking rss v2.0.0 [INFO] [stderr] Checking atom_syndication v0.11.0 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Compiling toml v0.5.8 [INFO] [stderr] Checking env_logger v0.9.0 [INFO] [stderr] Compiling proc-macro-crate v0.1.5 [INFO] [stderr] Compiling derive_utils v0.11.2 [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] Compiling async-stream-impl v0.3.2 [INFO] [stderr] Compiling auto_enums_core v0.7.12 [INFO] [stderr] Compiling structopt-derive v0.4.18 [INFO] [stderr] Compiling thiserror-impl v1.0.30 [INFO] [stderr] Checking async-stream v0.3.2 [INFO] [stderr] Checking auto_enums v0.7.12 [INFO] [stderr] Checking structopt v0.3.25 [INFO] [stderr] Checking pin-project v1.0.8 [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 async-compression v0.3.8 [INFO] [stderr] Checking tokio-native-tls v0.3.0 [INFO] [stderr] Checking tokio-test v0.4.2 [INFO] [stderr] Checking h2 v0.3.7 [INFO] [stderr] Checking tower-http v0.1.2 [INFO] [stderr] Checking tower-test v0.4.0 [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 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 hyper v0.14.14 [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/router.rs [INFO] [stderr] * src/twitter/api.rs [INFO] [stderr] * src/util.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[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr_2021)*) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:102:38 [INFO] [stderr] | [INFO] [stderr] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr_2021)*) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | $method:ident $uri:expr_2021 => $Data:ty; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:7:69 [INFO] [stderr] | [INFO] [stderr] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr_2021)?),* $(,)? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/app.rs:241:14 [INFO] [stderr] | [INFO] [stderr] 241 | ($r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/websub/subscriber/service.rs:222:14 [INFO] [stderr] | [INFO] [stderr] 222 | ($input:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/account.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / api_requests! { [INFO] [stderr] 2 | | GET "https://api.twitter.com/1.1/account/verify_credentials.json" => super::super::User; [INFO] [stderr] 3 | | #[derive(Default)] [INFO] [stderr] 4 | | pub struct VerifyCredentials {;} [INFO] [stderr] 5 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / api_requests! { [INFO] [stderr] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stderr] 16 | | pub struct Members { [INFO] [stderr] 17 | | list_id: NonZeroU64; [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / api_requests! { [INFO] [stderr] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stderr] 16 | | pub struct Members { [INFO] [stderr] 17 | | list_id: NonZeroU64; [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / api_requests! { [INFO] [stderr] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stderr] 55 | | pub struct Create { [INFO] [stderr] 56 | | list_id: NonZeroU64, [INFO] [stderr] ... | [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / api_requests! { [INFO] [stderr] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stderr] 55 | | pub struct Create { [INFO] [stderr] 56 | | list_id: NonZeroU64, [INFO] [stderr] ... | [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / api_requests! { [INFO] [stderr] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stderr] 6 | | pub struct Retweet { [INFO] [stderr] 7 | | id: i64; [INFO] [stderr] ... | [INFO] [stderr] 14 | | } [INFO] [stderr] 15 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / api_requests! { [INFO] [stderr] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stderr] 6 | | pub struct Retweet { [INFO] [stderr] 7 | | id: i64; [INFO] [stderr] ... | [INFO] [stderr] 14 | | } [INFO] [stderr] 15 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [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] warning: elided lifetime has a name [INFO] [stderr] --> src/router.rs:54:61 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stderr] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: elided lifetime has a name [INFO] [stderr] --> src/router.rs:76:31 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn route_entry<'a>( [INFO] [stderr] | -- lifetime `'a` declared here [INFO] [stderr] ... [INFO] [stderr] 76 | ) -> impl Iterator + 'a { [INFO] [stderr] | ^ this elided lifetime gets resolved as `'a` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/websub/subscriber/service.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `RawFeed` [INFO] [stderr] --> src/websub/subscriber/service.rs:27:31 [INFO] [stderr] | [INFO] [stderr] 27 | use crate::feed::{self, Feed, RawFeed}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ConcatBody` and `http_service` [INFO] [stderr] --> src/websub/subscriber/service.rs:30:48 [INFO] [stderr] | [INFO] [stderr] 30 | use crate::util::{self, consts::HUB_SIGNATURE, http_service, now_unix, ConcatBody, Never}; [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] warning: unused import: `tower::ServiceExt` [INFO] [stderr] --> src/websub/subscriber/service.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use tower::ServiceExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 17 previous errors; 6 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0599, E0658. [INFO] [stderr] For more information about an error, try `rustc --explain E0599`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: unused import: `First` [INFO] [stdout] --> src/util.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 74 | pub use self::first::{first, First}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `system_time_now` [INFO] [stdout] --> src/util.rs:77:64 [INFO] [stdout] | [INFO] [stdout] 77 | pub use self::time::{instant_from_unix, instant_now, now_unix, system_time_now}; [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] = 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: elided lifetime has a name [INFO] [stdout] --> src/router.rs:54:61 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stdout] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:76:31 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn route_entry<'a>( [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] ... [INFO] [stdout] 76 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | while let Some(mut data) = ready!(this.body.as_mut().poll_data(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/util/concat_body.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if let Some(new) = self [INFO] [stdout] | ____________^ - [INFO] [stdout] | |____________________________| [INFO] [stdout] 160 | || .database_url [INFO] [stdout] 161 | || .as_ref() [INFO] [stdout] 162 | || .and_then(|path| resolve_database_uri(path, base)) [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] | [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/manifest.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 159 ~ match self [INFO] [stdout] 160 | .database_url [INFO] [stdout] 161 | .as_ref() [INFO] [stdout] 162 | .and_then(|path| resolve_database_uri(path, base)) [INFO] [stdout] 163 ~ { Some(new) => { [INFO] [stdout] 164 | self.database_url = Some(new); [INFO] [stdout] 165 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if let Some(ref url) = self.database_url { [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] 170 | Cow::Borrowed(url) [INFO] [stdout] 171 | } else if let Ok(url) = dotenv::var("DATABASE_URL") { [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/manifest.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | } else if let Ok(url) = dotenv::var("DATABASE_URL") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/manifest.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | } 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] 169 ~ match self.database_url { Some(ref url) => { [INFO] [stdout] 170 | Cow::Borrowed(url) [INFO] [stdout] 171 ~ } _ => { match dotenv::var("DATABASE_URL") { Ok(url) => { [INFO] [stdout] 172 | Cow::Owned(url) [INFO] [stdout] 173 ~ } _ => { [INFO] [stdout] 174 | Cow::Borrowed("pipitor.sqlite3") [INFO] [stdout] 175 ~ }}}} [INFO] [stdout] | [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:469:19 [INFO] [stdout] | [INFO] [stdout] 469 | while let Some(outbox) = a.next_element()? { [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/manifest.rs:471:13 [INFO] [stdout] | [INFO] [stdout] 471 | } [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] 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:212:15 [INFO] [stdout] | [INFO] [stdout] 212 | while let Some(tweets) = ready!(this.twitter_list.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/app.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:359:15 [INFO] [stdout] | [INFO] [stdout] 359 | while let Poll::Ready(v) = twitter.as_mut().poll_next(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:399:9 [INFO] [stdout] | [INFO] [stdout] 399 | } [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:503:15 [INFO] [stdout] | [INFO] [stdout] 503 | while let Poll::Ready(Some(tweets)) = this.twitter_list.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/app.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:508:19 [INFO] [stdout] | [INFO] [stdout] 508 | while let Poll::Ready(Some((topic, feed))) = websub.as_mut().poll_next(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:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | } [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/core.rs:151:25 [INFO] [stdout] | [INFO] [stdout] 151 | 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:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | } 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] 151 ~ let config = match self.manifest().twitter { Some(ref config) => { [INFO] [stdout] 152 | config [INFO] [stdout] 153 ~ } _ => { [INFO] [stdout] 154 | return Ok(()); [INFO] [stdout] 155 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/core.rs:181:25 [INFO] [stdout] | [INFO] [stdout] 181 | 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:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | } 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] 181 ~ let config = match self.manifest().twitter { Some(ref config) => { [INFO] [stdout] 182 | config [INFO] [stdout] 183 ~ } _ => { [INFO] [stdout] 184 | self.twitter_tokens = HashMap::new(); [INFO] [stdout] 185 | return; [INFO] [stdout] 186 ~ }}; [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:131:15 [INFO] [stdout] | [INFO] [stdout] 131 | while let Some(t) = tweets.next() { [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:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | } [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.rs:108:15 [INFO] [stdout] | [INFO] [stdout] 108 | while let Poll::Ready(option) = this.incoming.as_mut().try_poll_next(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/websub/subscriber.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | } [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: 74 warnings emitted [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/router.rs [INFO] [stderr] * src/twitter/api.rs [INFO] [stderr] * src/util.rs [INFO] [stderr] * src/util/time.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[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util/time.rs:148:10 [INFO] [stderr] | [INFO] [stderr] 148 | ($lhs:expr_2021, $rhs:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util/time.rs:148:26 [INFO] [stderr] | [INFO] [stderr] 148 | ($lhs:expr_2021, $rhs:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr_2021)*) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:102:38 [INFO] [stderr] | [INFO] [stderr] 102 | ($path:path, $dbg1:expr_2021 $(, $dbg:expr_2021)*) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | $method:ident $uri:expr_2021 => $Data:ty; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:7:69 [INFO] [stderr] | [INFO] [stderr] 7 | $($(#[$opt_attr:meta])* $optional:ident: $opt_ty:ty $(= $default:expr_2021)?),* $(,)? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/app.rs:241:14 [INFO] [stderr] | [INFO] [stderr] 241 | ($r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/websub/subscriber/service.rs:222:14 [INFO] [stderr] | [INFO] [stderr] 222 | ($input:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/account.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | / api_requests! { [INFO] [stderr] 2 | | GET "https://api.twitter.com/1.1/account/verify_credentials.json" => super::super::User; [INFO] [stderr] 3 | | #[derive(Default)] [INFO] [stderr] 4 | | pub struct VerifyCredentials {;} [INFO] [stderr] 5 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / api_requests! { [INFO] [stderr] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stderr] 16 | | pub struct Members { [INFO] [stderr] 17 | | list_id: NonZeroU64; [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | / api_requests! { [INFO] [stderr] 15 | | GET "https://api.twitter.com/1.1/lists/members.json" => ListsMembers; [INFO] [stderr] 16 | | pub struct Members { [INFO] [stderr] 17 | | list_id: NonZeroU64; [INFO] [stderr] ... | [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / api_requests! { [INFO] [stderr] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stderr] 55 | | pub struct Create { [INFO] [stderr] 56 | | list_id: NonZeroU64, [INFO] [stderr] ... | [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/lists.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | / api_requests! { [INFO] [stderr] 54 | | POST "https://api.twitter.com/1.1/lists/members/create.json" => de::IgnoredAny; [INFO] [stderr] 55 | | pub struct Create { [INFO] [stderr] 56 | | list_id: NonZeroU64, [INFO] [stderr] ... | [INFO] [stderr] 64 | | } [INFO] [stderr] 65 | | } [INFO] [stderr] | |_____- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / api_requests! { [INFO] [stderr] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stderr] 6 | | pub struct Retweet { [INFO] [stderr] 7 | | id: i64; [INFO] [stderr] ... | [INFO] [stderr] 14 | | } [INFO] [stderr] 15 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/twitter/api.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | ($this:expr_2021) => ($this); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] ::: src/twitter/api/statuses.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / api_requests! { [INFO] [stderr] 5 | | POST "https://api.twitter.com/1.1/statuses/retweet.json" => de::IgnoredAny; [INFO] [stderr] 6 | | pub struct Retweet { [INFO] [stderr] 7 | | id: i64; [INFO] [stderr] ... | [INFO] [stderr] 14 | | } [INFO] [stderr] 15 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] = note: this error originates in the macro `api_requests` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [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] warning: elided lifetime has a name [INFO] [stderr] --> src/router.rs:54:61 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stderr] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stderr] [INFO] [stderr] warning: elided lifetime has a name [INFO] [stderr] --> src/router.rs:76:31 [INFO] [stderr] | [INFO] [stderr] 72 | pub fn route_entry<'a>( [INFO] [stderr] | -- lifetime `'a` declared here [INFO] [stderr] ... [INFO] [stderr] 76 | ) -> impl Iterator + 'a { [INFO] [stderr] | ^ this elided lifetime gets resolved as `'a` [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::mem` [INFO] [stderr] --> src/websub/subscriber/service.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::mem; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `RawFeed` [INFO] [stderr] --> src/websub/subscriber/service.rs:27:31 [INFO] [stderr] | [INFO] [stderr] 27 | use crate::feed::{self, Feed, RawFeed}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ConcatBody` and `http_service` [INFO] [stderr] --> src/websub/subscriber/service.rs:30:48 [INFO] [stderr] | [INFO] [stderr] 30 | use crate::util::{self, consts::HUB_SIGNATURE, http_service, now_unix, ConcatBody, Never}; [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 `&subscriber::service::Service>, http_body::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] warning: unused import: `tower::ServiceExt` [INFO] [stderr] --> src/websub/subscriber/service.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use tower::ServiceExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 20 previous errors; 6 warnings emitted [INFO] [stderr] [INFO] [stderr] Some errors have detailed explanations: E0599, E0658. [INFO] [stderr] For more information about an 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: unused import: `First` [INFO] [stdout] --> src/util.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 74 | pub use self::first::{first, First}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `system_time_now` [INFO] [stdout] --> src/util.rs:77:64 [INFO] [stdout] | [INFO] [stdout] 77 | pub use self::time::{instant_from_unix, instant_now, now_unix, system_time_now}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sleep` [INFO] [stdout] --> src/util.rs:79:40 [INFO] [stdout] | [INFO] [stdout] 79 | pub use self::time::{FutureTimeoutExt, Sleep}; [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: elided lifetime has a name [INFO] [stdout] --> src/router.rs:54:61 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stdout] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:76:31 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn route_entry<'a>( [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] ... [INFO] [stdout] 76 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util/concat_body.rs:39:15 [INFO] [stdout] | [INFO] [stdout] 39 | while let Some(mut data) = ready!(this.body.as_mut().poll_data(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/util/concat_body.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | if let Some(new) = self [INFO] [stdout] | ____________^ - [INFO] [stdout] | |____________________________| [INFO] [stdout] 160 | || .database_url [INFO] [stdout] 161 | || .as_ref() [INFO] [stdout] 162 | || .and_then(|path| resolve_database_uri(path, base)) [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] | [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/manifest.rs:165:9 [INFO] [stdout] | [INFO] [stdout] 165 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 159 ~ match self [INFO] [stdout] 160 | .database_url [INFO] [stdout] 161 | .as_ref() [INFO] [stdout] 162 | .and_then(|path| resolve_database_uri(path, base)) [INFO] [stdout] 163 ~ { Some(new) => { [INFO] [stdout] 164 | self.database_url = Some(new); [INFO] [stdout] 165 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 169 | if let Some(ref url) = self.database_url { [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] 170 | Cow::Borrowed(url) [INFO] [stdout] 171 | } else if let Ok(url) = dotenv::var("DATABASE_URL") { [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/manifest.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | } else if let Ok(url) = dotenv::var("DATABASE_URL") { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/manifest.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 173 | } 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] 169 ~ match self.database_url { Some(ref url) => { [INFO] [stdout] 170 | Cow::Borrowed(url) [INFO] [stdout] 171 ~ } _ => { match dotenv::var("DATABASE_URL") { Ok(url) => { [INFO] [stdout] 172 | Cow::Owned(url) [INFO] [stdout] 173 ~ } _ => { [INFO] [stdout] 174 | Cow::Borrowed("pipitor.sqlite3") [INFO] [stdout] 175 ~ }}}} [INFO] [stdout] | [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/manifest.rs:469:19 [INFO] [stdout] | [INFO] [stdout] 469 | while let Some(outbox) = a.next_element()? { [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/manifest.rs:471:13 [INFO] [stdout] | [INFO] [stdout] 471 | } [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] 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:212:15 [INFO] [stdout] | [INFO] [stdout] 212 | while let Some(tweets) = ready!(this.twitter_list.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/app.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:359:15 [INFO] [stdout] | [INFO] [stdout] 359 | while let Poll::Ready(v) = twitter.as_mut().poll_next(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:399:9 [INFO] [stdout] | [INFO] [stdout] 399 | } [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:503:15 [INFO] [stdout] | [INFO] [stdout] 503 | while let Poll::Ready(Some(tweets)) = this.twitter_list.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/app.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app.rs:508:19 [INFO] [stdout] | [INFO] [stdout] 508 | while let Poll::Ready(Some((topic, feed))) = websub.as_mut().poll_next(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:510:13 [INFO] [stdout] | [INFO] [stdout] 510 | } [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/core.rs:151:25 [INFO] [stdout] | [INFO] [stdout] 151 | 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:153:9 [INFO] [stdout] | [INFO] [stdout] 153 | } 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] 151 ~ let config = match self.manifest().twitter { Some(ref config) => { [INFO] [stdout] 152 | config [INFO] [stdout] 153 ~ } _ => { [INFO] [stdout] 154 | return Ok(()); [INFO] [stdout] 155 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/core.rs:181:25 [INFO] [stdout] | [INFO] [stdout] 181 | 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:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | } 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] 181 ~ let config = match self.manifest().twitter { Some(ref config) => { [INFO] [stdout] 182 | config [INFO] [stdout] 183 ~ } _ => { [INFO] [stdout] 184 | self.twitter_tokens = HashMap::new(); [INFO] [stdout] 185 | return; [INFO] [stdout] 186 ~ }}; [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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/app/sender.rs:131:15 [INFO] [stdout] | [INFO] [stdout] 131 | while let Some(t) = tweets.next() { [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:133:9 [INFO] [stdout] | [INFO] [stdout] 133 | } [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.rs:108:15 [INFO] [stdout] | [INFO] [stdout] 108 | while let Poll::Ready(option) = this.incoming.as_mut().try_poll_next(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/websub/subscriber.rs:116:9 [INFO] [stdout] | [INFO] [stdout] 116 | } [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] [stdout] warning: 78 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Fixed src/bin/pipitor/twitter_list_sync.rs (1 fix) [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/common/ipc.rs (7 fixes) [INFO] [stderr] Fixed src/bin/pipitor/twitter_login.rs (2 fixes) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.20s [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] warning: unused import: `First` [INFO] [stdout] --> src/util.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 74 | pub use self::first::{first, First}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `system_time_now` [INFO] [stdout] --> src/util.rs:77:64 [INFO] [stdout] | [INFO] [stdout] 77 | pub use self::time::{instant_from_unix, instant_now, now_unix, system_time_now}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:54:61 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stdout] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:76:31 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn route_entry<'a>( [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] ... [INFO] [stdout] 76 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `First` [INFO] [stdout] --> src/util.rs:74:30 [INFO] [stdout] | [INFO] [stdout] 74 | pub use self::first::{first, First}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `system_time_now` [INFO] [stdout] --> src/util.rs:77:64 [INFO] [stdout] | [INFO] [stdout] 77 | pub use self::time::{instant_from_unix, instant_now, now_unix, system_time_now}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Sleep` [INFO] [stdout] --> src/util.rs:79:40 [INFO] [stdout] | [INFO] [stdout] 79 | pub use self::time::{FutureTimeoutExt, Sleep}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:54:61 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn get<'a>(&'a self, topic: &TopicId<'a>) -> Option<&[Arc]> { [INFO] [stdout] | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(elided_named_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: elided lifetime has a name [INFO] [stdout] --> src/router.rs:76:31 [INFO] [stdout] | [INFO] [stdout] 72 | pub fn route_entry<'a>( [INFO] [stdout] | -- lifetime `'a` declared here [INFO] [stdout] ... [INFO] [stdout] 76 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^ this elided lifetime gets resolved as `'a` [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] [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] [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] [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] [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] [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] [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] [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: aborting due to 12 previous errors; 4 warnings emitted [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; 4 warnings emitted [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] [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] [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] [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] [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] [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] 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] [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] [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] [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] [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] [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] [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] [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] [INFO] [stdout] error: aborting due to 22 previous errors; 5 warnings emitted [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; 5 warnings emitted [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" "1d41db760fadb8e798addc25592922969c287a1093ddfff31457ad637f3d7324", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1d41db760fadb8e798addc25592922969c287a1093ddfff31457ad637f3d7324", kill_on_drop: false }` [INFO] [stdout] 1d41db760fadb8e798addc25592922969c287a1093ddfff31457ad637f3d7324