[INFO] fetching crate salvo_core 0.72.0... [INFO] checking salvo_core-0.72.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate salvo_core 0.72.0 into /workspace/builds/worker-1-tc2/source [INFO] validating manifest of crates.io crate salvo_core 0.72.0 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 salvo_core 0.72.0 [INFO] finished tweaking crates.io crate salvo_core 0.72.0 [INFO] tweaked toml for crates.io crate salvo_core 0.72.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 224 packages to latest compatible versions [INFO] [stderr] Adding base64 v0.21.7 (available: v0.22.1) [INFO] [stderr] Adding core-foundation v0.9.4 (available: v0.10.0) [INFO] [stderr] Adding foreign-types v0.3.2 (available: v0.5.0) [INFO] [stderr] Adding foreign-types-shared v0.1.1 (available: v0.3.1) [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding hermit-abi v0.3.9 (available: v0.4.0) [INFO] [stderr] Adding idna v0.5.0 (available: v1.0.2) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding security-framework v2.11.1 (available: v3.0.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [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-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 03bed0fad3ad75a3198a6a2318798bfd14a3211c987c62678f7362f388fa1335 [INFO] running `Command { std: "docker" "start" "-a" "03bed0fad3ad75a3198a6a2318798bfd14a3211c987c62678f7362f388fa1335", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "03bed0fad3ad75a3198a6a2318798bfd14a3211c987c62678f7362f388fa1335", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "03bed0fad3ad75a3198a6a2318798bfd14a3211c987c62678f7362f388fa1335", kill_on_drop: false }` [INFO] [stdout] 03bed0fad3ad75a3198a6a2318798bfd14a3211c987c62678f7362f388fa1335 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 1fc316a660b85847b76ef66b14ab1e02dece27be0d496d1fb5110f694396708d [INFO] running `Command { std: "docker" "start" "-a" "1fc316a660b85847b76ef66b14ab1e02dece27be0d496d1fb5110f694396708d", 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 (2 fixes) [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling zstd-sys v2.0.13+zstd.1.5.6 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling zstd-safe v7.2.1 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling toml_datetime v0.6.8 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Checking alloc-no-stdlib v2.0.4 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling multer v3.1.0 [INFO] [stderr] Checking alloc-stdlib v0.2.2 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Compiling toml_edit v0.22.22 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Checking brotli-decompressor v4.0.1 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Compiling salvo-serde-util v0.72.4 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling enumflags2_derive v0.7.10 [INFO] [stderr] Compiling mime-infer v3.0.0 [INFO] [stderr] Checking headers-core v0.3.0 [INFO] [stderr] Checking fastrand v2.1.1 [INFO] [stderr] Checking xml-rs v0.8.22 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking inout v0.1.3 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking universal-hash v0.5.1 [INFO] [stderr] Checking aead v0.5.2 [INFO] [stderr] Checking polyval v0.6.2 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Checking ctr v0.9.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking ghash v0.5.1 [INFO] [stderr] Checking serde-xml-rs v0.6.0 [INFO] [stderr] Checking headers v0.4.0 [INFO] [stderr] Checking enumflags2 v0.7.10 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Checking brotli v6.0.0 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking multimap v0.10.0 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking aes-gcm v0.10.3 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling proc-macro-crate v3.2.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking tokio-util v0.7.12 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Checking h2 v0.4.6 [INFO] [stderr] Compiling salvo_macros v0.72.4 [INFO] [stderr] Checking zstd v0.13.2 [INFO] [stderr] Checking hyper v1.4.1 [INFO] [stderr] Checking hyper-util v0.1.9 [INFO] [stderr] Checking salvo_core v0.72.0 (/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 `salvo_core` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/http/errors/status_error.rs [INFO] [stderr] * src/routing/filters/others.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/http/errors/status_error.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:44 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:61 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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] warning: unused variable: `state` [INFO] [stderr] --> src/routing/filters/others.rs:18:41 [INFO] [stderr] | [INFO] [stderr] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [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/http/errors/status_error.rs:15:33 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr_2021, $name:expr, $brief: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/http/errors/status_error.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:58 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr, $name:expr, $brief:expr_2021); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/routing/filters/others.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/catcher.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | let (format, data) = if let ResBody::Error(body) = &res.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/catcher.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 299 ~ let (format, data) = match &res.body { ResBody::Error(body) => { [INFO] [stdout] 300 | status_error_bytes(body, &format, footer) [INFO] [stdout] 301 ~ } _ => { [INFO] [stdout] 302 | let status = res.status_code.unwrap_or(StatusCode::NOT_FOUND); [INFO] [stdout] ... [INFO] [stdout] 307 | ) [INFO] [stdout] 308 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/conn/proto.rs:82:36 [INFO] [stdout] | [INFO] [stdout] 82 | let (version, socket) = if let Some(fusewire) = &fusewire { [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/conn/proto.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } 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] 82 ~ let (version, socket) = match &fusewire { Some(fusewire) => { [INFO] [stdout] 83 | tokio::select! { [INFO] [stdout] ... [INFO] [stdout] 91 | } [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | read_version(socket).await? [INFO] [stdout] 94 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | if let Some(value) = self.map.get(key) { [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/depot.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | } 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] 136 ~ match self.map.get(key) { Some(value) => { [INFO] [stdout] 137 | value.downcast_ref::().ok_or(Some(value)) [INFO] [stdout] 138 ~ } _ => { [INFO] [stdout] 139 | Err(None) [INFO] [stdout] 140 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:151:12 [INFO] [stdout] | [INFO] [stdout] 151 | if let Some(value) = self.map.get_mut(key) { [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/depot.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | } 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 ~ match self.map.get_mut(key) { Some(value) => { [INFO] [stdout] 152 | if value.downcast_mut::().is_some() { [INFO] [stdout] ... [INFO] [stdout] 158 | } [INFO] [stdout] 159 ~ } _ => { [INFO] [stdout] 160 | Err(None) [INFO] [stdout] 161 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | if let Some(value) = self.map.remove(key) { [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/depot.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | } 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] 170 ~ match self.map.remove(key) { Some(value) => { [INFO] [stdout] 171 | value.downcast::().map(|b| *b).map_err(Some) [INFO] [stdout] 172 ~ } _ => { [INFO] [stdout] 173 | Err(None) [INFO] [stdout] 174 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fs/named_file.rs:446:16 [INFO] [stdout] | [INFO] [stdout] 446 | if let Some(content_disposition) = self.content_disposition.take() { [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/fs/named_file.rs:449:13 [INFO] [stdout] | [INFO] [stdout] 449 | } else if !res.headers().contains_key(CONTENT_DISPOSITION) { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 446 ~ match self.content_disposition.take() { Some(content_disposition) => { [INFO] [stdout] 447 | res.headers_mut() [INFO] [stdout] 448 | .insert(CONTENT_DISPOSITION, content_disposition); [INFO] [stdout] 449 ~ } _ => if !res.headers().contains_key(CONTENT_DISPOSITION) { [INFO] [stdout] 450 | // skip to set CONTENT_DISPOSITION header if it is already set. [INFO] [stdout] ... [INFO] [stdout] 459 | } [INFO] [stdout] 460 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fs/named_file.rs:484:20 [INFO] [stdout] | [INFO] [stdout] 484 | if let Ok(range) = HttpRange::parse(range, length) { [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/fs/named_file.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | } 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] 484 ~ match HttpRange::parse(range, length) { Ok(range) => { [INFO] [stdout] 485 | length = range[0].length; [INFO] [stdout] 486 | offset = range[0].start; [INFO] [stdout] 487 ~ } _ => { [INFO] [stdout] 488 | res.headers_mut() [INFO] [stdout] ... [INFO] [stdout] 491 | return; [INFO] [stdout] 492 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | while let Some(mut field) = multipart.next_field().await? { [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/http/form.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | if let Some(name) = field.name().map(|s| s.to_owned()) { [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/http/form.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match field.name().map(|s| s.to_owned()) { Some(name) => { [INFO] [stdout] 72 | if field.headers().get(CONTENT_TYPE).is_some() { [INFO] [stdout] ... [INFO] [stdout] 78 | } [INFO] [stdout] 79 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:174:15 [INFO] [stdout] | [INFO] [stdout] 174 | while let Some(chunk) = field.chunk().await? { [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/http/form.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | let cookies = if let Some(header) = headers.get(http::header::SET_COOKIE) { [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/http/response.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | } 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 cookies = match headers.get(http::header::SET_COOKIE) { Some(header) => { [INFO] [stdout] 64 | let mut cookie_jar = CookieJar::new(); [INFO] [stdout] ... [INFO] [stdout] 72 | cookie_jar [INFO] [stdout] 73 ~ } _ => { [INFO] [stdout] 74 | CookieJar::new() [INFO] [stdout] 75 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:232:16 [INFO] [stdout] | [INFO] [stdout] 232 | if let Ok(hv) = cookie.encoded().to_string().parse() { [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/http/response.rs:234:13 [INFO] [stdout] | [INFO] [stdout] 234 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 232 ~ match cookie.encoded().to_string().parse() { Ok(hv) => { [INFO] [stdout] 233 | headers.append(http::header::SET_COOKIE, hv); [INFO] [stdout] 234 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/body/res.rs:180:24 [INFO] [stdout] | [INFO] [stdout] 180 | if let Some(chunk) = ready!(Pin::new(&mut rx.data_rx).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/http/body/res.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/mod.rs:609:19 [INFO] [stdout] | [INFO] [stdout] 609 | while let Some(h) = handler.take() { [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/routing/mod.rs:618:13 [INFO] [stdout] | [INFO] [stdout] 618 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/filters/path.rs:816:23 [INFO] [stdout] | [INFO] [stdout] 816 | } else if let Some(wisp) = scaned.pop() { [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/routing/filters/path.rs:818:13 [INFO] [stdout] | [INFO] [stdout] 818 | } 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] 816 ~ } else { match scaned.pop() { Some(wisp) => { [INFO] [stdout] 817 | wisps.push(wisp); [INFO] [stdout] 818 ~ } _ => { [INFO] [stdout] 819 | return Err("scan parts is empty".to_owned()); [INFO] [stdout] 820 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/router.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(dm) = child.detect(req, path_state) { [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/routing/router.rs:97:17 [INFO] [stdout] | [INFO] [stdout] 97 | } 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] 92 ~ match child.detect(req, path_state) { Some(dm) => { [INFO] [stdout] 93 | return Some(DetectMatched { [INFO] [stdout] ... [INFO] [stdout] 96 | }); [INFO] [stdout] 97 ~ } _ => { [INFO] [stdout] 98 | path_state.cursor = original_cursor; [INFO] [stdout] 99 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:267:12 [INFO] [stdout] | [INFO] [stdout] 267 | if let Some(item) = self.0.into_iter().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/serde/mod.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 ~ match self.0.into_iter().next() { Some(item) => { [INFO] [stdout] 268 | item.deserialize_any(visitor) [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | Err(DeError::custom("expected vec not empty")) [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:292:12 [INFO] [stdout] | [INFO] [stdout] 292 | if let Some(item) = self.0.into_iter().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/serde/mod.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | } 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] 292 ~ match self.0.into_iter().next() { Some(item) => { [INFO] [stdout] 293 | visitor.visit_enum(ValueEnumAccess(item.0)) [INFO] [stdout] 294 ~ } _ => { [INFO] [stdout] 295 | Err(DeError::custom("expected vec not empty")) [INFO] [stdout] 296 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | if let Some(item) = self.0.into_iter().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] 352 | / forward_vec_parsed_value! { [INFO] [stdout] 353 | | bool => deserialize_bool, [INFO] [stdout] 354 | | u8 => deserialize_u8, [INFO] [stdout] 355 | | u16 => deserialize_u16, [INFO] [stdout] ... | [INFO] [stdout] 363 | | f64 => deserialize_f64, [INFO] [stdout] 364 | | } [INFO] [stdout] | |_____- in this macro invocation [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/serde/mod.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | } else { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 352 | / forward_vec_parsed_value! { [INFO] [stdout] 353 | | bool => deserialize_bool, [INFO] [stdout] 354 | | u8 => deserialize_u8, [INFO] [stdout] 355 | | u16 => deserialize_u16, [INFO] [stdout] ... | [INFO] [stdout] 363 | | f64 => deserialize_f64, [INFO] [stdout] 364 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `forward_vec_parsed_value` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/request.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | if let Some(data) = request.payload.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/serde/request.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 96 ~ match request.payload.get() { Some(data) => { [INFO] [stdout] 97 | if !data.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/server.rs:253:20 [INFO] [stdout] | [INFO] [stdout] 253 | if let Some(addr) = holding.local_addr.clone().into_std() { [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/server.rs:260:17 [INFO] [stdout] | [INFO] [stdout] 260 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 253 ~ match holding.local_addr.clone().into_std() { Some(addr) => { [INFO] [stdout] 254 | let port = addr.port(); [INFO] [stdout] ... [INFO] [stdout] 259 | ); [INFO] [stdout] 260 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures_util::Future` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/service.rs:190:47 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn handle(&self, mut req: Request) -> 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/service.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn handle(&self, mut req: Request) -> impl Future { [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] 190 | pub fn handle(&self, mut req: Request) -> impl Future + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(dm) = router.detect(&mut req, &mut path_state) { [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/service.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | } else if !hoops.is_empty() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match router.detect(&mut req, &mut path_state) { Some(dm) => { [INFO] [stdout] 211 | req.params = path_state.params; [INFO] [stdout] ... [INFO] [stdout] 216 | } [INFO] [stdout] 217 ~ } _ => if !hoops.is_empty() { [INFO] [stdout] 218 | req.params = path_state.params; [INFO] [stdout] ... [INFO] [stdout] 225 | res.status_code = Some(StatusCode::METHOD_NOT_ALLOWED); [INFO] [stdout] 226 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(ctype) = res [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] 231 | | .headers() [INFO] [stdout] 232 | | .get(CONTENT_TYPE) [INFO] [stdout] 233 | | .and_then(|c| c.to_str().ok()) [INFO] [stdout] 234 | | .and_then(|c| c.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/service.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match res [INFO] [stdout] 231 | .headers() [INFO] [stdout] ... [INFO] [stdout] 234 | .and_then(|c| c.parse::().ok()) [INFO] [stdout] 235 ~ { Some(ctype) => { [INFO] [stdout] 236 | let mut is_allowed = false; [INFO] [stdout] ... [INFO] [stdout] 245 | } [INFO] [stdout] 246 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:267:20 [INFO] [stdout] | [INFO] [stdout] 267 | if let Some(catcher) = catcher { [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/service.rs:269:17 [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 ~ match catcher { Some(catcher) => { [INFO] [stdout] 268 | catcher.catch(&mut req, &mut depot, &mut res).await; [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | write_error_default(&req, &mut res, None); [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:328:16 [INFO] [stdout] | [INFO] [stdout] 328 | if let Some(host) = req [INFO] [stdout] | ________________^ - [INFO] [stdout] | |_________________________________| [INFO] [stdout] 329 | || .headers() [INFO] [stdout] 330 | || .get(http::header::HOST) [INFO] [stdout] 331 | || .and_then(|host| host.to_str().ok()) [INFO] [stdout] 332 | || .and_then(|host| host.parse::().ok()) [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/service.rs:340:13 [INFO] [stdout] | [INFO] [stdout] 340 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 328 ~ match req [INFO] [stdout] 329 | .headers() [INFO] [stdout] ... [INFO] [stdout] 332 | .and_then(|host| host.parse::().ok()) [INFO] [stdout] 333 ~ { Some(host) => { [INFO] [stdout] 334 | let mut uri_parts = std::mem::take(req.uri_mut()).into_parts(); [INFO] [stdout] ... [INFO] [stdout] 339 | } [INFO] [stdout] 340 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | if let Ok(uri) = http::uri::Uri::from_parts(uri_parts) { [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/service.rs:339:17 [INFO] [stdout] | [INFO] [stdout] 339 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 337 ~ match http::uri::Uri::from_parts(uri_parts) { Ok(uri) => { [INFO] [stdout] 338 | *req.uri_mut() = uri; [INFO] [stdout] 339 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | } else if let (Some(last_modified), Some(since)) = ( [INFO] [stdout] | ___________________^ [INFO] [stdout] 68 | | &self.last_modified, [INFO] [stdout] | | ---- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 69 | | req_headers.typed_get::(), [INFO] [stdout] 70 | | ) { [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/writing/seek.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | } 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] 67 ~ } else { match ( [INFO] [stdout] 68 | &self.last_modified, [INFO] [stdout] 69 | req_headers.typed_get::(), [INFO] [stdout] 70 ~ ) { (Some(last_modified), Some(since)) => { [INFO] [stdout] 71 | !since.precondition_passes(*last_modified) [INFO] [stdout] 72 ~ } _ => { [INFO] [stdout] 73 | false [INFO] [stdout] 74 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 81 | } else if let (Some(last_modified), Some(since)) = ( [INFO] [stdout] | ___________________^ [INFO] [stdout] 82 | | &self.last_modified, [INFO] [stdout] | | ---- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 83 | | req_headers.typed_get::(), [INFO] [stdout] 84 | | ) { [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/writing/seek.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] 81 ~ } else { match ( [INFO] [stdout] 82 | &self.last_modified, [INFO] [stdout] 83 | req_headers.typed_get::(), [INFO] [stdout] 84 ~ ) { (Some(last_modified), Some(since)) => { [INFO] [stdout] 85 | !since.is_modified(*last_modified) [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | false [INFO] [stdout] 88 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if let Ok(range) = HttpRange::parse(range, length) { [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/writing/seek.rs:107:17 [INFO] [stdout] | [INFO] [stdout] 107 | } 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] 104 ~ match HttpRange::parse(range, length) { Ok(range) => { [INFO] [stdout] 105 | length = range[0].length; [INFO] [stdout] 106 | offset = range[0].start; [INFO] [stdout] 107 ~ } _ => { [INFO] [stdout] 108 | res.headers_mut() [INFO] [stdout] ... [INFO] [stdout] 111 | return; [INFO] [stdout] 112 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 34 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `salvo_core` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/http/errors/status_error.rs [INFO] [stderr] * src/routing/filters/others.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/http/errors/status_error.rs:15:27 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:44 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:61 [INFO] [stderr] | [INFO] [stderr] 15 | $sname:ident, $code:expr_2021, $name:expr_2021, $brief: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] warning: unused variable: `state` [INFO] [stderr] --> src/routing/filters/others.rs:18:41 [INFO] [stderr] | [INFO] [stderr] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stderr] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [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/http/errors/status_error.rs:15:33 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr_2021, $name:expr, $brief: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/http/errors/status_error.rs:15:45 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr, $name:expr_2021, $brief: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/http/errors/status_error.rs:15:58 [INFO] [stdout] | [INFO] [stdout] 15 | $sname:ident, $code:expr, $name:expr, $brief: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] 15 | $sname:ident, $code:expr, $name:expr, $brief:expr_2021); [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/routing/filters/others.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/catcher.rs:299:29 [INFO] [stdout] | [INFO] [stdout] 299 | let (format, data) = if let ResBody::Error(body) = &res.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/catcher.rs:301:5 [INFO] [stdout] | [INFO] [stdout] 301 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 299 ~ let (format, data) = match &res.body { ResBody::Error(body) => { [INFO] [stdout] 300 | status_error_bytes(body, &format, footer) [INFO] [stdout] 301 ~ } _ => { [INFO] [stdout] 302 | let status = res.status_code.unwrap_or(StatusCode::NOT_FOUND); [INFO] [stdout] ... [INFO] [stdout] 307 | ) [INFO] [stdout] 308 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/conn/proto.rs:82:36 [INFO] [stdout] | [INFO] [stdout] 82 | let (version, socket) = if let Some(fusewire) = &fusewire { [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/conn/proto.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } 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] 82 ~ let (version, socket) = match &fusewire { Some(fusewire) => { [INFO] [stdout] 83 | tokio::select! { [INFO] [stdout] ... [INFO] [stdout] 91 | } [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | read_version(socket).await? [INFO] [stdout] 94 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:136:12 [INFO] [stdout] | [INFO] [stdout] 136 | if let Some(value) = self.map.get(key) { [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/depot.rs:138:9 [INFO] [stdout] | [INFO] [stdout] 138 | } 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] 136 ~ match self.map.get(key) { Some(value) => { [INFO] [stdout] 137 | value.downcast_ref::().ok_or(Some(value)) [INFO] [stdout] 138 ~ } _ => { [INFO] [stdout] 139 | Err(None) [INFO] [stdout] 140 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:151:12 [INFO] [stdout] | [INFO] [stdout] 151 | if let Some(value) = self.map.get_mut(key) { [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/depot.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | } 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 ~ match self.map.get_mut(key) { Some(value) => { [INFO] [stdout] 152 | if value.downcast_mut::().is_some() { [INFO] [stdout] ... [INFO] [stdout] 158 | } [INFO] [stdout] 159 ~ } _ => { [INFO] [stdout] 160 | Err(None) [INFO] [stdout] 161 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/depot.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | if let Some(value) = self.map.remove(key) { [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/depot.rs:172:9 [INFO] [stdout] | [INFO] [stdout] 172 | } 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] 170 ~ match self.map.remove(key) { Some(value) => { [INFO] [stdout] 171 | value.downcast::().map(|b| *b).map_err(Some) [INFO] [stdout] 172 ~ } _ => { [INFO] [stdout] 173 | Err(None) [INFO] [stdout] 174 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fs/named_file.rs:446:16 [INFO] [stdout] | [INFO] [stdout] 446 | if let Some(content_disposition) = self.content_disposition.take() { [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/fs/named_file.rs:449:13 [INFO] [stdout] | [INFO] [stdout] 449 | } else if !res.headers().contains_key(CONTENT_DISPOSITION) { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 446 ~ match self.content_disposition.take() { Some(content_disposition) => { [INFO] [stdout] 447 | res.headers_mut() [INFO] [stdout] 448 | .insert(CONTENT_DISPOSITION, content_disposition); [INFO] [stdout] 449 ~ } _ => if !res.headers().contains_key(CONTENT_DISPOSITION) { [INFO] [stdout] 450 | // skip to set CONTENT_DISPOSITION header if it is already set. [INFO] [stdout] ... [INFO] [stdout] 459 | } [INFO] [stdout] 460 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fs/named_file.rs:484:20 [INFO] [stdout] | [INFO] [stdout] 484 | if let Ok(range) = HttpRange::parse(range, length) { [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/fs/named_file.rs:487:17 [INFO] [stdout] | [INFO] [stdout] 487 | } 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] 484 ~ match HttpRange::parse(range, length) { Ok(range) => { [INFO] [stdout] 485 | length = range[0].length; [INFO] [stdout] 486 | offset = range[0].start; [INFO] [stdout] 487 ~ } _ => { [INFO] [stdout] 488 | res.headers_mut() [INFO] [stdout] ... [INFO] [stdout] 491 | return; [INFO] [stdout] 492 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/fs/mod.rs:107:15 [INFO] [stdout] | [INFO] [stdout] 107 | while let Some(Ok(read_chunck)) = chunk.next().await { [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/fs/mod.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 109 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:70:27 [INFO] [stdout] | [INFO] [stdout] 70 | while let Some(mut field) = multipart.next_field().await? { [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/http/form.rs:80:21 [INFO] [stdout] | [INFO] [stdout] 80 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:71:28 [INFO] [stdout] | [INFO] [stdout] 71 | if let Some(name) = field.name().map(|s| s.to_owned()) { [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/http/form.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match field.name().map(|s| s.to_owned()) { Some(name) => { [INFO] [stdout] 72 | if field.headers().get(CONTENT_TYPE).is_some() { [INFO] [stdout] ... [INFO] [stdout] 78 | } [INFO] [stdout] 79 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/form.rs:174:15 [INFO] [stdout] | [INFO] [stdout] 174 | while let Some(chunk) = field.chunk().await? { [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/http/form.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:63:26 [INFO] [stdout] | [INFO] [stdout] 63 | let cookies = if let Some(header) = headers.get(http::header::SET_COOKIE) { [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/http/response.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 73 | } 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 cookies = match headers.get(http::header::SET_COOKIE) { Some(header) => { [INFO] [stdout] 64 | let mut cookie_jar = CookieJar::new(); [INFO] [stdout] ... [INFO] [stdout] 72 | cookie_jar [INFO] [stdout] 73 ~ } _ => { [INFO] [stdout] 74 | CookieJar::new() [INFO] [stdout] 75 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:232:16 [INFO] [stdout] | [INFO] [stdout] 232 | if let Ok(hv) = cookie.encoded().to_string().parse() { [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/http/response.rs:234:13 [INFO] [stdout] | [INFO] [stdout] 234 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 232 ~ match cookie.encoded().to_string().parse() { Ok(hv) => { [INFO] [stdout] 233 | headers.append(http::header::SET_COOKIE, hv); [INFO] [stdout] 234 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:549:15 [INFO] [stdout] | [INFO] [stdout] 549 | while let Some(Ok(data)) = body.next().await { [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/http/response.rs:551:9 [INFO] [stdout] | [INFO] [stdout] 551 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/response.rs:564:15 [INFO] [stdout] | [INFO] [stdout] 564 | while let Some(Ok(data)) = body.next().await { [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/http/response.rs:566:9 [INFO] [stdout] | [INFO] [stdout] 566 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/http/body/res.rs:180:24 [INFO] [stdout] | [INFO] [stdout] 180 | if let Some(chunk) = ready!(Pin::new(&mut rx.data_rx).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/http/body/res.rs:182:21 [INFO] [stdout] | [INFO] [stdout] 182 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/mod.rs:609:19 [INFO] [stdout] | [INFO] [stdout] 609 | while let Some(h) = handler.take() { [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/routing/mod.rs:618:13 [INFO] [stdout] | [INFO] [stdout] 618 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/filters/path.rs:816:23 [INFO] [stdout] | [INFO] [stdout] 816 | } else if let Some(wisp) = scaned.pop() { [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/routing/filters/path.rs:818:13 [INFO] [stdout] | [INFO] [stdout] 818 | } 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] 816 ~ } else { match scaned.pop() { Some(wisp) => { [INFO] [stdout] 817 | wisps.push(wisp); [INFO] [stdout] 818 ~ } _ => { [INFO] [stdout] 819 | return Err("scan parts is empty".to_owned()); [INFO] [stdout] 820 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/routing/router.rs:92:20 [INFO] [stdout] | [INFO] [stdout] 92 | if let Some(dm) = child.detect(req, path_state) { [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/routing/router.rs:97:17 [INFO] [stdout] | [INFO] [stdout] 97 | } 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] 92 ~ match child.detect(req, path_state) { Some(dm) => { [INFO] [stdout] 93 | return Some(DetectMatched { [INFO] [stdout] ... [INFO] [stdout] 96 | }); [INFO] [stdout] 97 ~ } _ => { [INFO] [stdout] 98 | path_state.cursor = original_cursor; [INFO] [stdout] 99 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:267:12 [INFO] [stdout] | [INFO] [stdout] 267 | if let Some(item) = self.0.into_iter().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/serde/mod.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 ~ match self.0.into_iter().next() { Some(item) => { [INFO] [stdout] 268 | item.deserialize_any(visitor) [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | Err(DeError::custom("expected vec not empty")) [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:292:12 [INFO] [stdout] | [INFO] [stdout] 292 | if let Some(item) = self.0.into_iter().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/serde/mod.rs:294:9 [INFO] [stdout] | [INFO] [stdout] 294 | } 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] 292 ~ match self.0.into_iter().next() { Some(item) => { [INFO] [stdout] 293 | visitor.visit_enum(ValueEnumAccess(item.0)) [INFO] [stdout] 294 ~ } _ => { [INFO] [stdout] 295 | Err(DeError::custom("expected vec not empty")) [INFO] [stdout] 296 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/mod.rs:86:20 [INFO] [stdout] | [INFO] [stdout] 86 | if let Some(item) = self.0.into_iter().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] 352 | / forward_vec_parsed_value! { [INFO] [stdout] 353 | | bool => deserialize_bool, [INFO] [stdout] 354 | | u8 => deserialize_u8, [INFO] [stdout] 355 | | u16 => deserialize_u16, [INFO] [stdout] ... | [INFO] [stdout] 363 | | f64 => deserialize_f64, [INFO] [stdout] 364 | | } [INFO] [stdout] | |_____- in this macro invocation [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/serde/mod.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | } else { [INFO] [stdout] | ^ [INFO] [stdout] ... [INFO] [stdout] 352 | / forward_vec_parsed_value! { [INFO] [stdout] 353 | | bool => deserialize_bool, [INFO] [stdout] 354 | | u8 => deserialize_u8, [INFO] [stdout] 355 | | u16 => deserialize_u16, [INFO] [stdout] ... | [INFO] [stdout] 363 | | f64 => deserialize_f64, [INFO] [stdout] 364 | | } [INFO] [stdout] | |_____- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `forward_vec_parsed_value` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/serde/request.rs:96:28 [INFO] [stdout] | [INFO] [stdout] 96 | if let Some(data) = request.payload.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/serde/request.rs:109:25 [INFO] [stdout] | [INFO] [stdout] 109 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 96 ~ match request.payload.get() { Some(data) => { [INFO] [stdout] 97 | if !data.is_empty() { [INFO] [stdout] ... [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/server.rs:253:20 [INFO] [stdout] | [INFO] [stdout] 253 | if let Some(addr) = holding.local_addr.clone().into_std() { [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/server.rs:260:17 [INFO] [stdout] | [INFO] [stdout] 260 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 253 ~ match holding.local_addr.clone().into_std() { Some(addr) => { [INFO] [stdout] 254 | let port = addr.port(); [INFO] [stdout] ... [INFO] [stdout] 259 | ); [INFO] [stdout] 260 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl futures_util::Future` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/service.rs:190:47 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn handle(&self, mut req: Request) -> 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/service.rs:190:19 [INFO] [stdout] | [INFO] [stdout] 190 | pub fn handle(&self, mut req: Request) -> impl Future { [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] 190 | pub fn handle(&self, mut req: Request) -> impl Future + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:210:16 [INFO] [stdout] | [INFO] [stdout] 210 | if let Some(dm) = router.detect(&mut req, &mut path_state) { [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/service.rs:217:13 [INFO] [stdout] | [INFO] [stdout] 217 | } else if !hoops.is_empty() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 210 ~ match router.detect(&mut req, &mut path_state) { Some(dm) => { [INFO] [stdout] 211 | req.params = path_state.params; [INFO] [stdout] ... [INFO] [stdout] 216 | } [INFO] [stdout] 217 ~ } _ => if !hoops.is_empty() { [INFO] [stdout] 218 | req.params = path_state.params; [INFO] [stdout] ... [INFO] [stdout] 225 | res.status_code = Some(StatusCode::METHOD_NOT_ALLOWED); [INFO] [stdout] 226 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | if let Some(ctype) = res [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] 231 | | .headers() [INFO] [stdout] 232 | | .get(CONTENT_TYPE) [INFO] [stdout] 233 | | .and_then(|c| c.to_str().ok()) [INFO] [stdout] 234 | | .and_then(|c| c.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/service.rs:246:17 [INFO] [stdout] | [INFO] [stdout] 246 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 230 ~ match res [INFO] [stdout] 231 | .headers() [INFO] [stdout] ... [INFO] [stdout] 234 | .and_then(|c| c.parse::().ok()) [INFO] [stdout] 235 ~ { Some(ctype) => { [INFO] [stdout] 236 | let mut is_allowed = false; [INFO] [stdout] ... [INFO] [stdout] 245 | } [INFO] [stdout] 246 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:267:20 [INFO] [stdout] | [INFO] [stdout] 267 | if let Some(catcher) = catcher { [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/service.rs:269:17 [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 ~ match catcher { Some(catcher) => { [INFO] [stdout] 268 | catcher.catch(&mut req, &mut depot, &mut res).await; [INFO] [stdout] 269 ~ } _ => { [INFO] [stdout] 270 | write_error_default(&req, &mut res, None); [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:328:16 [INFO] [stdout] | [INFO] [stdout] 328 | if let Some(host) = req [INFO] [stdout] | ________________^ - [INFO] [stdout] | |_________________________________| [INFO] [stdout] 329 | || .headers() [INFO] [stdout] 330 | || .get(http::header::HOST) [INFO] [stdout] 331 | || .and_then(|host| host.to_str().ok()) [INFO] [stdout] 332 | || .and_then(|host| host.parse::().ok()) [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/service.rs:340:13 [INFO] [stdout] | [INFO] [stdout] 340 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 328 ~ match req [INFO] [stdout] 329 | .headers() [INFO] [stdout] ... [INFO] [stdout] 332 | .and_then(|host| host.parse::().ok()) [INFO] [stdout] 333 ~ { Some(host) => { [INFO] [stdout] 334 | let mut uri_parts = std::mem::take(req.uri_mut()).into_parts(); [INFO] [stdout] ... [INFO] [stdout] 339 | } [INFO] [stdout] 340 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/service.rs:337:20 [INFO] [stdout] | [INFO] [stdout] 337 | if let Ok(uri) = http::uri::Uri::from_parts(uri_parts) { [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/service.rs:339:17 [INFO] [stdout] | [INFO] [stdout] 339 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 337 ~ match http::uri::Uri::from_parts(uri_parts) { Ok(uri) => { [INFO] [stdout] 338 | *req.uri_mut() = uri; [INFO] [stdout] 339 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:67:19 [INFO] [stdout] | [INFO] [stdout] 67 | } else if let (Some(last_modified), Some(since)) = ( [INFO] [stdout] | ___________________^ [INFO] [stdout] 68 | | &self.last_modified, [INFO] [stdout] | | ---- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 69 | | req_headers.typed_get::(), [INFO] [stdout] 70 | | ) { [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/writing/seek.rs:72:9 [INFO] [stdout] | [INFO] [stdout] 72 | } 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] 67 ~ } else { match ( [INFO] [stdout] 68 | &self.last_modified, [INFO] [stdout] 69 | req_headers.typed_get::(), [INFO] [stdout] 70 ~ ) { (Some(last_modified), Some(since)) => { [INFO] [stdout] 71 | !since.precondition_passes(*last_modified) [INFO] [stdout] 72 ~ } _ => { [INFO] [stdout] 73 | false [INFO] [stdout] 74 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:81:19 [INFO] [stdout] | [INFO] [stdout] 81 | } else if let (Some(last_modified), Some(since)) = ( [INFO] [stdout] | ___________________^ [INFO] [stdout] 82 | | &self.last_modified, [INFO] [stdout] | | ---- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 83 | | req_headers.typed_get::(), [INFO] [stdout] 84 | | ) { [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/writing/seek.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] 81 ~ } else { match ( [INFO] [stdout] 82 | &self.last_modified, [INFO] [stdout] 83 | req_headers.typed_get::(), [INFO] [stdout] 84 ~ ) { (Some(last_modified), Some(since)) => { [INFO] [stdout] 85 | !since.is_modified(*last_modified) [INFO] [stdout] 86 ~ } _ => { [INFO] [stdout] 87 | false [INFO] [stdout] 88 ~ }}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/writing/seek.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | if let Ok(range) = HttpRange::parse(range, length) { [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/writing/seek.rs:107:17 [INFO] [stdout] | [INFO] [stdout] 107 | } 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] 104 ~ match HttpRange::parse(range, length) { Ok(range) => { [INFO] [stdout] 105 | length = range[0].length; [INFO] [stdout] 106 | offset = range[0].start; [INFO] [stdout] 107 ~ } _ => { [INFO] [stdout] 108 | res.headers_mut() [INFO] [stdout] ... [INFO] [stdout] 111 | return; [INFO] [stdout] 112 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.83s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking salvo_core v0.72.0 (/tmp/fixit) [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/routing/filters/others.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/service.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 316 | &self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 345 | Box::pin(async move { Ok(response.await.into_hyper()) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `salvo_core` (lib) due to 2 previous errors; 1 warning emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `state` [INFO] [stdout] --> src/routing/filters/others.rs:18:41 [INFO] [stdout] | [INFO] [stdout] 18 | fn filter(&self, req: &mut Request, state: &mut PathState) -> bool { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_state` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: lifetime may not live long enough [INFO] [stdout] --> src/service.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 316 | &self, [INFO] [stdout] | - let's call the lifetime of this reference `'1` [INFO] [stdout] ... [INFO] [stdout] 345 | Box::pin(async move { Ok(response.await.into_hyper()) }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'1` must outlive `'static` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `salvo_core` (lib test) due to 2 previous errors; 1 warning 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" "1fc316a660b85847b76ef66b14ab1e02dece27be0d496d1fb5110f694396708d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1fc316a660b85847b76ef66b14ab1e02dece27be0d496d1fb5110f694396708d", kill_on_drop: false }` [INFO] [stdout] 1fc316a660b85847b76ef66b14ab1e02dece27be0d496d1fb5110f694396708d