[INFO] fetching crate ferrum_compiler 0.0.4... [INFO] checking ferrum_compiler-0.0.4 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate ferrum_compiler 0.0.4 into /workspace/builds/worker-7-tc2/source [INFO] validating manifest of crates.io crate ferrum_compiler 0.0.4 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 ferrum_compiler 0.0.4 [INFO] finished tweaking crates.io crate ferrum_compiler 0.0.4 [INFO] tweaked toml for crates.io crate ferrum_compiler 0.0.4 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate crates.io crate ferrum_compiler 0.0.4 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 5e65793a338afbc45a130d7043b577ba8494de2cb478145a258b7e0b5c2ac6e4 [INFO] running `Command { std: "docker" "start" "-a" "5e65793a338afbc45a130d7043b577ba8494de2cb478145a258b7e0b5c2ac6e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5e65793a338afbc45a130d7043b577ba8494de2cb478145a258b7e0b5c2ac6e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5e65793a338afbc45a130d7043b577ba8494de2cb478145a258b7e0b5c2ac6e4", kill_on_drop: false }` [INFO] [stdout] 5e65793a338afbc45a130d7043b577ba8494de2cb478145a258b7e0b5c2ac6e4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 2b55935ba70eaf0e0bcee96a812e99b0510a72d14aa60029a0af63c63100255f [INFO] running `Command { std: "docker" "start" "-a" "2b55935ba70eaf0e0bcee96a812e99b0510a72d14aa60029a0af63c63100255f", 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 (1 fix) [INFO] [stderr] Compiling proc-macro2 v1.0.63 [INFO] [stderr] Compiling quote v1.0.29 [INFO] [stderr] Compiling unicode-ident v1.0.10 [INFO] [stderr] Compiling thiserror v1.0.41 [INFO] [stderr] Compiling anyhow v1.0.71 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling syn v2.0.23 [INFO] [stderr] Compiling thiserror-impl v1.0.41 [INFO] [stderr] Checking ferrum_compiler v0.0.4 (/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 `ferrum_compiler` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/log/mod.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/log/mod.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | ($val: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/log/mod.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | ($($val: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/log/mod.rs:34:6 [INFO] [stderr] | [INFO] [stderr] 34 | ($val: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/log/mod.rs:43:8 [INFO] [stderr] | [INFO] [stderr] 43 | ($($val: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/log/mod.rs:59:6 [INFO] [stderr] | [INFO] [stderr] 59 | ($val: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/log/mod.rs:68:8 [INFO] [stderr] | [INFO] [stderr] 68 | ($($val: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/log/mod.rs:84:6 [INFO] [stderr] | [INFO] [stderr] 84 | ($val: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/log/mod.rs:93:8 [INFO] [stderr] | [INFO] [stderr] 93 | ($($val: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/log/mod.rs:109:6 [INFO] [stderr] | [INFO] [stderr] 109 | ($val: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/log/mod.rs:118:8 [INFO] [stderr] | [INFO] [stderr] 118 | ($($val: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: aborting due to 10 previous errors [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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | Self::Zero(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:61:39 [INFO] [stdout] | [INFO] [stdout] 61 | Self::Zero(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | ($val: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] 9 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | ($($val: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] 18 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | ($val: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] 34 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | ($($val: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] 43 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | ($val: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] 59 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | ($($val: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] 68 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:84:11 [INFO] [stdout] | [INFO] [stdout] 84 | ($val: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] 84 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | ($($val: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] 93 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | ($val: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] 109 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | ($($val: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] 118 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/code_gen/rust/static.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | if let Some(root) = &mut static_path.root { [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/code_gen/rust/static.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | } 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] 20 ~ match &mut static_path.root { Some(root) => { [INFO] [stdout] 21 | let code = root.accept(self)?; [INFO] [stdout] 22 | [INFO] [stdout] 23 | return Ok(format!("{}::{}", code, static_path.name).into()); [INFO] [stdout] 24 ~ } _ => { [INFO] [stdout] 25 | return Ok(static_path.name.clone()); [INFO] [stdout] 26 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/expr.rs:124:28 [INFO] [stdout] | [INFO] [stdout] 124 | if let RustIRExpr::MacroFnCall(macro_call) = fmt_str.accept(self)? { [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/ir/rust/compiler/expr.rs:133:25 [INFO] [stdout] | [INFO] [stdout] 133 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 124 ~ match fmt_str.accept(self)? { RustIRExpr::MacroFnCall(macro_call) => { [INFO] [stdout] 125 | if macro_call.callee.as_ref() == "format" { [INFO] [stdout] ... [INFO] [stdout] 132 | } [INFO] [stdout] 133 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/expr.rs:399:24 [INFO] [stdout] | [INFO] [stdout] 399 | let else_ = if let Some(else_) = &expr.else_ { [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/ir/rust/compiler/expr.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | } 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] 399 ~ let else_ = match &expr.else_ { Some(else_) => { [INFO] [stdout] 400 | match else_ { [INFO] [stdout] ... [INFO] [stdout] 435 | } [INFO] [stdout] 436 ~ } _ => { [INFO] [stdout] 437 | None [INFO] [stdout] 438 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | let expr = if let Some(value) = &mut stmt.value { [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/ir/rust/compiler/stmt.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | } 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] 79 ~ let expr = match &mut stmt.value { Some(value) => { [INFO] [stdout] 80 | Some(value.0.try_lock().unwrap().accept(self)?) [INFO] [stdout] 81 ~ } _ => { [INFO] [stdout] 82 | None [INFO] [stdout] 83 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | let else_ = if let Some(else_) = &mut stmt.else_ { [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/ir/rust/compiler/stmt.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ let else_ = match &mut stmt.else_ { Some(else_) => { [INFO] [stdout] 117 | let mut then = vec![]; [INFO] [stdout] ... [INFO] [stdout] 124 | Some(ir::RustIRElse { then }) [INFO] [stdout] 125 ~ } _ => { [INFO] [stdout] 126 | None [INFO] [stdout] 127 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:212:23 [INFO] [stdout] | [INFO] [stdout] 212 | let expr = if let Some(value) = &mut stmt.value { [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/ir/rust/compiler/stmt.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } 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] 212 ~ let expr = match &mut stmt.value { Some(value) => { [INFO] [stdout] 213 | Some(value.0.try_lock().unwrap().accept(self)?) [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | None [INFO] [stdout] 216 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:219:22 [INFO] [stdout] | [INFO] [stdout] 219 | let pre = if let Some(token) = self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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] 222 | } else if let Some(token) = self.match_any(&[TokenType::DotSlash], WithNewlines::None) { [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/parser/mod.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | } else if let Some(token) = self.match_any(&[TokenType::DotSlash], WithNewlines::None) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | } 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] 219 ~ let pre = match self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [INFO] [stdout] 220 ~ { Some(token) => { [INFO] [stdout] 221 | Some(UseStaticPathPre::DoubleColon(token)) [INFO] [stdout] 222 ~ } _ => { match self.match_any(&[TokenType::DotSlash], WithNewlines::None) { Some(token) => { [INFO] [stdout] 223 | Some(UseStaticPathPre::CurrentDir(token)) [INFO] [stdout] 224 ~ } _ => { [INFO] [stdout] 225 | self.match_any(&[TokenType::TildeSlash], WithNewlines::None) [INFO] [stdout] 226 | .map(UseStaticPathPre::RootDir) [INFO] [stdout] 227 ~ }}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:231:26 [INFO] [stdout] | [INFO] [stdout] 231 | let details = if let Some(double_colon_token) = [INFO] [stdout] | __________________________^ [INFO] [stdout] 232 | | self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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/parser/mod.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | } 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] 231 ~ let details = match self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [INFO] [stdout] 232 ~ { Some(double_colon_token) => { [INFO] [stdout] 233 | // TODO: Handle case of 'many' [INFO] [stdout] ... [INFO] [stdout] 240 | })) [INFO] [stdout] 241 ~ } _ => { [INFO] [stdout] 242 | Either::B(()) [INFO] [stdout] 243 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(fn_token) = fn_token { [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/parser/mod.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 273 ~ match fn_token { Some(fn_token) => { [INFO] [stdout] 274 | return Ok(Arc::new(Mutex::new(Decl::Fn(Arc::new(Mutex::new( [INFO] [stdout] 275 | self.fn_decl(decl_mod, fn_mod, fn_token)?, [INFO] [stdout] 276 | )))))); [INFO] [stdout] 277 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:354:16 [INFO] [stdout] | [INFO] [stdout] 354 | if let Some(colon_token) = self.match_any(&[TokenType::Colon], WithNewlines::One) { [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/parser/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | } 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] 354 ~ match self.match_any(&[TokenType::Colon], WithNewlines::One) { Some(colon_token) => { [INFO] [stdout] 355 | Some(FnDeclReturnType { [INFO] [stdout] ... [INFO] [stdout] 359 | }) [INFO] [stdout] 360 ~ } _ => { [INFO] [stdout] 361 | None [INFO] [stdout] 362 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:457:27 [INFO] [stdout] | [INFO] [stdout] 457 | let ref_type = if let Some(ref_token) = ref_token { [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/parser/mod.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | } 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] 457 ~ let ref_type = match ref_token { Some(ref_token) => { [INFO] [stdout] 458 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } _ => { [INFO] [stdout] 472 | None [INFO] [stdout] 473 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:458:16 [INFO] [stdout] | [INFO] [stdout] 458 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [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/parser/mod.rs:463:13 [INFO] [stdout] | [INFO] [stdout] 463 | } 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] 458 ~ match self.match_any(&[TokenType::Mut], WithNewlines::None) { Some(mut_token) => { [INFO] [stdout] 459 | Some(RefType::Mut { [INFO] [stdout] ... [INFO] [stdout] 462 | }) [INFO] [stdout] 463 ~ } _ => { [INFO] [stdout] 464 | let const_token = self.match_any(&[TokenType::Const], WithNewlines::None); [INFO] [stdout] ... [INFO] [stdout] 469 | }) [INFO] [stdout] 470 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:495:15 [INFO] [stdout] | [INFO] [stdout] 495 | while let Some(double_colon_token) = [INFO] [stdout] | _______________^ [INFO] [stdout] 496 | | self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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/parser/mod.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:830:24 [INFO] [stdout] | [INFO] [stdout] 830 | let value = if let Some(token) = self.match_any(&[TokenType::Equal], WithNewlines::One) { [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/parser/mod.rs:835:9 [INFO] [stdout] | [INFO] [stdout] 835 | } 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] 830 ~ let value = match self.match_any(&[TokenType::Equal], WithNewlines::One) { Some(token) => { [INFO] [stdout] 831 | Some(VarDeclValue { [INFO] [stdout] ... [INFO] [stdout] 834 | }) [INFO] [stdout] 835 ~ } _ => { [INFO] [stdout] 836 | None [INFO] [stdout] 837 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:879:19 [INFO] [stdout] | [INFO] [stdout] 879 | while let Some(if_token) = self.match_any(&[TokenType::If], WithNewlines::None) { [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/parser/mod.rs:911:13 [INFO] [stdout] | [INFO] [stdout] 911 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:950:23 [INFO] [stdout] | [INFO] [stdout] 950 | let then = if let Some(then_token) = self.match_any(&[TokenType::Then], WithNewlines::None) [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/parser/mod.rs:966:9 [INFO] [stdout] | [INFO] [stdout] 966 | } 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] 950 ~ let then = match self.match_any(&[TokenType::Then], WithNewlines::None) [INFO] [stdout] 951 ~ { Some(then_token) => { [INFO] [stdout] 952 | if label.is_some() { [INFO] [stdout] ... [INFO] [stdout] 965 | }) [INFO] [stdout] 966 ~ } _ => { [INFO] [stdout] 967 | let _ = self.consume(&TokenType::Newline, "Expected newline after if condition")?; [INFO] [stdout] ... [INFO] [stdout] 979 | IfExprThen::Block(IfExprThenBlock { label, block }) [INFO] [stdout] 980 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:987:23 [INFO] [stdout] | [INFO] [stdout] 987 | while let Some(if_token) = self.match_any(&[TokenType::If], WithNewlines::None) { [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/parser/mod.rs:1052:17 [INFO] [stdout] | [INFO] [stdout] 1052 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:994:38 [INFO] [stdout] | [INFO] [stdout] 994 | let else_if = if let Some(then_token) = [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 995 | | self.match_any(&[TokenType::Then], WithNewlines::None) [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/parser/mod.rs:1021:21 [INFO] [stdout] | [INFO] [stdout] 1021 | } 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] 994 ~ let else_if = match self.match_any(&[TokenType::Then], WithNewlines::None) [INFO] [stdout] 995 ~ { Some(then_token) => { [INFO] [stdout] 996 | if label.is_some() { [INFO] [stdout] ... [INFO] [stdout] 1019 | }) [INFO] [stdout] 1020 ~ } _ => { [INFO] [stdout] 1021 | let (stmts, end) = [INFO] [stdout] ... [INFO] [stdout] 1043 | }) [INFO] [stdout] 1044 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1005:28 [INFO] [stdout] | [INFO] [stdout] 1005 | if let Some(end) = self.match_any(&[TokenType::Else], WithNewlines::One) { [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/parser/mod.rs:1010:25 [INFO] [stdout] | [INFO] [stdout] 1010 | } 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] 1005 ~ match self.match_any(&[TokenType::Else], WithNewlines::One) { Some(end) => { [INFO] [stdout] 1006 | end_token = end; [INFO] [stdout] ... [INFO] [stdout] 1009 | should_continue = true; [INFO] [stdout] 1010 ~ } _ => { [INFO] [stdout] 1011 | semicolon_token = None; [INFO] [stdout] 1012 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1158:12 [INFO] [stdout] | [INFO] [stdout] 1158 | if let Some(op_token) = self.match_any( [INFO] [stdout] | ____________^ - [INFO] [stdout] | |_________________________________| [INFO] [stdout] 1159 | || &[ [INFO] [stdout] 1160 | || TokenType::Equal, [INFO] [stdout] 1161 | || TokenType::PlusEqual, [INFO] [stdout] ... || [INFO] [stdout] 1164 | || WithNewlines::One, [INFO] [stdout] 1165 | || ) { [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/parser/mod.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | } 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] 1158 ~ match self.match_any( [INFO] [stdout] 1159 | &[ [INFO] [stdout] ... [INFO] [stdout] 1164 | WithNewlines::One, [INFO] [stdout] 1165 ~ ) { Some(op_token) => { [INFO] [stdout] 1166 | let op = match op_token.token_type { [INFO] [stdout] ... [INFO] [stdout] 1189 | )))))); [INFO] [stdout] 1190 ~ } _ => { [INFO] [stdout] 1191 | return Ok(Arc::new(Mutex::new(Stmt::Expr(Arc::new(Mutex::new( [INFO] [stdout] ... [INFO] [stdout] 1196 | )))))); [INFO] [stdout] 1197 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1301:15 [INFO] [stdout] | [INFO] [stdout] 1301 | while let Some(op_token) = self.match_any( [INFO] [stdout] | _______________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 1302 | || &[ [INFO] [stdout] 1303 | || TokenType::Greater, [INFO] [stdout] 1304 | || TokenType::GreaterEqual, [INFO] [stdout] ... || [INFO] [stdout] 1308 | || WithNewlines::One, [INFO] [stdout] 1309 | || ) { [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/parser/mod.rs:1335:9 [INFO] [stdout] | [INFO] [stdout] 1335 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1372:15 [INFO] [stdout] | [INFO] [stdout] 1372 | while let Some(op_token) = [INFO] [stdout] | _______________^ [INFO] [stdout] 1373 | | self.match_any(&[TokenType::Minus, TokenType::Plus], WithNewlines::One) [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/parser/mod.rs:1398:9 [INFO] [stdout] | [INFO] [stdout] 1398 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1478:24 [INFO] [stdout] | [INFO] [stdout] 1478 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [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/parser/mod.rs:1483:21 [INFO] [stdout] | [INFO] [stdout] 1483 | } 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] 1478 ~ match self.match_any(&[TokenType::Mut], WithNewlines::None) { Some(mut_token) => { [INFO] [stdout] 1479 | UnaryOp::Ref(RefType::Mut { [INFO] [stdout] ... [INFO] [stdout] 1482 | }) [INFO] [stdout] 1483 ~ } _ => { [INFO] [stdout] 1484 | let const_token = self.match_any(&[TokenType::Const], WithNewlines::None); [INFO] [stdout] ... [INFO] [stdout] 1489 | }) [INFO] [stdout] 1490 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1522:16 [INFO] [stdout] | [INFO] [stdout] 1522 | if let Some(open_paren_token) = [INFO] [stdout] | ________________^ [INFO] [stdout] 1523 | | self.match_any(&[TokenType::OpenParen], WithNewlines::None) [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] 1526 | } else if let Some(dot_token) = self.match_any(&[TokenType::Dot], WithNewlines::One) { [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/parser/mod.rs:1526:13 [INFO] [stdout] | [INFO] [stdout] 1526 | } else if let Some(dot_token) = self.match_any(&[TokenType::Dot], WithNewlines::One) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1536:13 [INFO] [stdout] | [INFO] [stdout] 1536 | } 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] 1522 ~ match self.match_any(&[TokenType::OpenParen], WithNewlines::None) [INFO] [stdout] 1523 ~ { Some(open_paren_token) => { [INFO] [stdout] 1524 | expr = self.finish_call(expr, open_paren_token)?; [INFO] [stdout] 1525 ~ } _ => { match self.match_any(&[TokenType::Dot], WithNewlines::One) { Some(dot_token) => { [INFO] [stdout] 1526 | let name = self.consume(&TokenType::Ident, "Expect property name '.'")?; [INFO] [stdout] ... [INFO] [stdout] 1534 | }))))); [INFO] [stdout] 1535 ~ } _ => { [INFO] [stdout] 1536 | break; [INFO] [stdout] 1537 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/decl.rs:503:16 [INFO] [stdout] | [INFO] [stdout] 503 | if let Some(StructFieldMod::Pub(_)) = field.field_mod { [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/syntax/decl.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 503 ~ match field.field_mod { Some(StructFieldMod::Pub(_)) => { [INFO] [stdout] 504 | if !field.is_resolved() { [INFO] [stdout] 505 | return log::trace!(false); [INFO] [stdout] 506 | } [INFO] [stdout] 507 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:669:31 [INFO] [stdout] | [INFO] [stdout] 669 | resolved_type: if let Some(resolved_type) = value.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:674:13 [INFO] [stdout] | [INFO] [stdout] 674 | } 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] 669 ~ resolved_type: match value.resolved_type { Some(resolved_type) => { [INFO] [stdout] 670 | Some(resolved_type.ok_or(FinalizeResolveTypeError { [INFO] [stdout] ... [INFO] [stdout] 673 | })?) [INFO] [stdout] 674 ~ } _ => { [INFO] [stdout] 675 | None [INFO] [stdout] 676 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1228:20 [INFO] [stdout] | [INFO] [stdout] 1228 | if let Some(stmt) = then.block.stmts.last() { [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/syntax/expr.rs:1232:17 [INFO] [stdout] | [INFO] [stdout] 1232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1228 ~ match then.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1229 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1230 | is_terminal = false; [INFO] [stdout] 1231 | } [INFO] [stdout] 1232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1242:24 [INFO] [stdout] | [INFO] [stdout] 1242 | if let Some(stmt) = else_if.block.stmts.last() { [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/syntax/expr.rs:1246:21 [INFO] [stdout] | [INFO] [stdout] 1246 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1242 ~ match else_if.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1243 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1244 | is_terminal = false; [INFO] [stdout] 1245 | } [INFO] [stdout] 1246 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1251:12 [INFO] [stdout] | [INFO] [stdout] 1251 | if let Some(else_) = &self.else_ { [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/syntax/expr.rs:1266:9 [INFO] [stdout] | [INFO] [stdout] 1266 | } 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] 1251 ~ match &self.else_ { Some(else_) => { [INFO] [stdout] 1252 | match else_ { [INFO] [stdout] ... [INFO] [stdout] 1265 | } [INFO] [stdout] 1266 ~ } _ => { [INFO] [stdout] 1267 | is_terminal = false; [INFO] [stdout] 1268 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1257:24 [INFO] [stdout] | [INFO] [stdout] 1257 | if let Some(stmt) = else_.block.stmts.last() { [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/syntax/expr.rs:1261:21 [INFO] [stdout] | [INFO] [stdout] 1261 | } 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] 1257 ~ match else_.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1258 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1259 | is_terminal = false; [INFO] [stdout] 1260 | } [INFO] [stdout] 1261 ~ } _ => { [INFO] [stdout] 1262 | is_terminal = false; [INFO] [stdout] 1263 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:608:16 [INFO] [stdout] | [INFO] [stdout] 608 | if let Some(stmt) = else_if.then.stmts.last() { [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/syntax/stmt.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | } 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] 608 ~ match else_if.then.stmts.last() { Some(stmt) => { [INFO] [stdout] 609 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 610 | is_terminal = false; [INFO] [stdout] 611 | } [INFO] [stdout] 612 ~ } _ => { [INFO] [stdout] 613 | is_terminal = false; [INFO] [stdout] 614 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:617:12 [INFO] [stdout] | [INFO] [stdout] 617 | if let Some(else_) = &self.else_ { [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/syntax/stmt.rs:625:9 [INFO] [stdout] | [INFO] [stdout] 625 | } 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] 617 ~ match &self.else_ { Some(else_) => { [INFO] [stdout] 618 | if let Some(stmt) = else_.then.stmts.last() { [INFO] [stdout] ... [INFO] [stdout] 624 | } [INFO] [stdout] 625 ~ } _ => { [INFO] [stdout] 626 | is_terminal = false; [INFO] [stdout] 627 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:618:16 [INFO] [stdout] | [INFO] [stdout] 618 | if let Some(stmt) = else_.then.stmts.last() { [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/syntax/stmt.rs:622:13 [INFO] [stdout] | [INFO] [stdout] 622 | } 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] 618 ~ match else_.then.stmts.last() { Some(stmt) => { [INFO] [stdout] 619 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 620 | is_terminal = false; [INFO] [stdout] 621 | } [INFO] [stdout] 622 ~ } _ => { [INFO] [stdout] 623 | is_terminal = false; [INFO] [stdout] 624 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/use.rs:125:20 [INFO] [stdout] | [INFO] [stdout] 125 | let a = if let Either::A(a) = self { [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/syntax/use.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } 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] 125 ~ let a = match self { Either::A(a) => { [INFO] [stdout] 126 | Some(a) [INFO] [stdout] 127 ~ } _ => { [INFO] [stdout] 128 | None [INFO] [stdout] 129 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/use.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | let b = if let Either::B(b) = self { [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/syntax/use.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | } 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] 135 ~ let b = match self { Either::B(b) => { [INFO] [stdout] 136 | Some(b) [INFO] [stdout] 137 ~ } _ => { [INFO] [stdout] 138 | None [INFO] [stdout] 139 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:307:20 [INFO] [stdout] | [INFO] [stdout] 307 | if let Some(return_type) = &decl.return_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | } 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] 307 ~ match &decl.return_type { Some(return_type) => { [INFO] [stdout] 308 | if let Some(return_type) = &return_type.resolved_type { [INFO] [stdout] ... [INFO] [stdout] 313 | } [INFO] [stdout] 314 ~ } _ => { [INFO] [stdout] 315 | self.current_return_type = Some(None); [INFO] [stdout] 316 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:308:24 [INFO] [stdout] | [INFO] [stdout] 308 | if let Some(return_type) = &return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:310:21 [INFO] [stdout] | [INFO] [stdout] 310 | } 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] 308 ~ match &return_type.resolved_type { Some(return_type) => { [INFO] [stdout] 309 | self.current_return_type = Some(Some(return_type.clone())); [INFO] [stdout] 310 ~ } _ => { [INFO] [stdout] 311 | // There is a return type, but haven't resolved it yet? [INFO] [stdout] 312 | todo!("I don't think this should ever happen?"); [INFO] [stdout] 313 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:345:20 [INFO] [stdout] | [INFO] [stdout] 345 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:353:17 [INFO] [stdout] | [INFO] [stdout] 353 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 345 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 346 | scope.insert( [INFO] [stdout] ... [INFO] [stdout] 352 | ); [INFO] [stdout] 353 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | } 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] 25 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 26 | params.push((param.name.lexeme.clone(), resolved_type.clone())); [INFO] [stdout] 27 ~ } _ => { [INFO] [stdout] 28 | changed |= param.static_type_ref.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 35 | } [INFO] [stdout] 36 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:31:24 [INFO] [stdout] | [INFO] [stdout] 31 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | } 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] 31 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 32 | params.push((param.name.lexeme.clone(), resolved_type.clone())); [INFO] [stdout] 33 ~ } _ => { [INFO] [stdout] 34 | all_resolved = false; [INFO] [stdout] 35 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | if let Some(return_type) = &mut decl.return_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match &mut decl.return_type { Some(return_type) => { [INFO] [stdout] 46 | if let Some(resolved_type) = &return_type.resolved_type { [INFO] [stdout] ... [INFO] [stdout] 57 | } [INFO] [stdout] 58 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:46:20 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(resolved_type) = &return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:48:17 [INFO] [stdout] | [INFO] [stdout] 48 | } 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] 46 ~ match &return_type.resolved_type { Some(resolved_type) => { [INFO] [stdout] 47 | fn_return_type = Some(Box::new(resolved_type.clone())); [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | changed |= return_type.static_type.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 56 | } [INFO] [stdout] 57 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 52 | if let Some(resolved_type) = &mut return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | } 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] 52 ~ match &mut return_type.resolved_type { Some(resolved_type) => { [INFO] [stdout] 53 | fn_return_type = Some(Box::new(resolved_type.clone())); [INFO] [stdout] 54 ~ } _ => { [INFO] [stdout] 55 | all_resolved = false; [INFO] [stdout] 56 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:103:16 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(resolved) = &field.static_type_ref.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | } 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] 103 ~ match &field.static_type_ref.resolved_type { Some(resolved) => { [INFO] [stdout] 104 | fields.push(FeStructField { [INFO] [stdout] ... [INFO] [stdout] 108 | }); [INFO] [stdout] 109 ~ } _ => { [INFO] [stdout] 110 | all_done = false; [INFO] [stdout] 111 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if let Some(found) = self.scope.try_lock().unwrap().search(ident) { [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/type_resolver/expr.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | } 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] 99 ~ match self.scope.try_lock().unwrap().search(ident) { Some(found) => { [INFO] [stdout] 100 | expr.resolved_type = Some(found.typ.clone()); [INFO] [stdout] 101 | self.expr_lookup.insert(expr.id, found.typ.clone()); [INFO] [stdout] 102 ~ } _ => { [INFO] [stdout] 103 | return Ok(false); [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:213:45 [INFO] [stdout] | [INFO] [stdout] 213 | expr.resolved_type = if let FeType::Bool(details) = &resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | } 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] 213 ~ expr.resolved_type = match &resolved_type { FeType::Bool(details) => { [INFO] [stdout] 214 | Some(FeType::Bool(details.map(|known_val| !known_val))) [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | Some(FeType::Bool(None)) [INFO] [stdout] 217 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:453:20 [INFO] [stdout] | [INFO] [stdout] 453 | if let Some(resolved) = &ident.try_lock().unwrap().resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:455:17 [INFO] [stdout] | [INFO] [stdout] 455 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 453 ~ match &ident.try_lock().unwrap().resolved_type { Some(resolved) => { [INFO] [stdout] 454 | target = Some(resolved.clone()); [INFO] [stdout] 455 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:460:20 [INFO] [stdout] | [INFO] [stdout] 460 | if let Some(resolved) = &path.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:462:17 [INFO] [stdout] | [INFO] [stdout] 462 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 460 ~ match &path.resolved_type { Some(resolved) => { [INFO] [stdout] 461 | target = Some(resolved.clone()); [INFO] [stdout] 462 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:499:28 [INFO] [stdout] | [INFO] [stdout] 499 | if let Some(resolved) = [INFO] [stdout] | ____________________________^ [INFO] [stdout] 500 | | field.value.0.try_lock().unwrap().resolved_type().flatten() [INFO] [stdout] | |_____________________________----------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [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/type_resolver/expr.rs:505:25 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match field.value.0.try_lock().unwrap().resolved_type().flatten() [INFO] [stdout] 500 ~ { Some(resolved) => { [INFO] [stdout] 501 | if !Self::can_implicit_cast(&resolved, &struct_field.typ) { [INFO] [stdout] 502 | todo!("Invalid type! {resolved:#?}"); [INFO] [stdout] 503 | } [INFO] [stdout] 504 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:613:20 [INFO] [stdout] | [INFO] [stdout] 613 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:617:17 [INFO] [stdout] | [INFO] [stdout] 617 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 613 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 614 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 615 | todo!("Can't cast to bool!"); [INFO] [stdout] 616 | } [INFO] [stdout] 617 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:684:28 [INFO] [stdout] | [INFO] [stdout] 684 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 684 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 685 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 686 | todo!("Can't cast to bool!"); [INFO] [stdout] 687 | } [INFO] [stdout] 688 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:700:28 [INFO] [stdout] | [INFO] [stdout] 700 | if let Some(typ) = &typ { [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] 706 | } else if let Some(resolved_type) = resolved_type { [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/type_resolver/expr.rs:706:25 [INFO] [stdout] | [INFO] [stdout] 706 | } else if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:708:25 [INFO] [stdout] | [INFO] [stdout] 708 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 700 ~ match &typ { Some(typ) => { [INFO] [stdout] 701 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] ... [INFO] [stdout] 705 | } [INFO] [stdout] 706 ~ } _ => { match resolved_type { Some(resolved_type) => { [INFO] [stdout] 707 | typ = Some(resolved_type.clone()); [INFO] [stdout] 708 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:701:32 [INFO] [stdout] | [INFO] [stdout] 701 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:705:29 [INFO] [stdout] | [INFO] [stdout] 705 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 701 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 702 | if !Self::can_implicit_cast(&resolved_type, typ) { [INFO] [stdout] 703 | todo!("Can't cast!"); [INFO] [stdout] 704 | } [INFO] [stdout] 705 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:738:12 [INFO] [stdout] | [INFO] [stdout] 738 | if let Some(else_) = &else_ { [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/type_resolver/expr.rs:781:9 [INFO] [stdout] | [INFO] [stdout] 781 | } 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] 738 ~ match &else_ { Some(else_) => { [INFO] [stdout] 739 | if !else_.is_resolved() { [INFO] [stdout] ... [INFO] [stdout] 780 | } [INFO] [stdout] 781 ~ } _ => { [INFO] [stdout] 782 | todo!("TODO: Implicit wrap as optional") [INFO] [stdout] 783 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:750:28 [INFO] [stdout] | [INFO] [stdout] 750 | if let Some(typ) = &typ { [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] 756 | } else if let Some(resolved_type) = resolved_type { [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/type_resolver/expr.rs:756:25 [INFO] [stdout] | [INFO] [stdout] 756 | } else if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 750 ~ match &typ { Some(typ) => { [INFO] [stdout] 751 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] ... [INFO] [stdout] 755 | } [INFO] [stdout] 756 ~ } _ => { match resolved_type { Some(resolved_type) => { [INFO] [stdout] 757 | typ = Some(resolved_type); [INFO] [stdout] 758 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:751:32 [INFO] [stdout] | [INFO] [stdout] 751 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:755:29 [INFO] [stdout] | [INFO] [stdout] 755 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 751 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 752 | if !Self::can_implicit_cast(&resolved_type, typ) { [INFO] [stdout] 753 | todo!("Can't cast!"); [INFO] [stdout] 754 | } [INFO] [stdout] 755 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:787:12 [INFO] [stdout] | [INFO] [stdout] 787 | if let Some(Some(already)) = &expr.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:793:9 [INFO] [stdout] | [INFO] [stdout] 793 | } 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] 787 ~ match &expr.resolved_type { Some(Some(already)) => { [INFO] [stdout] 788 | if let Some(typ) = typ { [INFO] [stdout] ... [INFO] [stdout] 792 | } [INFO] [stdout] 793 ~ } _ => { [INFO] [stdout] 794 | expr.resolved_type = Some(typ); [INFO] [stdout] 795 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:788:16 [INFO] [stdout] | [INFO] [stdout] 788 | if let Some(typ) = typ { [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/type_resolver/expr.rs:792:13 [INFO] [stdout] | [INFO] [stdout] 792 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 788 ~ match typ { Some(typ) => { [INFO] [stdout] 789 | if !Self::can_implicit_cast(&typ, already) { [INFO] [stdout] 790 | todo!(); [INFO] [stdout] 791 | } [INFO] [stdout] 792 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/scope.rs:152:16 [INFO] [stdout] | [INFO] [stdout] 152 | if let Some(found) = data.name_lookup.get(name) { [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/type_resolver/scope.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 152 ~ match data.name_lookup.get(name) { Some(found) => { [INFO] [stdout] 153 | return Some(found); [INFO] [stdout] 154 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | let scope = if let Some(root) = &mut static_path.root { [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/type_resolver/static.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | } 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] 58 ~ let scope = match &mut static_path.root { Some(root) => { [INFO] [stdout] 59 | changed |= root.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 69 | } [INFO] [stdout] 70 ~ } _ => { [INFO] [stdout] 71 | Some(self.scope.clone()) [INFO] [stdout] 72 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(root_type) = &root.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | } 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] 61 ~ match &root.resolved_type { Some(root_type) => { [INFO] [stdout] 62 | let FeType::Package(pkg) = root_type else { [INFO] [stdout] ... [INFO] [stdout] 66 | Some(pkg.try_lock().unwrap().scope()) [INFO] [stdout] 67 ~ } _ => { [INFO] [stdout] 68 | None [INFO] [stdout] 69 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | let typ = if let Some(value) = &stmt.value { [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/type_resolver/stmt.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } 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] 24 ~ let typ = match &stmt.value { Some(value) => { [INFO] [stdout] 25 | let value = &mut *value.value.0.try_lock().unwrap(); [INFO] [stdout] ... [INFO] [stdout] 29 | value.resolved_type().flatten() [INFO] [stdout] 30 ~ } _ => { [INFO] [stdout] 31 | None [INFO] [stdout] 32 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if let Some(resolved_type) = &types.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | } [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 ~ match &types.0 { Some(resolved_type) => { [INFO] [stdout] 83 | match resolved_type { [INFO] [stdout] ... [INFO] [stdout] 99 | } [INFO] [stdout] 100 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:150:16 [INFO] [stdout] | [INFO] [stdout] 150 | if let Some(resolved_type) = value.0.try_lock().unwrap().resolved_type().flatten() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [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/type_resolver/stmt.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 150 ~ match value.0.try_lock().unwrap().resolved_type().flatten() { Some(resolved_type) => { [INFO] [stdout] 151 | match current_return_type { [INFO] [stdout] ... [INFO] [stdout] 159 | } [INFO] [stdout] 160 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:192:20 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 192 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 193 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 194 | todo!("Can't cast to bool!"); [INFO] [stdout] 195 | } [INFO] [stdout] 196 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:237:32 [INFO] [stdout] | [INFO] [stdout] 237 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:241:29 [INFO] [stdout] | [INFO] [stdout] 241 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 237 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 238 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 239 | todo!("Can't cast to bool!"); [INFO] [stdout] 240 | } [INFO] [stdout] 241 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:376:32 [INFO] [stdout] | [INFO] [stdout] 376 | let resolved_type = if let Some(value) = &stmt.value { [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/type_resolver/stmt.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | } 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] 376 ~ let resolved_type = match &stmt.value { Some(value) => { [INFO] [stdout] 377 | changed |= value.0.try_lock().unwrap().accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 384 | } [INFO] [stdout] 385 ~ } _ => { [INFO] [stdout] 386 | None [INFO] [stdout] 387 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:379:16 [INFO] [stdout] | [INFO] [stdout] 379 | if let Some(resolved_type) = value.0.try_lock().unwrap().resolved_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | } 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] 379 ~ match value.0.try_lock().unwrap().resolved_type() { Some(resolved_type) => { [INFO] [stdout] 380 | stmt.resolved_type = Some(resolved_type.clone()); [INFO] [stdout] 381 | resolved_type [INFO] [stdout] 382 ~ } _ => { [INFO] [stdout] 383 | None [INFO] [stdout] 384 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:476:12 [INFO] [stdout] | [INFO] [stdout] 476 | if let Some(resolved_type) = stmt.value.0.try_lock().unwrap().resolved_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:512:9 [INFO] [stdout] | [INFO] [stdout] 512 | } 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] 476 ~ match stmt.value.0.try_lock().unwrap().resolved_type() { Some(resolved_type) => { [INFO] [stdout] 477 | stmt.resolved_type = resolved_type.clone(); [INFO] [stdout] ... [INFO] [stdout] 511 | } [INFO] [stdout] 512 ~ } _ => { [INFO] [stdout] 513 | todo!(); [INFO] [stdout] 514 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/use.rs:115:20 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(t) = t { [INFO] [stdout] | ^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/use.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 115 ~ match t { Some(t) => { [INFO] [stdout] 116 | *typ = Some(t.clone()); [INFO] [stdout] 117 | types.push((path.name.lexeme.clone(), t)); [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | // log::trace!(&search_scope, &path.name); [INFO] [stdout] 120 | todo!("type not found: {:#?}", path.name); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 84 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/mod.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `ferrum_compiler` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/lexer/mod.rs [INFO] [stderr] * src/log/mod.rs [INFO] [stderr] * src/parser/mod.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/lexer/mod.rs:490:25 [INFO] [stderr] | [INFO] [stderr] 490 | ($($name:ident: $value: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/log/mod.rs:9:6 [INFO] [stderr] | [INFO] [stderr] 9 | ($val: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/log/mod.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | ($($val: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/log/mod.rs:34:6 [INFO] [stderr] | [INFO] [stderr] 34 | ($val: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/log/mod.rs:43:8 [INFO] [stderr] | [INFO] [stderr] 43 | ($($val: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/log/mod.rs:59:6 [INFO] [stderr] | [INFO] [stderr] 59 | ($val: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/log/mod.rs:68:8 [INFO] [stderr] | [INFO] [stderr] 68 | ($($val: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/log/mod.rs:84:6 [INFO] [stderr] | [INFO] [stderr] 84 | ($val: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/log/mod.rs:93:8 [INFO] [stderr] | [INFO] [stderr] 93 | ($($val: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/log/mod.rs:109:6 [INFO] [stderr] | [INFO] [stderr] 109 | ($val: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/log/mod.rs:118:8 [INFO] [stderr] | [INFO] [stderr] 118 | ($($val: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/parser/mod.rs:2016:25 [INFO] [stderr] | [INFO] [stderr] 2016 | ($($name:ident: $value: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: aborting due to 12 previous errors [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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:61:24 [INFO] [stdout] | [INFO] [stdout] 61 | Self::Zero(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/syntax/node.rs:61:39 [INFO] [stdout] | [INFO] [stdout] 61 | Self::Zero(gen) => return gen.next(), [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lexer/mod.rs:490:32 [INFO] [stdout] | [INFO] [stdout] 490 | ($($name:ident: $value: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] 490 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | ($val: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] 9 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | ($($val: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] 18 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:34:11 [INFO] [stdout] | [INFO] [stdout] 34 | ($val: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] 34 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | ($($val: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] 43 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:59:11 [INFO] [stdout] | [INFO] [stdout] 59 | ($val: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] 59 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | ($($val: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] 68 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:84:11 [INFO] [stdout] | [INFO] [stdout] 84 | ($val: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] 84 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | ($($val: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] 93 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:109:11 [INFO] [stdout] | [INFO] [stdout] 109 | ($val: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] 109 | ($val:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/log/mod.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | ($($val: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] 118 | ($($val:expr_2021),+ $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser/mod.rs:2019:32 [INFO] [stdout] | [INFO] [stdout] 2019 | ($($name:ident: $value: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] 2019 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/code_gen/rust/static.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | if let Some(root) = &mut static_path.root { [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/code_gen/rust/static.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | } 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] 20 ~ match &mut static_path.root { Some(root) => { [INFO] [stdout] 21 | let code = root.accept(self)?; [INFO] [stdout] 22 | [INFO] [stdout] 23 | return Ok(format!("{}::{}", code, static_path.name).into()); [INFO] [stdout] 24 ~ } _ => { [INFO] [stdout] 25 | return Ok(static_path.name.clone()); [INFO] [stdout] 26 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/expr.rs:124:28 [INFO] [stdout] | [INFO] [stdout] 124 | if let RustIRExpr::MacroFnCall(macro_call) = fmt_str.accept(self)? { [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/ir/rust/compiler/expr.rs:133:25 [INFO] [stdout] | [INFO] [stdout] 133 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 124 ~ match fmt_str.accept(self)? { RustIRExpr::MacroFnCall(macro_call) => { [INFO] [stdout] 125 | if macro_call.callee.as_ref() == "format" { [INFO] [stdout] ... [INFO] [stdout] 132 | } [INFO] [stdout] 133 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/expr.rs:399:24 [INFO] [stdout] | [INFO] [stdout] 399 | let else_ = if let Some(else_) = &expr.else_ { [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/ir/rust/compiler/expr.rs:436:9 [INFO] [stdout] | [INFO] [stdout] 436 | } 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] 399 ~ let else_ = match &expr.else_ { Some(else_) => { [INFO] [stdout] 400 | match else_ { [INFO] [stdout] ... [INFO] [stdout] 435 | } [INFO] [stdout] 436 ~ } _ => { [INFO] [stdout] 437 | None [INFO] [stdout] 438 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:79:23 [INFO] [stdout] | [INFO] [stdout] 79 | let expr = if let Some(value) = &mut stmt.value { [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/ir/rust/compiler/stmt.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | } 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] 79 ~ let expr = match &mut stmt.value { Some(value) => { [INFO] [stdout] 80 | Some(value.0.try_lock().unwrap().accept(self)?) [INFO] [stdout] 81 ~ } _ => { [INFO] [stdout] 82 | None [INFO] [stdout] 83 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:116:24 [INFO] [stdout] | [INFO] [stdout] 116 | let else_ = if let Some(else_) = &mut stmt.else_ { [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/ir/rust/compiler/stmt.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 116 ~ let else_ = match &mut stmt.else_ { Some(else_) => { [INFO] [stdout] 117 | let mut then = vec![]; [INFO] [stdout] ... [INFO] [stdout] 124 | Some(ir::RustIRElse { then }) [INFO] [stdout] 125 ~ } _ => { [INFO] [stdout] 126 | None [INFO] [stdout] 127 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/rust/compiler/stmt.rs:212:23 [INFO] [stdout] | [INFO] [stdout] 212 | let expr = if let Some(value) = &mut stmt.value { [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/ir/rust/compiler/stmt.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } 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] 212 ~ let expr = match &mut stmt.value { Some(value) => { [INFO] [stdout] 213 | Some(value.0.try_lock().unwrap().accept(self)?) [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | None [INFO] [stdout] 216 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:219:22 [INFO] [stdout] | [INFO] [stdout] 219 | let pre = if let Some(token) = self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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] 222 | } else if let Some(token) = self.match_any(&[TokenType::DotSlash], WithNewlines::None) { [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/parser/mod.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 222 | } else if let Some(token) = self.match_any(&[TokenType::DotSlash], WithNewlines::None) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:224:9 [INFO] [stdout] | [INFO] [stdout] 224 | } 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] 219 ~ let pre = match self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [INFO] [stdout] 220 ~ { Some(token) => { [INFO] [stdout] 221 | Some(UseStaticPathPre::DoubleColon(token)) [INFO] [stdout] 222 ~ } _ => { match self.match_any(&[TokenType::DotSlash], WithNewlines::None) { Some(token) => { [INFO] [stdout] 223 | Some(UseStaticPathPre::CurrentDir(token)) [INFO] [stdout] 224 ~ } _ => { [INFO] [stdout] 225 | self.match_any(&[TokenType::TildeSlash], WithNewlines::None) [INFO] [stdout] 226 | .map(UseStaticPathPre::RootDir) [INFO] [stdout] 227 ~ }}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:231:26 [INFO] [stdout] | [INFO] [stdout] 231 | let details = if let Some(double_colon_token) = [INFO] [stdout] | __________________________^ [INFO] [stdout] 232 | | self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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/parser/mod.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | } 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] 231 ~ let details = match self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [INFO] [stdout] 232 ~ { Some(double_colon_token) => { [INFO] [stdout] 233 | // TODO: Handle case of 'many' [INFO] [stdout] ... [INFO] [stdout] 240 | })) [INFO] [stdout] 241 ~ } _ => { [INFO] [stdout] 242 | Either::B(()) [INFO] [stdout] 243 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:273:16 [INFO] [stdout] | [INFO] [stdout] 273 | if let Some(fn_token) = fn_token { [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/parser/mod.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 273 ~ match fn_token { Some(fn_token) => { [INFO] [stdout] 274 | return Ok(Arc::new(Mutex::new(Decl::Fn(Arc::new(Mutex::new( [INFO] [stdout] 275 | self.fn_decl(decl_mod, fn_mod, fn_token)?, [INFO] [stdout] 276 | )))))); [INFO] [stdout] 277 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:354:16 [INFO] [stdout] | [INFO] [stdout] 354 | if let Some(colon_token) = self.match_any(&[TokenType::Colon], WithNewlines::One) { [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/parser/mod.rs:360:13 [INFO] [stdout] | [INFO] [stdout] 360 | } 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] 354 ~ match self.match_any(&[TokenType::Colon], WithNewlines::One) { Some(colon_token) => { [INFO] [stdout] 355 | Some(FnDeclReturnType { [INFO] [stdout] ... [INFO] [stdout] 359 | }) [INFO] [stdout] 360 ~ } _ => { [INFO] [stdout] 361 | None [INFO] [stdout] 362 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:457:27 [INFO] [stdout] | [INFO] [stdout] 457 | let ref_type = if let Some(ref_token) = ref_token { [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/parser/mod.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 471 | } 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] 457 ~ let ref_type = match ref_token { Some(ref_token) => { [INFO] [stdout] 458 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [INFO] [stdout] ... [INFO] [stdout] 470 | } [INFO] [stdout] 471 ~ } _ => { [INFO] [stdout] 472 | None [INFO] [stdout] 473 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:458:16 [INFO] [stdout] | [INFO] [stdout] 458 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [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/parser/mod.rs:463:13 [INFO] [stdout] | [INFO] [stdout] 463 | } 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] 458 ~ match self.match_any(&[TokenType::Mut], WithNewlines::None) { Some(mut_token) => { [INFO] [stdout] 459 | Some(RefType::Mut { [INFO] [stdout] ... [INFO] [stdout] 462 | }) [INFO] [stdout] 463 ~ } _ => { [INFO] [stdout] 464 | let const_token = self.match_any(&[TokenType::Const], WithNewlines::None); [INFO] [stdout] ... [INFO] [stdout] 469 | }) [INFO] [stdout] 470 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:495:15 [INFO] [stdout] | [INFO] [stdout] 495 | while let Some(double_colon_token) = [INFO] [stdout] | _______________^ [INFO] [stdout] 496 | | self.match_any(&[TokenType::DoubleColon], WithNewlines::None) [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/parser/mod.rs:505:9 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:830:24 [INFO] [stdout] | [INFO] [stdout] 830 | let value = if let Some(token) = self.match_any(&[TokenType::Equal], WithNewlines::One) { [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/parser/mod.rs:835:9 [INFO] [stdout] | [INFO] [stdout] 835 | } 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] 830 ~ let value = match self.match_any(&[TokenType::Equal], WithNewlines::One) { Some(token) => { [INFO] [stdout] 831 | Some(VarDeclValue { [INFO] [stdout] ... [INFO] [stdout] 834 | }) [INFO] [stdout] 835 ~ } _ => { [INFO] [stdout] 836 | None [INFO] [stdout] 837 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:879:19 [INFO] [stdout] | [INFO] [stdout] 879 | while let Some(if_token) = self.match_any(&[TokenType::If], WithNewlines::None) { [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/parser/mod.rs:911:13 [INFO] [stdout] | [INFO] [stdout] 911 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:950:23 [INFO] [stdout] | [INFO] [stdout] 950 | let then = if let Some(then_token) = self.match_any(&[TokenType::Then], WithNewlines::None) [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/parser/mod.rs:966:9 [INFO] [stdout] | [INFO] [stdout] 966 | } 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] 950 ~ let then = match self.match_any(&[TokenType::Then], WithNewlines::None) [INFO] [stdout] 951 ~ { Some(then_token) => { [INFO] [stdout] 952 | if label.is_some() { [INFO] [stdout] ... [INFO] [stdout] 965 | }) [INFO] [stdout] 966 ~ } _ => { [INFO] [stdout] 967 | let _ = self.consume(&TokenType::Newline, "Expected newline after if condition")?; [INFO] [stdout] ... [INFO] [stdout] 979 | IfExprThen::Block(IfExprThenBlock { label, block }) [INFO] [stdout] 980 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:987:23 [INFO] [stdout] | [INFO] [stdout] 987 | while let Some(if_token) = self.match_any(&[TokenType::If], WithNewlines::None) { [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/parser/mod.rs:1052:17 [INFO] [stdout] | [INFO] [stdout] 1052 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:994:38 [INFO] [stdout] | [INFO] [stdout] 994 | let else_if = if let Some(then_token) = [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 995 | | self.match_any(&[TokenType::Then], WithNewlines::None) [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/parser/mod.rs:1021:21 [INFO] [stdout] | [INFO] [stdout] 1021 | } 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] 994 ~ let else_if = match self.match_any(&[TokenType::Then], WithNewlines::None) [INFO] [stdout] 995 ~ { Some(then_token) => { [INFO] [stdout] 996 | if label.is_some() { [INFO] [stdout] ... [INFO] [stdout] 1019 | }) [INFO] [stdout] 1020 ~ } _ => { [INFO] [stdout] 1021 | let (stmts, end) = [INFO] [stdout] ... [INFO] [stdout] 1043 | }) [INFO] [stdout] 1044 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1005:28 [INFO] [stdout] | [INFO] [stdout] 1005 | if let Some(end) = self.match_any(&[TokenType::Else], WithNewlines::One) { [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/parser/mod.rs:1010:25 [INFO] [stdout] | [INFO] [stdout] 1010 | } 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] 1005 ~ match self.match_any(&[TokenType::Else], WithNewlines::One) { Some(end) => { [INFO] [stdout] 1006 | end_token = end; [INFO] [stdout] ... [INFO] [stdout] 1009 | should_continue = true; [INFO] [stdout] 1010 ~ } _ => { [INFO] [stdout] 1011 | semicolon_token = None; [INFO] [stdout] 1012 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1158:12 [INFO] [stdout] | [INFO] [stdout] 1158 | if let Some(op_token) = self.match_any( [INFO] [stdout] | ____________^ - [INFO] [stdout] | |_________________________________| [INFO] [stdout] 1159 | || &[ [INFO] [stdout] 1160 | || TokenType::Equal, [INFO] [stdout] 1161 | || TokenType::PlusEqual, [INFO] [stdout] ... || [INFO] [stdout] 1164 | || WithNewlines::One, [INFO] [stdout] 1165 | || ) { [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/parser/mod.rs:1190:9 [INFO] [stdout] | [INFO] [stdout] 1190 | } 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] 1158 ~ match self.match_any( [INFO] [stdout] 1159 | &[ [INFO] [stdout] ... [INFO] [stdout] 1164 | WithNewlines::One, [INFO] [stdout] 1165 ~ ) { Some(op_token) => { [INFO] [stdout] 1166 | let op = match op_token.token_type { [INFO] [stdout] ... [INFO] [stdout] 1189 | )))))); [INFO] [stdout] 1190 ~ } _ => { [INFO] [stdout] 1191 | return Ok(Arc::new(Mutex::new(Stmt::Expr(Arc::new(Mutex::new( [INFO] [stdout] ... [INFO] [stdout] 1196 | )))))); [INFO] [stdout] 1197 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1301:15 [INFO] [stdout] | [INFO] [stdout] 1301 | while let Some(op_token) = self.match_any( [INFO] [stdout] | _______________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 1302 | || &[ [INFO] [stdout] 1303 | || TokenType::Greater, [INFO] [stdout] 1304 | || TokenType::GreaterEqual, [INFO] [stdout] ... || [INFO] [stdout] 1308 | || WithNewlines::One, [INFO] [stdout] 1309 | || ) { [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/parser/mod.rs:1335:9 [INFO] [stdout] | [INFO] [stdout] 1335 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1372:15 [INFO] [stdout] | [INFO] [stdout] 1372 | while let Some(op_token) = [INFO] [stdout] | _______________^ [INFO] [stdout] 1373 | | self.match_any(&[TokenType::Minus, TokenType::Plus], WithNewlines::One) [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/parser/mod.rs:1398:9 [INFO] [stdout] | [INFO] [stdout] 1398 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1478:24 [INFO] [stdout] | [INFO] [stdout] 1478 | if let Some(mut_token) = self.match_any(&[TokenType::Mut], WithNewlines::None) { [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/parser/mod.rs:1483:21 [INFO] [stdout] | [INFO] [stdout] 1483 | } 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] 1478 ~ match self.match_any(&[TokenType::Mut], WithNewlines::None) { Some(mut_token) => { [INFO] [stdout] 1479 | UnaryOp::Ref(RefType::Mut { [INFO] [stdout] ... [INFO] [stdout] 1482 | }) [INFO] [stdout] 1483 ~ } _ => { [INFO] [stdout] 1484 | let const_token = self.match_any(&[TokenType::Const], WithNewlines::None); [INFO] [stdout] ... [INFO] [stdout] 1489 | }) [INFO] [stdout] 1490 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1522:16 [INFO] [stdout] | [INFO] [stdout] 1522 | if let Some(open_paren_token) = [INFO] [stdout] | ________________^ [INFO] [stdout] 1523 | | self.match_any(&[TokenType::OpenParen], WithNewlines::None) [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] 1526 | } else if let Some(dot_token) = self.match_any(&[TokenType::Dot], WithNewlines::One) { [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/parser/mod.rs:1526:13 [INFO] [stdout] | [INFO] [stdout] 1526 | } else if let Some(dot_token) = self.match_any(&[TokenType::Dot], WithNewlines::One) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser/mod.rs:1536:13 [INFO] [stdout] | [INFO] [stdout] 1536 | } 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] 1522 ~ match self.match_any(&[TokenType::OpenParen], WithNewlines::None) [INFO] [stdout] 1523 ~ { Some(open_paren_token) => { [INFO] [stdout] 1524 | expr = self.finish_call(expr, open_paren_token)?; [INFO] [stdout] 1525 ~ } _ => { match self.match_any(&[TokenType::Dot], WithNewlines::One) { Some(dot_token) => { [INFO] [stdout] 1526 | let name = self.consume(&TokenType::Ident, "Expect property name '.'")?; [INFO] [stdout] ... [INFO] [stdout] 1534 | }))))); [INFO] [stdout] 1535 ~ } _ => { [INFO] [stdout] 1536 | break; [INFO] [stdout] 1537 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/decl.rs:503:16 [INFO] [stdout] | [INFO] [stdout] 503 | if let Some(StructFieldMod::Pub(_)) = field.field_mod { [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/syntax/decl.rs:507:13 [INFO] [stdout] | [INFO] [stdout] 507 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 503 ~ match field.field_mod { Some(StructFieldMod::Pub(_)) => { [INFO] [stdout] 504 | if !field.is_resolved() { [INFO] [stdout] 505 | return log::trace!(false); [INFO] [stdout] 506 | } [INFO] [stdout] 507 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:669:31 [INFO] [stdout] | [INFO] [stdout] 669 | resolved_type: if let Some(resolved_type) = value.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:674:13 [INFO] [stdout] | [INFO] [stdout] 674 | } 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] 669 ~ resolved_type: match value.resolved_type { Some(resolved_type) => { [INFO] [stdout] 670 | Some(resolved_type.ok_or(FinalizeResolveTypeError { [INFO] [stdout] ... [INFO] [stdout] 673 | })?) [INFO] [stdout] 674 ~ } _ => { [INFO] [stdout] 675 | None [INFO] [stdout] 676 ~ }}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1228:20 [INFO] [stdout] | [INFO] [stdout] 1228 | if let Some(stmt) = then.block.stmts.last() { [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/syntax/expr.rs:1232:17 [INFO] [stdout] | [INFO] [stdout] 1232 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1228 ~ match then.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1229 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1230 | is_terminal = false; [INFO] [stdout] 1231 | } [INFO] [stdout] 1232 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1242:24 [INFO] [stdout] | [INFO] [stdout] 1242 | if let Some(stmt) = else_if.block.stmts.last() { [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/syntax/expr.rs:1246:21 [INFO] [stdout] | [INFO] [stdout] 1246 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1242 ~ match else_if.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1243 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1244 | is_terminal = false; [INFO] [stdout] 1245 | } [INFO] [stdout] 1246 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1251:12 [INFO] [stdout] | [INFO] [stdout] 1251 | if let Some(else_) = &self.else_ { [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/syntax/expr.rs:1266:9 [INFO] [stdout] | [INFO] [stdout] 1266 | } 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] 1251 ~ match &self.else_ { Some(else_) => { [INFO] [stdout] 1252 | match else_ { [INFO] [stdout] ... [INFO] [stdout] 1265 | } [INFO] [stdout] 1266 ~ } _ => { [INFO] [stdout] 1267 | is_terminal = false; [INFO] [stdout] 1268 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/expr.rs:1257:24 [INFO] [stdout] | [INFO] [stdout] 1257 | if let Some(stmt) = else_.block.stmts.last() { [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/syntax/expr.rs:1261:21 [INFO] [stdout] | [INFO] [stdout] 1261 | } 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] 1257 ~ match else_.block.stmts.last() { Some(stmt) => { [INFO] [stdout] 1258 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 1259 | is_terminal = false; [INFO] [stdout] 1260 | } [INFO] [stdout] 1261 ~ } _ => { [INFO] [stdout] 1262 | is_terminal = false; [INFO] [stdout] 1263 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:608:16 [INFO] [stdout] | [INFO] [stdout] 608 | if let Some(stmt) = else_if.then.stmts.last() { [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/syntax/stmt.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | } 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] 608 ~ match else_if.then.stmts.last() { Some(stmt) => { [INFO] [stdout] 609 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 610 | is_terminal = false; [INFO] [stdout] 611 | } [INFO] [stdout] 612 ~ } _ => { [INFO] [stdout] 613 | is_terminal = false; [INFO] [stdout] 614 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:617:12 [INFO] [stdout] | [INFO] [stdout] 617 | if let Some(else_) = &self.else_ { [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/syntax/stmt.rs:625:9 [INFO] [stdout] | [INFO] [stdout] 625 | } 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] 617 ~ match &self.else_ { Some(else_) => { [INFO] [stdout] 618 | if let Some(stmt) = else_.then.stmts.last() { [INFO] [stdout] ... [INFO] [stdout] 624 | } [INFO] [stdout] 625 ~ } _ => { [INFO] [stdout] 626 | is_terminal = false; [INFO] [stdout] 627 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/stmt.rs:618:16 [INFO] [stdout] | [INFO] [stdout] 618 | if let Some(stmt) = else_.then.stmts.last() { [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/syntax/stmt.rs:622:13 [INFO] [stdout] | [INFO] [stdout] 622 | } 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] 618 ~ match else_.then.stmts.last() { Some(stmt) => { [INFO] [stdout] 619 | if !stmt.try_lock().unwrap().is_terminal() { [INFO] [stdout] 620 | is_terminal = false; [INFO] [stdout] 621 | } [INFO] [stdout] 622 ~ } _ => { [INFO] [stdout] 623 | is_terminal = false; [INFO] [stdout] 624 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/use.rs:125:20 [INFO] [stdout] | [INFO] [stdout] 125 | let a = if let Either::A(a) = self { [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/syntax/use.rs:127:9 [INFO] [stdout] | [INFO] [stdout] 127 | } 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] 125 ~ let a = match self { Either::A(a) => { [INFO] [stdout] 126 | Some(a) [INFO] [stdout] 127 ~ } _ => { [INFO] [stdout] 128 | None [INFO] [stdout] 129 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syntax/use.rs:135:20 [INFO] [stdout] | [INFO] [stdout] 135 | let b = if let Either::B(b) = self { [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/syntax/use.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | } 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] 135 ~ let b = match self { Either::B(b) => { [INFO] [stdout] 136 | Some(b) [INFO] [stdout] 137 ~ } _ => { [INFO] [stdout] 138 | None [INFO] [stdout] 139 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:307:20 [INFO] [stdout] | [INFO] [stdout] 307 | if let Some(return_type) = &decl.return_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:314:17 [INFO] [stdout] | [INFO] [stdout] 314 | } 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] 307 ~ match &decl.return_type { Some(return_type) => { [INFO] [stdout] 308 | if let Some(return_type) = &return_type.resolved_type { [INFO] [stdout] ... [INFO] [stdout] 313 | } [INFO] [stdout] 314 ~ } _ => { [INFO] [stdout] 315 | self.current_return_type = Some(None); [INFO] [stdout] 316 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:308:24 [INFO] [stdout] | [INFO] [stdout] 308 | if let Some(return_type) = &return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:310:21 [INFO] [stdout] | [INFO] [stdout] 310 | } 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] 308 ~ match &return_type.resolved_type { Some(return_type) => { [INFO] [stdout] 309 | self.current_return_type = Some(Some(return_type.clone())); [INFO] [stdout] 310 ~ } _ => { [INFO] [stdout] 311 | // There is a return type, but haven't resolved it yet? [INFO] [stdout] 312 | todo!("I don't think this should ever happen?"); [INFO] [stdout] 313 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:345:20 [INFO] [stdout] | [INFO] [stdout] 345 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/mod.rs:353:17 [INFO] [stdout] | [INFO] [stdout] 353 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 345 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 346 | scope.insert( [INFO] [stdout] ... [INFO] [stdout] 352 | ); [INFO] [stdout] 353 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | } 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] 25 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 26 | params.push((param.name.lexeme.clone(), resolved_type.clone())); [INFO] [stdout] 27 ~ } _ => { [INFO] [stdout] 28 | changed |= param.static_type_ref.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 35 | } [INFO] [stdout] 36 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:31:24 [INFO] [stdout] | [INFO] [stdout] 31 | if let Some(resolved_type) = ¶m.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | } 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] 31 ~ match ¶m.resolved_type { Some(resolved_type) => { [INFO] [stdout] 32 | params.push((param.name.lexeme.clone(), resolved_type.clone())); [INFO] [stdout] 33 ~ } _ => { [INFO] [stdout] 34 | all_resolved = false; [INFO] [stdout] 35 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:45:16 [INFO] [stdout] | [INFO] [stdout] 45 | if let Some(return_type) = &mut decl.return_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:58:13 [INFO] [stdout] | [INFO] [stdout] 58 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 45 ~ match &mut decl.return_type { Some(return_type) => { [INFO] [stdout] 46 | if let Some(resolved_type) = &return_type.resolved_type { [INFO] [stdout] ... [INFO] [stdout] 57 | } [INFO] [stdout] 58 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:46:20 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(resolved_type) = &return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:48:17 [INFO] [stdout] | [INFO] [stdout] 48 | } 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] 46 ~ match &return_type.resolved_type { Some(resolved_type) => { [INFO] [stdout] 47 | fn_return_type = Some(Box::new(resolved_type.clone())); [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | changed |= return_type.static_type.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 56 | } [INFO] [stdout] 57 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:52:24 [INFO] [stdout] | [INFO] [stdout] 52 | if let Some(resolved_type) = &mut return_type.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | } 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] 52 ~ match &mut return_type.resolved_type { Some(resolved_type) => { [INFO] [stdout] 53 | fn_return_type = Some(Box::new(resolved_type.clone())); [INFO] [stdout] 54 ~ } _ => { [INFO] [stdout] 55 | all_resolved = false; [INFO] [stdout] 56 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:103:16 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(resolved) = &field.static_type_ref.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/decl.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | } 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] 103 ~ match &field.static_type_ref.resolved_type { Some(resolved) => { [INFO] [stdout] 104 | fields.push(FeStructField { [INFO] [stdout] ... [INFO] [stdout] 108 | }); [INFO] [stdout] 109 ~ } _ => { [INFO] [stdout] 110 | all_done = false; [INFO] [stdout] 111 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:99:12 [INFO] [stdout] | [INFO] [stdout] 99 | if let Some(found) = self.scope.try_lock().unwrap().search(ident) { [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/type_resolver/expr.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | } 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] 99 ~ match self.scope.try_lock().unwrap().search(ident) { Some(found) => { [INFO] [stdout] 100 | expr.resolved_type = Some(found.typ.clone()); [INFO] [stdout] 101 | self.expr_lookup.insert(expr.id, found.typ.clone()); [INFO] [stdout] 102 ~ } _ => { [INFO] [stdout] 103 | return Ok(false); [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:213:45 [INFO] [stdout] | [INFO] [stdout] 213 | expr.resolved_type = if let FeType::Bool(details) = &resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | } 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] 213 ~ expr.resolved_type = match &resolved_type { FeType::Bool(details) => { [INFO] [stdout] 214 | Some(FeType::Bool(details.map(|known_val| !known_val))) [INFO] [stdout] 215 ~ } _ => { [INFO] [stdout] 216 | Some(FeType::Bool(None)) [INFO] [stdout] 217 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:453:20 [INFO] [stdout] | [INFO] [stdout] 453 | if let Some(resolved) = &ident.try_lock().unwrap().resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:455:17 [INFO] [stdout] | [INFO] [stdout] 455 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 453 ~ match &ident.try_lock().unwrap().resolved_type { Some(resolved) => { [INFO] [stdout] 454 | target = Some(resolved.clone()); [INFO] [stdout] 455 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:460:20 [INFO] [stdout] | [INFO] [stdout] 460 | if let Some(resolved) = &path.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:462:17 [INFO] [stdout] | [INFO] [stdout] 462 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 460 ~ match &path.resolved_type { Some(resolved) => { [INFO] [stdout] 461 | target = Some(resolved.clone()); [INFO] [stdout] 462 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:499:28 [INFO] [stdout] | [INFO] [stdout] 499 | if let Some(resolved) = [INFO] [stdout] | ____________________________^ [INFO] [stdout] 500 | | field.value.0.try_lock().unwrap().resolved_type().flatten() [INFO] [stdout] | |_____________________________----------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [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/type_resolver/expr.rs:505:25 [INFO] [stdout] | [INFO] [stdout] 505 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 499 ~ match field.value.0.try_lock().unwrap().resolved_type().flatten() [INFO] [stdout] 500 ~ { Some(resolved) => { [INFO] [stdout] 501 | if !Self::can_implicit_cast(&resolved, &struct_field.typ) { [INFO] [stdout] 502 | todo!("Invalid type! {resolved:#?}"); [INFO] [stdout] 503 | } [INFO] [stdout] 504 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:613:20 [INFO] [stdout] | [INFO] [stdout] 613 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:617:17 [INFO] [stdout] | [INFO] [stdout] 617 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 613 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 614 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 615 | todo!("Can't cast to bool!"); [INFO] [stdout] 616 | } [INFO] [stdout] 617 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:684:28 [INFO] [stdout] | [INFO] [stdout] 684 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:688:25 [INFO] [stdout] | [INFO] [stdout] 688 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 684 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 685 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 686 | todo!("Can't cast to bool!"); [INFO] [stdout] 687 | } [INFO] [stdout] 688 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:700:28 [INFO] [stdout] | [INFO] [stdout] 700 | if let Some(typ) = &typ { [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] 706 | } else if let Some(resolved_type) = resolved_type { [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/type_resolver/expr.rs:706:25 [INFO] [stdout] | [INFO] [stdout] 706 | } else if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:708:25 [INFO] [stdout] | [INFO] [stdout] 708 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 700 ~ match &typ { Some(typ) => { [INFO] [stdout] 701 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] ... [INFO] [stdout] 705 | } [INFO] [stdout] 706 ~ } _ => { match resolved_type { Some(resolved_type) => { [INFO] [stdout] 707 | typ = Some(resolved_type.clone()); [INFO] [stdout] 708 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:701:32 [INFO] [stdout] | [INFO] [stdout] 701 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:705:29 [INFO] [stdout] | [INFO] [stdout] 705 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 701 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 702 | if !Self::can_implicit_cast(&resolved_type, typ) { [INFO] [stdout] 703 | todo!("Can't cast!"); [INFO] [stdout] 704 | } [INFO] [stdout] 705 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:738:12 [INFO] [stdout] | [INFO] [stdout] 738 | if let Some(else_) = &else_ { [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/type_resolver/expr.rs:781:9 [INFO] [stdout] | [INFO] [stdout] 781 | } 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] 738 ~ match &else_ { Some(else_) => { [INFO] [stdout] 739 | if !else_.is_resolved() { [INFO] [stdout] ... [INFO] [stdout] 780 | } [INFO] [stdout] 781 ~ } _ => { [INFO] [stdout] 782 | todo!("TODO: Implicit wrap as optional") [INFO] [stdout] 783 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:750:28 [INFO] [stdout] | [INFO] [stdout] 750 | if let Some(typ) = &typ { [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] 756 | } else if let Some(resolved_type) = resolved_type { [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/type_resolver/expr.rs:756:25 [INFO] [stdout] | [INFO] [stdout] 756 | } else if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:758:25 [INFO] [stdout] | [INFO] [stdout] 758 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 750 ~ match &typ { Some(typ) => { [INFO] [stdout] 751 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] ... [INFO] [stdout] 755 | } [INFO] [stdout] 756 ~ } _ => { match resolved_type { Some(resolved_type) => { [INFO] [stdout] 757 | typ = Some(resolved_type); [INFO] [stdout] 758 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:751:32 [INFO] [stdout] | [INFO] [stdout] 751 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:755:29 [INFO] [stdout] | [INFO] [stdout] 755 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 751 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 752 | if !Self::can_implicit_cast(&resolved_type, typ) { [INFO] [stdout] 753 | todo!("Can't cast!"); [INFO] [stdout] 754 | } [INFO] [stdout] 755 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:787:12 [INFO] [stdout] | [INFO] [stdout] 787 | if let Some(Some(already)) = &expr.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:793:9 [INFO] [stdout] | [INFO] [stdout] 793 | } 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] 787 ~ match &expr.resolved_type { Some(Some(already)) => { [INFO] [stdout] 788 | if let Some(typ) = typ { [INFO] [stdout] ... [INFO] [stdout] 792 | } [INFO] [stdout] 793 ~ } _ => { [INFO] [stdout] 794 | expr.resolved_type = Some(typ); [INFO] [stdout] 795 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/expr.rs:788:16 [INFO] [stdout] | [INFO] [stdout] 788 | if let Some(typ) = typ { [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/type_resolver/expr.rs:792:13 [INFO] [stdout] | [INFO] [stdout] 792 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 788 ~ match typ { Some(typ) => { [INFO] [stdout] 789 | if !Self::can_implicit_cast(&typ, already) { [INFO] [stdout] 790 | todo!(); [INFO] [stdout] 791 | } [INFO] [stdout] 792 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/scope.rs:152:16 [INFO] [stdout] | [INFO] [stdout] 152 | if let Some(found) = data.name_lookup.get(name) { [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/type_resolver/scope.rs:154:13 [INFO] [stdout] | [INFO] [stdout] 154 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 152 ~ match data.name_lookup.get(name) { Some(found) => { [INFO] [stdout] 153 | return Some(found); [INFO] [stdout] 154 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | let scope = if let Some(root) = &mut static_path.root { [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/type_resolver/static.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 70 | } 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] 58 ~ let scope = match &mut static_path.root { Some(root) => { [INFO] [stdout] 59 | changed |= root.accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 69 | } [INFO] [stdout] 70 ~ } _ => { [INFO] [stdout] 71 | Some(self.scope.clone()) [INFO] [stdout] 72 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if let Some(root_type) = &root.resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/static.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | } 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] 61 ~ match &root.resolved_type { Some(root_type) => { [INFO] [stdout] 62 | let FeType::Package(pkg) = root_type else { [INFO] [stdout] ... [INFO] [stdout] 66 | Some(pkg.try_lock().unwrap().scope()) [INFO] [stdout] 67 ~ } _ => { [INFO] [stdout] 68 | None [INFO] [stdout] 69 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:24:22 [INFO] [stdout] | [INFO] [stdout] 24 | let typ = if let Some(value) = &stmt.value { [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/type_resolver/stmt.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } 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] 24 ~ let typ = match &stmt.value { Some(value) => { [INFO] [stdout] 25 | let value = &mut *value.value.0.try_lock().unwrap(); [INFO] [stdout] ... [INFO] [stdout] 29 | value.resolved_type().flatten() [INFO] [stdout] 30 ~ } _ => { [INFO] [stdout] 31 | None [INFO] [stdout] 32 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | if let Some(resolved_type) = &types.0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:100:13 [INFO] [stdout] | [INFO] [stdout] 100 | } [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 ~ match &types.0 { Some(resolved_type) => { [INFO] [stdout] 83 | match resolved_type { [INFO] [stdout] ... [INFO] [stdout] 99 | } [INFO] [stdout] 100 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:150:16 [INFO] [stdout] | [INFO] [stdout] 150 | if let Some(resolved_type) = value.0.try_lock().unwrap().resolved_type().flatten() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [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/type_resolver/stmt.rs:160:13 [INFO] [stdout] | [INFO] [stdout] 160 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 150 ~ match value.0.try_lock().unwrap().resolved_type().flatten() { Some(resolved_type) => { [INFO] [stdout] 151 | match current_return_type { [INFO] [stdout] ... [INFO] [stdout] 159 | } [INFO] [stdout] 160 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:192:20 [INFO] [stdout] | [INFO] [stdout] 192 | if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:196:17 [INFO] [stdout] | [INFO] [stdout] 196 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 192 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 193 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 194 | todo!("Can't cast to bool!"); [INFO] [stdout] 195 | } [INFO] [stdout] 196 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:237:32 [INFO] [stdout] | [INFO] [stdout] 237 | ... if let Some(resolved_type) = resolved_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:241:29 [INFO] [stdout] | [INFO] [stdout] 241 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 237 ~ match resolved_type { Some(resolved_type) => { [INFO] [stdout] 238 | if !Self::can_implicit_cast(&resolved_type, &FeType::Bool(None)) { [INFO] [stdout] 239 | todo!("Can't cast to bool!"); [INFO] [stdout] 240 | } [INFO] [stdout] 241 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:376:32 [INFO] [stdout] | [INFO] [stdout] 376 | let resolved_type = if let Some(value) = &stmt.value { [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/type_resolver/stmt.rs:385:9 [INFO] [stdout] | [INFO] [stdout] 385 | } 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] 376 ~ let resolved_type = match &stmt.value { Some(value) => { [INFO] [stdout] 377 | changed |= value.0.try_lock().unwrap().accept(self)?; [INFO] [stdout] ... [INFO] [stdout] 384 | } [INFO] [stdout] 385 ~ } _ => { [INFO] [stdout] 386 | None [INFO] [stdout] 387 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:379:16 [INFO] [stdout] | [INFO] [stdout] 379 | if let Some(resolved_type) = value.0.try_lock().unwrap().resolved_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:382:13 [INFO] [stdout] | [INFO] [stdout] 382 | } 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] 379 ~ match value.0.try_lock().unwrap().resolved_type() { Some(resolved_type) => { [INFO] [stdout] 380 | stmt.resolved_type = Some(resolved_type.clone()); [INFO] [stdout] 381 | resolved_type [INFO] [stdout] 382 ~ } _ => { [INFO] [stdout] 383 | None [INFO] [stdout] 384 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:476:12 [INFO] [stdout] | [INFO] [stdout] 476 | if let Some(resolved_type) = stmt.value.0.try_lock().unwrap().resolved_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/stmt.rs:512:9 [INFO] [stdout] | [INFO] [stdout] 512 | } 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] 476 ~ match stmt.value.0.try_lock().unwrap().resolved_type() { Some(resolved_type) => { [INFO] [stdout] 477 | stmt.resolved_type = resolved_type.clone(); [INFO] [stdout] ... [INFO] [stdout] 511 | } [INFO] [stdout] 512 ~ } _ => { [INFO] [stdout] 513 | todo!(); [INFO] [stdout] 514 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_resolver/use.rs:115:20 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(t) = t { [INFO] [stdout] | ^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_resolver/use.rs:118:17 [INFO] [stdout] | [INFO] [stdout] 118 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 115 ~ match t { Some(t) => { [INFO] [stdout] 116 | *typ = Some(t.clone()); [INFO] [stdout] 117 | types.push((path.name.lexeme.clone(), t)); [INFO] [stdout] 118 ~ } _ => { [INFO] [stdout] 119 | // log::trace!(&search_scope, &path.name); [INFO] [stdout] 120 | todo!("type not found: {:#?}", path.name); [INFO] [stdout] 121 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 86 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.87s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking ferrum_compiler v0.0.4 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/syntax/node.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(r#gen) => return gen.next(), [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/syntax/node.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | -- ^^^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the `match` arm starting here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/syntax/node.rs:60:27 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(r#gen) => return gen.next(), [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/syntax/node.rs:60:42 [INFO] [stdout] | [INFO] [stdout] 60 | Self::Default(gen) => return gen.next(), [INFO] [stdout] | -- ^^^ expected expression [INFO] [stdout] | | [INFO] [stdout] | while parsing the `match` arm starting here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `ferrum_compiler` (lib) due to 3 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `ferrum_compiler` (lib test) due to 3 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "2b55935ba70eaf0e0bcee96a812e99b0510a72d14aa60029a0af63c63100255f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2b55935ba70eaf0e0bcee96a812e99b0510a72d14aa60029a0af63c63100255f", kill_on_drop: false }` [INFO] [stdout] 2b55935ba70eaf0e0bcee96a812e99b0510a72d14aa60029a0af63c63100255f