[INFO] fetching crate numbat 1.13.0... [INFO] checking numbat-1.13.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate numbat 1.13.0 into /workspace/builds/worker-4-tc2/source [INFO] validating manifest of crates.io crate numbat 1.13.0 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate numbat 1.13.0 [INFO] finished tweaking crates.io crate numbat 1.13.0 [INFO] tweaked toml for crates.io crate numbat 1.13.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate crates.io crate numbat 1.13.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2c14c684f601677d94ccca84c0825ba60ea530876e8dda3a1e77fc24ab5b9b74 [INFO] running `Command { std: "docker" "start" "-a" "2c14c684f601677d94ccca84c0825ba60ea530876e8dda3a1e77fc24ab5b9b74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2c14c684f601677d94ccca84c0825ba60ea530876e8dda3a1e77fc24ab5b9b74", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2c14c684f601677d94ccca84c0825ba60ea530876e8dda3a1e77fc24ab5b9b74", kill_on_drop: false }` [INFO] [stdout] 2c14c684f601677d94ccca84c0825ba60ea530876e8dda3a1e77fc24ab5b9b74 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4c8f5ed08c6905342623d8d28797c06ce55e190189196a5408a9591ae39e1d67 [INFO] running `Command { std: "docker" "start" "-a" "4c8f5ed08c6905342623d8d28797c06ce55e190189196a5408a9591ae39e1d67", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed Cargo.toml (2 fixes) [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling cc v1.0.104 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling typenum v1.17.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking tinyvec v1.6.1 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Checking rustls-pki-types v1.7.0 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.68 [INFO] [stderr] Compiling rustls v0.22.4 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Compiling cpufeatures v0.2.12 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking bytes v1.6.0 [INFO] [stderr] Compiling ryu_floating_decimal v0.1.0 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling serde_json v1.0.120 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling shellexpand v3.1.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking webpki-roots v0.26.3 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling thiserror v1.0.61 [INFO] [stderr] Checking plotters-backend v0.3.6 [INFO] [stderr] Compiling rust-embed-utils v8.4.0 [INFO] [stderr] Checking anstyle v1.0.7 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking clap_lex v0.7.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Checking plotters-svg v0.3.6 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking quick-xml v0.31.0 [INFO] [stderr] Checking clap_builder v4.5.8 [INFO] [stderr] Checking unicode-width v0.1.13 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Checking heck v0.4.1 [INFO] [stderr] Checking num-format v0.4.4 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking criterion-plot v0.5.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking console v0.15.8 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Compiling thiserror-impl v1.0.61 [INFO] [stderr] Compiling rust-embed-impl v8.4.0 [INFO] [stderr] Checking pretty_dtoa v0.3.0 [INFO] [stderr] Checking clap v4.5.8 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking plotters v0.3.6 [INFO] [stderr] Checking rust-embed v8.4.0 [INFO] [stderr] Checking is-terminal v0.4.12 [INFO] [stderr] Checking jiff v0.1.3 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking regex v1.10.5 [INFO] [stderr] Checking mendeleev v0.8.1 [INFO] [stderr] Checking strfmt v0.2.4 [INFO] [stderr] Checking oorandom v11.1.3 [INFO] [stderr] Checking similar v2.5.0 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Checking unicode-ident v1.0.12 [INFO] [stderr] Checking approx v0.5.1 [INFO] [stderr] Checking glob v0.3.1 [INFO] [stderr] Checking insta v1.39.0 [INFO] [stderr] Checking rustls-webpki v0.102.4 [INFO] [stderr] Checking attohttpc v0.27.0 [INFO] [stderr] Checking numbat-exchange-rates v0.5.0 [INFO] [stderr] Checking numbat v1.13.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking criterion v0.5.1 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `numbat` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/ffi/functions.rs [INFO] [stderr] * src/ffi/macros.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/ffi/functions.rs:23:14 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:23:55 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:33:14 [INFO] [stderr] | [INFO] [stderr] 33 | ($callable:expr_2021, $arity: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/ffi/functions.rs:33:35 [INFO] [stderr] | [INFO] [stderr] 33 | ($callable:expr_2021, $arity: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/ffi/macros.rs:46:7 [INFO] [stderr] | [INFO] [stderr] 46 | ( $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/ffi/macros.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ($value:expr_2021, $unit: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/ffi/macros.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | ($value:expr_2021, $unit: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/ffi/macros.rs:60:6 [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:23:23 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr_2021, $callable:expr, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 60 | ($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/ffi/macros.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($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/ffi/macros.rs:74:6 [INFO] [stderr] | [INFO] [stderr] 74 | ($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/ffi/macros.rs:81:6 [INFO] [stderr] | [INFO] [stderr] 81 | ($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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr, $callable:expr_2021, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:23:52 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr, $callable:expr, $arity: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/ffi/functions.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | ($callable:expr, $arity: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] 33 | ($callable:expr_2021, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:33:37 [INFO] [stdout] | [INFO] [stdout] 33 | ($callable:expr, $arity: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] 33 | ($callable:expr, $arity: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/ffi/macros.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | ( $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] 46 | ( $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/ffi/macros.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | ($value:expr, $unit: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] 53 | ($value:expr_2021, $unit:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/macros.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | ($value:expr, $unit: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] 53 | ($value:expr, $unit: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/ffi/macros.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | ($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] 60 | ($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/ffi/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | ($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] 67 | ($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/ffi/macros.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | ($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] 74 | ($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/ffi/macros.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | ($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] 81 | ($value:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/gamma.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 4 | | fn tgamma(n: c_double) -> c_double; [INFO] [stdout] 5 | | } [INFO] [stdout] | |_^ [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 #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:253:10 [INFO] [stdout] | [INFO] [stdout] 253 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/lib.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 253 | ) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:326:16 [INFO] [stdout] | [INFO] [stdout] 326 | if let Some(md) = reg [INFO] [stdout] | ________________^ - [INFO] [stdout] | |_______________________________| [INFO] [stdout] 327 | || .inner [INFO] [stdout] 328 | || .get_base_representation_for_name(&full_name) [INFO] [stdout] 329 | || .ok() [INFO] [stdout] 330 | || .map(|(_, md)| md) [INFO] [stdout] | ||__________________________________^ 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/lib.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | } [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] 326 ~ match reg [INFO] [stdout] 327 | .inner [INFO] [stdout] ... [INFO] [stdout] 330 | .map(|(_, md)| md) [INFO] [stdout] 331 ~ { Some(md) => { [INFO] [stdout] 332 | let mut help = m::text("Unit: ") + m::unit(md.name.as_deref().unwrap_or(keyword)); [INFO] [stdout] ... [INFO] [stdout] 409 | return help; [INFO] [stdout] 410 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:492:35 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/lib.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:594:20 [INFO] [stdout] | [INFO] [stdout] 594 | if let Err(NumbatError::TypeCheckError(TypeCheckError::UnknownIdentifier( [INFO] [stdout] | ____________________^ [INFO] [stdout] 595 | | _, [INFO] [stdout] 596 | | identifier, [INFO] [stdout] 597 | | _, [INFO] [stdout] 598 | | ))) = &result [INFO] [stdout] | |________________________-----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/lib.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 594 ~ match &result [INFO] [stdout] 595 ~ { Err(NumbatError::TypeCheckError(TypeCheckError::UnknownIdentifier( [INFO] [stdout] 596 + _, [INFO] [stdout] 597 + identifier, [INFO] [stdout] 598 + _, [INFO] [stdout] 599 ~ ))) => { [INFO] [stdout] 600 | // TODO: maybe we can somehow load this list of identifiers from units::currencies? [INFO] [stdout] ... [INFO] [stdout] 752 | } [INFO] [stdout] 753 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/bytecode_interpreter.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 165 | if let Some(idx) = self.vm.get_ffi_callable_idx(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/bytecode_interpreter.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match self.vm.get_ffi_callable_idx(name) { Some(idx) => { [INFO] [stdout] 166 | // TODO: check overflow: [INFO] [stdout] 167 | self.vm.add_op2(Op::FFICallFunction, idx, args.len() as u16); [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | let idx = self.vm.get_function_idx(name); [INFO] [stdout] 170 | [INFO] [stdout] 171 | self.vm.add_op2(Op::Call, idx, args.len() as u16); // TODO: check overflow [INFO] [stdout] 172 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | if let zoned @ Ok(_) = timestamp.to_zoned(TimeZone::UTC) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match timestamp.to_zoned(TimeZone::UTC) { zoned @ Ok(_) => { [INFO] [stdout] 16 | return zoned; [INFO] [stdout] 17 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | if let Ok(tz) = TimeZone::get(potential_timezone_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/datetime.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match TimeZone::get(potential_timezone_name) { Ok(tz) => { [INFO] [stdout] 56 | if let Ok(datetime) = DateTime::strptime(format, rest) { [INFO] [stdout] 57 | return datetime.to_zoned(tz); [INFO] [stdout] 58 | } [INFO] [stdout] 59 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(datetime) = DateTime::strptime(format, rest) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:58:17 [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] 56 ~ match DateTime::strptime(format, rest) { Ok(datetime) => { [INFO] [stdout] 57 | return datetime.to_zoned(tz); [INFO] [stdout] 58 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if let Ok(dt) = DateTime::strptime(format, input) { [INFO] [stdout] | ^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 63 ~ match DateTime::strptime(format, input) { Ok(dt) => { [INFO] [stdout] 64 | return dt.to_zoned(get_local_timezone_or_utc()); [INFO] [stdout] 65 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ffi/lists.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | if let Some(first) = list.head() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ffi/lists.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | } 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] 16 ~ match list.head() { Some(first) => { [INFO] [stdout] 17 | Ok(first) [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | Err(RuntimeError::EmptyList) [INFO] [stdout] 20 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/module_importer.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | if let Ok(code) = fs::read_to_string(&path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/module_importer.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 50 ~ match fs::read_to_string(&path) { Ok(code) => { [INFO] [stdout] 51 | return Some((code, Some(path.to_owned()))); [INFO] [stdout] 52 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/module_importer.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | if let result @ Some(_) = self.main.import(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/module_importer.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | } 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] 145 ~ match self.main.import(path) { result @ Some(_) => { [INFO] [stdout] 146 | result [INFO] [stdout] 147 ~ } _ => { [INFO] [stdout] 148 | self.fallback.import(path) [INFO] [stdout] 149 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:583:24 [INFO] [stdout] | [INFO] [stdout] 583 | if let Ok(local_variable) = self.parse_variable(false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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.rs:585:21 [INFO] [stdout] | [INFO] [stdout] 585 | } 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] 583 ~ match self.parse_variable(false) { Ok(local_variable) => { [INFO] [stdout] 584 | local_variables.push(local_variable); [INFO] [stdout] 585 ~ } _ => { [INFO] [stdout] 586 | return Err(ParseError { [INFO] [stdout] ... [INFO] [stdout] 589 | }); [INFO] [stdout] 590 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:595:28 [INFO] [stdout] | [INFO] [stdout] 595 | if let Ok(local_variable) = self.parse_variable(false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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.rs:597:25 [INFO] [stdout] | [INFO] [stdout] 597 | } 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] 595 ~ match self.parse_variable(false) { Ok(local_variable) => { [INFO] [stdout] 596 | local_variables.push(local_variable); [INFO] [stdout] 597 ~ } _ => { [INFO] [stdout] 598 | return Err(ParseError { [INFO] [stdout] ... [INFO] [stdout] 601 | }); [INFO] [stdout] 602 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/registry.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | if let Some(metadata) = self [INFO] [stdout] | _____________^ - [INFO] [stdout] | | _________________________________| [INFO] [stdout] 147 | || .base_entries [INFO] [stdout] | ||_________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 148 | | .iter() [INFO] [stdout] 149 | | .find(|(n, _)| n == name) [INFO] [stdout] 150 | | .map(|(_, m)| m) [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/registry.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 146 ~ match self [INFO] [stdout] 147 | .base_entries [INFO] [stdout] ... [INFO] [stdout] 150 | .map(|(_, m)| m) [INFO] [stdout] 151 ~ { Some(metadata) => { [INFO] [stdout] 152 | Ok(( [INFO] [stdout] ... [INFO] [stdout] 158 | )) [INFO] [stdout] 159 ~ } _ => { [INFO] [stdout] 160 | self.derived_entries [INFO] [stdout] ... [INFO] [stdout] 172 | .cloned() [INFO] [stdout] 173 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/resolver.rs:110:28 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some((code, filesystem_path)) = self.importer.import(module_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/resolver.rs:122:25 [INFO] [stdout] | [INFO] [stdout] 122 | } 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] 110 ~ match self.importer.import(module_path) { Some((code, filesystem_path)) => { [INFO] [stdout] 111 | self.imported_modules.push(module_path.clone()); [INFO] [stdout] ... [INFO] [stdout] 121 | } [INFO] [stdout] 122 ~ } _ => { [INFO] [stdout] 123 | return Err(ResolverError::UnknownModule(*span, module_path.clone())); [INFO] [stdout] 124 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:94:24 [INFO] [stdout] | [INFO] [stdout] 94 | if let Some(info) = self.structs.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/typechecker/mod.rs:99:21 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 94 ~ match self.structs.get(name) { Some(info) => { [INFO] [stdout] 95 | // if we see a struct name here, it's safe to assume it [INFO] [stdout] ... [INFO] [stdout] 98 | return Ok(Type::Struct(info.clone())); [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:643:40 [INFO] [stdout] | [INFO] [stdout] 643 | ... if let Ok(exponent) = evaluate_const_expr(&rhs_checked) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:667:37 [INFO] [stdout] | [INFO] [stdout] 667 | ... } 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] 643 ~ match evaluate_const_expr(&rhs_checked) { Ok(exponent) => { [INFO] [stdout] 644 | // Type inference in this case follows a similar pattern to multiplication/division. See [INFO] [stdout] ... [INFO] [stdout] 666 | type_result [INFO] [stdout] 667 ~ } _ => { [INFO] [stdout] 668 | return Err( [INFO] [stdout] ... [INFO] [stdout] 674 | ); [INFO] [stdout] 675 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1430:47 [INFO] [stdout] | [INFO] [stdout] 1430 | let return_type_inferred = if let Some(ref expr) = body_checked { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1487:17 [INFO] [stdout] | [INFO] [stdout] 1487 | } 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] 1430 ~ let return_type_inferred = match body_checked { Some(ref expr) => { [INFO] [stdout] 1431 | let return_type_inferred = expr.get_type(); [INFO] [stdout] ... [INFO] [stdout] 1486 | return_type_inferred [INFO] [stdout] 1487 ~ } _ => { [INFO] [stdout] 1488 | if !ffi::functions().contains_key(function_name.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 1500 | })? [INFO] [stdout] 1501 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1437:28 [INFO] [stdout] | [INFO] [stdout] 1437 | if let Some(annotated_return_type) = annotated_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/typechecker/mod.rs:1484:25 [INFO] [stdout] | [INFO] [stdout] 1484 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1437 ~ match annotated_return_type { Some(annotated_return_type) => { [INFO] [stdout] 1438 | match (&return_type_inferred, annotated_return_type) { [INFO] [stdout] ... [INFO] [stdout] 1483 | } [INFO] [stdout] 1484 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/constraints.rs:317:24 [INFO] [stdout] | [INFO] [stdout] 317 | if let Some((_, actual_field_type)) = info.fields.get(field_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/typechecker/constraints.rs:322:21 [INFO] [stdout] | [INFO] [stdout] 322 | } 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] 317 ~ match info.fields.get(field_name) { Some((_, actual_field_type)) => { [INFO] [stdout] 318 | Some(Satisfied::with_new_constraints(vec![Constraint::Equal( [INFO] [stdout] ... [INFO] [stdout] 321 | )])) [INFO] [stdout] 322 ~ } _ => { [INFO] [stdout] 323 | None [INFO] [stdout] 324 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typed_ast.rs:708:16 [INFO] [stdout] | [INFO] [stdout] 708 | if let Type::Dimension(dtype) = type_.unsafe_as_concrete() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typed_ast.rs:714:13 [INFO] [stdout] | [INFO] [stdout] 714 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 708 ~ match type_.unsafe_as_concrete() { Type::Dimension(dtype) => { [INFO] [stdout] 709 | for (factor, exp) in dtype.factors { [INFO] [stdout] ... [INFO] [stdout] 713 | } [INFO] [stdout] 714 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if let Value::Quantity(q) = 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/value.rs:48:9 [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 self { Value::Quantity(q) => { [INFO] [stdout] 47 | q [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | panic!("Expected value to be a quantity"); [INFO] [stdout] 50 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | if let Value::Boolean(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/value.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match self { Value::Boolean(b) => { [INFO] [stdout] 56 | b [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | panic!("Expected value to be a bool"); [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | if let Value::String(s) = 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/value.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | } 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] 64 ~ match self { Value::String(s) => { [INFO] [stdout] 65 | s [INFO] [stdout] 66 ~ } _ => { [INFO] [stdout] 67 | panic!("Expected value to be a string"); [INFO] [stdout] 68 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | if let Value::DateTime(dt) = 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/value.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | } 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] 73 ~ match self { Value::DateTime(dt) => { [INFO] [stdout] 74 | dt [INFO] [stdout] 75 ~ } _ => { [INFO] [stdout] 76 | panic!("Expected value to be a string"); [INFO] [stdout] 77 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if let Value::FunctionReference(inner) = 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/value.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 82 ~ match self { Value::FunctionReference(inner) => { [INFO] [stdout] 83 | inner [INFO] [stdout] 84 ~ } _ => { [INFO] [stdout] 85 | panic!("Expected value to be a string"); [INFO] [stdout] 86 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | if let Value::StructInstance(_, values) = 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/value.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | } 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] 91 ~ match self { Value::StructInstance(_, values) => { [INFO] [stdout] 92 | values [INFO] [stdout] 93 ~ } _ => { [INFO] [stdout] 94 | panic!("Expected value to be a struct"); [INFO] [stdout] 95 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if let Value::List(values) = 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/value.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] 100 ~ match self { Value::List(values) => { [INFO] [stdout] 101 | values [INFO] [stdout] 102 ~ } _ => { [INFO] [stdout] 103 | panic!("Expected value to be a list"); [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/vm.rs:1051:12 [INFO] [stdout] | [INFO] [stdout] 1051 | if let Some(value) = result_last_statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/vm.rs:1053:9 [INFO] [stdout] | [INFO] [stdout] 1053 | } 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] 1051 ~ match result_last_statement { Some(value) => { [INFO] [stdout] 1052 | Ok(InterpreterResult::Value(value)) [INFO] [stdout] 1053 ~ } _ => { [INFO] [stdout] 1054 | Ok(InterpreterResult::Continue) [INFO] [stdout] 1055 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 43 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/common.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `numbat` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/ast.rs [INFO] [stderr] * src/ffi/functions.rs [INFO] [stderr] * src/ffi/macros.rs [INFO] [stderr] * src/typechecker/tests/type_inference.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/ast.rs:138:7 [INFO] [stderr] | [INFO] [stderr] 138 | ( $num: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/ast.rs:145:7 [INFO] [stderr] | [INFO] [stderr] 145 | ( $name: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/ast.rs:152:7 [INFO] [stderr] | [INFO] [stderr] 152 | ( $name: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/ast.rs:159:7 [INFO] [stderr] | [INFO] [stderr] 159 | ( $rhs:expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:170:7 [INFO] [stderr] | [INFO] [stderr] 170 | ( $rhs:expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:181:7 [INFO] [stderr] | [INFO] [stderr] 181 | ( $lhs: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/ast.rs:192:7 [INFO] [stderr] | [INFO] [stderr] 192 | ( $lhs:expr_2021, $op:ident, $rhs: expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:192:34 [INFO] [stderr] | [INFO] [stderr] 192 | ( $lhs:expr_2021, $op:ident, $rhs: expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:204:7 [INFO] [stderr] | [INFO] [stderr] 204 | ( $cond:expr_2021, $lhs:expr_2021, $rhs: expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:204:24 [INFO] [stderr] | [INFO] [stderr] 204 | ( $cond:expr_2021, $lhs:expr_2021, $rhs: expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:204:40 [INFO] [stderr] | [INFO] [stderr] 204 | ( $cond:expr_2021, $lhs:expr_2021, $rhs: expr_2021 ) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/ast.rs:216:38 [INFO] [stderr] | [INFO] [stderr] 216 | ( $name:ident, $( $field:ident : $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/ast.rs:230:10 [INFO] [stderr] | [INFO] [stderr] 230 | ( $( $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/ffi/functions.rs:23:14 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:23:34 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:23:55 [INFO] [stderr] | [INFO] [stderr] 23 | ($fn_name:expr_2021, $callable:expr_2021, $arity: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/ffi/functions.rs:33:14 [INFO] [stderr] | [INFO] [stderr] 33 | ($callable:expr_2021, $arity: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/ffi/functions.rs:33:35 [INFO] [stderr] | [INFO] [stderr] 33 | ($callable:expr_2021, $arity:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:138:12 [INFO] [stdout] | [INFO] [stdout] 138 | ( $num: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] 138 | ( $num:expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | ( $name: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] 145 | ( $name:expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [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/ffi/macros.rs:46:7 [INFO] [stderr] | [INFO] [stderr] 46 | ( $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/ffi/macros.rs:53:6 [INFO] [stderr] | [INFO] [stderr] 53 | ($value:expr_2021, $unit: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/ffi/macros.rs:53:24 [INFO] [stderr] | [INFO] [stderr] 53 | ($value:expr_2021, $unit: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/ffi/macros.rs:60:6 [INFO] [stderr] | [INFO] [stderr] 60 | ($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/ffi/macros.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($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/ffi/macros.rs:74:6 [INFO] [stderr] | [INFO] [stderr] 74 | ($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/ffi/macros.rs:81:6 [INFO] [stderr] | [INFO] [stderr] 81 | ($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/typechecker/tests/type_inference.rs:100:15 [INFO] [stderr] | [INFO] [stderr] 100 | (forall $($type_params:expr_2021),* ; dim $($dtypes:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:100:49 [INFO] [stderr] | [INFO] [stderr] 100 | (forall $($type_params:expr_2021),* ; dim $($dtypes:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:100:74 [INFO] [stderr] | [INFO] [stderr] 100 | (forall $($type_params:expr_2021),* ; dim $($dtypes:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:100:103 [INFO] [stderr] | [INFO] [stderr] 100 | (forall $($type_params:expr_2021),* ; dim $($dtypes:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:103:15 [INFO] [stderr] | [INFO] [stderr] 103 | (forall $($type_params:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:103:45 [INFO] [stderr] | [INFO] [stderr] 103 | (forall $($type_params:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:103:74 [INFO] [stderr] | [INFO] [stderr] 103 | (forall $($type_params:expr_2021),* ; $($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:106:8 [INFO] [stderr] | [INFO] [stderr] 106 | ($($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:106:37 [INFO] [stderr] | [INFO] [stderr] 106 | ($($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:112:8 [INFO] [stderr] | [INFO] [stderr] 112 | ($($param_types:expr_2021),* => $return_type: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/typechecker/tests/type_inference.rs:112:37 [INFO] [stderr] | [INFO] [stderr] 112 | ($($param_types:expr_2021),* => $return_type: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 36 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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:152:13 [INFO] [stdout] | [INFO] [stdout] 152 | ( $name: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] 152 | ( $name: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/ast.rs:159:12 [INFO] [stdout] | [INFO] [stdout] 159 | ( $rhs:expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 159 | ( $rhs:expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:170:12 [INFO] [stdout] | [INFO] [stdout] 170 | ( $rhs:expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 170 | ( $rhs:expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 181 | ( $lhs: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] 181 | ( $lhs: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/ast.rs:192:12 [INFO] [stdout] | [INFO] [stdout] 192 | ( $lhs:expr, $op:ident, $rhs: expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 192 | ( $lhs:expr_2021, $op:ident, $rhs: expr ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:192:35 [INFO] [stdout] | [INFO] [stdout] 192 | ( $lhs:expr, $op:ident, $rhs: expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 192 | ( $lhs:expr, $op:ident, $rhs: expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:204:13 [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr, $lhs:expr, $rhs: expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr_2021, $lhs:expr, $rhs: expr ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:204:24 [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr, $lhs:expr, $rhs: expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr, $lhs:expr_2021, $rhs: expr ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:204:36 [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr, $lhs:expr, $rhs: expr ) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 204 | ( $cond:expr, $lhs:expr, $rhs: expr_2021 ) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ast.rs:216:43 [INFO] [stdout] | [INFO] [stdout] 216 | ( $name:ident, $( $field:ident : $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] 216 | ( $name:ident, $( $field:ident : $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/ast.rs:230:15 [INFO] [stdout] | [INFO] [stdout] 230 | ( $( $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] 230 | ( $( $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/ffi/functions.rs:23:23 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr_2021, $callable:expr, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr, $callable:expr_2021, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:23:52 [INFO] [stdout] | [INFO] [stdout] 23 | ($fn_name:expr, $callable:expr, $arity: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] 23 | ($fn_name:expr, $callable:expr, $arity: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/ffi/functions.rs:33:24 [INFO] [stdout] | [INFO] [stdout] 33 | ($callable:expr, $arity: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] 33 | ($callable:expr_2021, $arity:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/functions.rs:33:37 [INFO] [stdout] | [INFO] [stdout] 33 | ($callable:expr, $arity: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] 33 | ($callable:expr, $arity: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/ffi/macros.rs:46:14 [INFO] [stdout] | [INFO] [stdout] 46 | ( $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] 46 | ( $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/ffi/macros.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | ($value:expr, $unit: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] 53 | ($value:expr_2021, $unit:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/macros.rs:53:25 [INFO] [stdout] | [INFO] [stdout] 53 | ($value:expr, $unit: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] 53 | ($value:expr, $unit: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/ffi/macros.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | ($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] 60 | ($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/ffi/macros.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | ($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] 67 | ($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/ffi/macros.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | ($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] 74 | ($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/ffi/macros.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | ($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] 81 | ($value:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/gamma.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 4 | | fn tgamma(n: c_double) -> c_double; [INFO] [stdout] 5 | | } [INFO] [stdout] | |_^ [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 #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:100:28 [INFO] [stdout] | [INFO] [stdout] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type: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] 100 | (forall $($type_params:expr_2021),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:100:52 [INFO] [stdout] | [INFO] [stdout] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type: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] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr_2021),* ; $($param_types:expr),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:100:77 [INFO] [stdout] | [INFO] [stdout] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type: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] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr_2021),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:100:101 [INFO] [stdout] | [INFO] [stdout] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type: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] 100 | (forall $($type_params:expr),* ; dim $($dtypes:expr),* ; $($param_types:expr),* => $return_type: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/typechecker/tests/type_inference.rs:103:28 [INFO] [stdout] | [INFO] [stdout] 103 | (forall $($type_params:expr),* ; $($param_types:expr),* => $return_type: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] 103 | (forall $($type_params:expr_2021),* ; $($param_types:expr),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:103:53 [INFO] [stdout] | [INFO] [stdout] 103 | (forall $($type_params:expr),* ; $($param_types:expr),* => $return_type: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] 103 | (forall $($type_params:expr),* ; $($param_types:expr_2021),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:103:77 [INFO] [stdout] | [INFO] [stdout] 103 | (forall $($type_params:expr),* ; $($param_types:expr),* => $return_type: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] 103 | (forall $($type_params:expr),* ; $($param_types:expr),* => $return_type: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/typechecker/tests/type_inference.rs:106:21 [INFO] [stdout] | [INFO] [stdout] 106 | ($($param_types:expr),* => $return_type: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] 106 | ($($param_types:expr_2021),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:106:45 [INFO] [stdout] | [INFO] [stdout] 106 | ($($param_types:expr),* => $return_type: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] 106 | ($($param_types:expr),* => $return_type: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/typechecker/tests/type_inference.rs:112:21 [INFO] [stdout] | [INFO] [stdout] 112 | ($($param_types:expr),* => $return_type: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] 112 | ($($param_types:expr_2021),* => $return_type:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/typechecker/tests/type_inference.rs:112:45 [INFO] [stdout] | [INFO] [stdout] 112 | ($($param_types:expr),* => $return_type: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] 112 | ($($param_types:expr),* => $return_type:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator + 'a` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:253:10 [INFO] [stdout] | [INFO] [stdout] 253 | ) -> impl Iterator + 'a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/lib.rs:250:9 [INFO] [stdout] | [INFO] [stdout] 250 | &self, [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 253 | ) -> impl Iterator + 'a + use<'a> { [INFO] [stdout] | +++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:326:16 [INFO] [stdout] | [INFO] [stdout] 326 | if let Some(md) = reg [INFO] [stdout] | ________________^ - [INFO] [stdout] | |_______________________________| [INFO] [stdout] 327 | || .inner [INFO] [stdout] 328 | || .get_base_representation_for_name(&full_name) [INFO] [stdout] 329 | || .ok() [INFO] [stdout] 330 | || .map(|(_, md)| md) [INFO] [stdout] | ||__________________________________^ 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/lib.rs:410:13 [INFO] [stdout] | [INFO] [stdout] 410 | } [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] 326 ~ match reg [INFO] [stdout] 327 | .inner [INFO] [stdout] ... [INFO] [stdout] 330 | .map(|(_, md)| md) [INFO] [stdout] 331 ~ { Some(md) => { [INFO] [stdout] 332 | let mut help = m::text("Unit: ") + m::unit(md.name.as_deref().unwrap_or(keyword)); [INFO] [stdout] ... [INFO] [stdout] 409 | return help; [INFO] [stdout] 410 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/lib.rs:492:35 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, this lifetime is in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/lib.rs:492:25 [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator { [INFO] [stdout] | ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 492 | pub fn list_modules(&self) -> impl Iterator + use<> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:594:20 [INFO] [stdout] | [INFO] [stdout] 594 | if let Err(NumbatError::TypeCheckError(TypeCheckError::UnknownIdentifier( [INFO] [stdout] | ____________________^ [INFO] [stdout] 595 | | _, [INFO] [stdout] 596 | | identifier, [INFO] [stdout] 597 | | _, [INFO] [stdout] 598 | | ))) = &result [INFO] [stdout] | |________________________-----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/lib.rs:753:17 [INFO] [stdout] | [INFO] [stdout] 753 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 594 ~ match &result [INFO] [stdout] 595 ~ { Err(NumbatError::TypeCheckError(TypeCheckError::UnknownIdentifier( [INFO] [stdout] 596 + _, [INFO] [stdout] 597 + identifier, [INFO] [stdout] 598 + _, [INFO] [stdout] 599 ~ ))) => { [INFO] [stdout] 600 | // TODO: maybe we can somehow load this list of identifiers from units::currencies? [INFO] [stdout] ... [INFO] [stdout] 752 | } [INFO] [stdout] 753 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/bytecode_interpreter.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 165 | if let Some(idx) = self.vm.get_ffi_callable_idx(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/bytecode_interpreter.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 165 ~ match self.vm.get_ffi_callable_idx(name) { Some(idx) => { [INFO] [stdout] 166 | // TODO: check overflow: [INFO] [stdout] 167 | self.vm.add_op2(Op::FFICallFunction, idx, args.len() as u16); [INFO] [stdout] 168 ~ } _ => { [INFO] [stdout] 169 | let idx = self.vm.get_function_idx(name); [INFO] [stdout] 170 | [INFO] [stdout] 171 | self.vm.add_op2(Op::Call, idx, args.len() as u16); // TODO: check overflow [INFO] [stdout] 172 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | if let zoned @ Ok(_) = timestamp.to_zoned(TimeZone::UTC) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match timestamp.to_zoned(TimeZone::UTC) { zoned @ Ok(_) => { [INFO] [stdout] 16 | return zoned; [INFO] [stdout] 17 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:55:16 [INFO] [stdout] | [INFO] [stdout] 55 | if let Ok(tz) = TimeZone::get(potential_timezone_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/datetime.rs:59:13 [INFO] [stdout] | [INFO] [stdout] 59 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match TimeZone::get(potential_timezone_name) { Ok(tz) => { [INFO] [stdout] 56 | if let Ok(datetime) = DateTime::strptime(format, rest) { [INFO] [stdout] 57 | return datetime.to_zoned(tz); [INFO] [stdout] 58 | } [INFO] [stdout] 59 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:56:20 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(datetime) = DateTime::strptime(format, rest) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:58:17 [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] 56 ~ match DateTime::strptime(format, rest) { Ok(datetime) => { [INFO] [stdout] 57 | return datetime.to_zoned(tz); [INFO] [stdout] 58 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/datetime.rs:63:12 [INFO] [stdout] | [INFO] [stdout] 63 | if let Ok(dt) = DateTime::strptime(format, input) { [INFO] [stdout] | ^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/datetime.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 63 ~ match DateTime::strptime(format, input) { Ok(dt) => { [INFO] [stdout] 64 | return dt.to_zoned(get_local_timezone_or_utc()); [INFO] [stdout] 65 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ffi/lists.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 16 | if let Some(first) = list.head() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ffi/lists.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | } 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] 16 ~ match list.head() { Some(first) => { [INFO] [stdout] 17 | Ok(first) [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | Err(RuntimeError::EmptyList) [INFO] [stdout] 20 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/interpreter.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 217 | if let InterpreterResult::Value(actual) = get_interpreter_result(input).unwrap() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/interpreter.rs:220:9 [INFO] [stdout] | [INFO] [stdout] 220 | } 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] 217 ~ match get_interpreter_result(input).unwrap() { InterpreterResult::Value(actual) => { [INFO] [stdout] 218 | let actual = actual.unsafe_as_quantity(); [INFO] [stdout] 219 | assert_eq!(actual, expected); [INFO] [stdout] 220 ~ } _ => { [INFO] [stdout] 221 | panic!(); [INFO] [stdout] 222 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/interpreter.rs:232:12 [INFO] [stdout] | [INFO] [stdout] 232 | if let Err(err_actual) = get_interpreter_result(input) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/interpreter.rs:234:9 [INFO] [stdout] | [INFO] [stdout] 234 | } 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] 232 ~ match get_interpreter_result(input) { Err(err_actual) => { [INFO] [stdout] 233 | assert_eq!(err_actual, err_expected); [INFO] [stdout] 234 ~ } _ => { [INFO] [stdout] 235 | panic!(); [INFO] [stdout] 236 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/module_importer.rs:50:16 [INFO] [stdout] | [INFO] [stdout] 50 | if let Ok(code) = fs::read_to_string(&path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/module_importer.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 50 ~ match fs::read_to_string(&path) { Ok(code) => { [INFO] [stdout] 51 | return Some((code, Some(path.to_owned()))); [INFO] [stdout] 52 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/module_importer.rs:145:12 [INFO] [stdout] | [INFO] [stdout] 145 | if let result @ Some(_) = self.main.import(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/module_importer.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | } 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] 145 ~ match self.main.import(path) { result @ Some(_) => { [INFO] [stdout] 146 | result [INFO] [stdout] 147 ~ } _ => { [INFO] [stdout] 148 | self.fallback.import(path) [INFO] [stdout] 149 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:583:24 [INFO] [stdout] | [INFO] [stdout] 583 | if let Ok(local_variable) = self.parse_variable(false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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.rs:585:21 [INFO] [stdout] | [INFO] [stdout] 585 | } 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] 583 ~ match self.parse_variable(false) { Ok(local_variable) => { [INFO] [stdout] 584 | local_variables.push(local_variable); [INFO] [stdout] 585 ~ } _ => { [INFO] [stdout] 586 | return Err(ParseError { [INFO] [stdout] ... [INFO] [stdout] 589 | }); [INFO] [stdout] 590 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:595:28 [INFO] [stdout] | [INFO] [stdout] 595 | if let Ok(local_variable) = self.parse_variable(false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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.rs:597:25 [INFO] [stdout] | [INFO] [stdout] 597 | } 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] 595 ~ match self.parse_variable(false) { Ok(local_variable) => { [INFO] [stdout] 596 | local_variables.push(local_variable); [INFO] [stdout] 597 ~ } _ => { [INFO] [stdout] 598 | return Err(ParseError { [INFO] [stdout] ... [INFO] [stdout] 601 | }); [INFO] [stdout] 602 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1952:16 [INFO] [stdout] | [INFO] [stdout] 1952 | if let Ok(v) = parse(input, 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/parser.rs:1954:13 [INFO] [stdout] | [INFO] [stdout] 1954 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1952 ~ match parse(input, 0) { Ok(v) => { [INFO] [stdout] 1953 | panic!("Expected parse failure on {input:?} but got: {v:#?}") [INFO] [stdout] 1954 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/registry.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | if let Some(metadata) = self [INFO] [stdout] | _____________^ - [INFO] [stdout] | | _________________________________| [INFO] [stdout] 147 | || .base_entries [INFO] [stdout] | ||_________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 148 | | .iter() [INFO] [stdout] 149 | | .find(|(n, _)| n == name) [INFO] [stdout] 150 | | .map(|(_, m)| m) [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/registry.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 146 ~ match self [INFO] [stdout] 147 | .base_entries [INFO] [stdout] ... [INFO] [stdout] 150 | .map(|(_, m)| m) [INFO] [stdout] 151 ~ { Some(metadata) => { [INFO] [stdout] 152 | Ok(( [INFO] [stdout] ... [INFO] [stdout] 158 | )) [INFO] [stdout] 159 ~ } _ => { [INFO] [stdout] 160 | self.derived_entries [INFO] [stdout] ... [INFO] [stdout] 172 | .cloned() [INFO] [stdout] 173 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/resolver.rs:110:28 [INFO] [stdout] | [INFO] [stdout] 110 | if let Some((code, filesystem_path)) = self.importer.import(module_path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/resolver.rs:122:25 [INFO] [stdout] | [INFO] [stdout] 122 | } 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] 110 ~ match self.importer.import(module_path) { Some((code, filesystem_path)) => { [INFO] [stdout] 111 | self.imported_modules.push(module_path.clone()); [INFO] [stdout] ... [INFO] [stdout] 121 | } [INFO] [stdout] 122 ~ } _ => { [INFO] [stdout] 123 | return Err(ResolverError::UnknownModule(*span, module_path.clone())); [INFO] [stdout] 124 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:94:24 [INFO] [stdout] | [INFO] [stdout] 94 | if let Some(info) = self.structs.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/typechecker/mod.rs:99:21 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 94 ~ match self.structs.get(name) { Some(info) => { [INFO] [stdout] 95 | // if we see a struct name here, it's safe to assume it [INFO] [stdout] ... [INFO] [stdout] 98 | return Ok(Type::Struct(info.clone())); [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:643:40 [INFO] [stdout] | [INFO] [stdout] 643 | ... if let Ok(exponent) = evaluate_const_expr(&rhs_checked) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:667:37 [INFO] [stdout] | [INFO] [stdout] 667 | ... } 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] 643 ~ match evaluate_const_expr(&rhs_checked) { Ok(exponent) => { [INFO] [stdout] 644 | // Type inference in this case follows a similar pattern to multiplication/division. See [INFO] [stdout] ... [INFO] [stdout] 666 | type_result [INFO] [stdout] 667 ~ } _ => { [INFO] [stdout] 668 | return Err( [INFO] [stdout] ... [INFO] [stdout] 674 | ); [INFO] [stdout] 675 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1430:47 [INFO] [stdout] | [INFO] [stdout] 1430 | let return_type_inferred = if let Some(ref expr) = body_checked { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1487:17 [INFO] [stdout] | [INFO] [stdout] 1487 | } 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] 1430 ~ let return_type_inferred = match body_checked { Some(ref expr) => { [INFO] [stdout] 1431 | let return_type_inferred = expr.get_type(); [INFO] [stdout] ... [INFO] [stdout] 1486 | return_type_inferred [INFO] [stdout] 1487 ~ } _ => { [INFO] [stdout] 1488 | if !ffi::functions().contains_key(function_name.as_str()) { [INFO] [stdout] ... [INFO] [stdout] 1500 | })? [INFO] [stdout] 1501 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/mod.rs:1437:28 [INFO] [stdout] | [INFO] [stdout] 1437 | if let Some(annotated_return_type) = annotated_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/typechecker/mod.rs:1484:25 [INFO] [stdout] | [INFO] [stdout] 1484 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1437 ~ match annotated_return_type { Some(annotated_return_type) => { [INFO] [stdout] 1438 | match (&return_type_inferred, annotated_return_type) { [INFO] [stdout] ... [INFO] [stdout] 1483 | } [INFO] [stdout] 1484 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/tests/mod.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | if let Err(err) = dbg!(run_typecheck(input)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/tests/mod.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/tests/mod.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | if let Err(err) = dbg!(run_typecheck(input)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typechecker/tests/mod.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | } else { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typechecker/constraints.rs:317:24 [INFO] [stdout] | [INFO] [stdout] 317 | if let Some((_, actual_field_type)) = info.fields.get(field_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/typechecker/constraints.rs:322:21 [INFO] [stdout] | [INFO] [stdout] 322 | } 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] 317 ~ match info.fields.get(field_name) { Some((_, actual_field_type)) => { [INFO] [stdout] 318 | Some(Satisfied::with_new_constraints(vec![Constraint::Equal( [INFO] [stdout] ... [INFO] [stdout] 321 | )])) [INFO] [stdout] 322 ~ } _ => { [INFO] [stdout] 323 | None [INFO] [stdout] 324 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typed_ast.rs:708:16 [INFO] [stdout] | [INFO] [stdout] 708 | if let Type::Dimension(dtype) = type_.unsafe_as_concrete() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typed_ast.rs:714:13 [INFO] [stdout] | [INFO] [stdout] 714 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 708 ~ match type_.unsafe_as_concrete() { Type::Dimension(dtype) => { [INFO] [stdout] 709 | for (factor, exp) in dtype.factors { [INFO] [stdout] ... [INFO] [stdout] 713 | } [INFO] [stdout] 714 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if let Value::Quantity(q) = 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/value.rs:48:9 [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 self { Value::Quantity(q) => { [INFO] [stdout] 47 | q [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | panic!("Expected value to be a quantity"); [INFO] [stdout] 50 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | if let Value::Boolean(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/value.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match self { Value::Boolean(b) => { [INFO] [stdout] 56 | b [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | panic!("Expected value to be a bool"); [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:64:12 [INFO] [stdout] | [INFO] [stdout] 64 | if let Value::String(s) = 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/value.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | } 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] 64 ~ match self { Value::String(s) => { [INFO] [stdout] 65 | s [INFO] [stdout] 66 ~ } _ => { [INFO] [stdout] 67 | panic!("Expected value to be a string"); [INFO] [stdout] 68 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | if let Value::DateTime(dt) = 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/value.rs:75:9 [INFO] [stdout] | [INFO] [stdout] 75 | } 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] 73 ~ match self { Value::DateTime(dt) => { [INFO] [stdout] 74 | dt [INFO] [stdout] 75 ~ } _ => { [INFO] [stdout] 76 | panic!("Expected value to be a string"); [INFO] [stdout] 77 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | if let Value::FunctionReference(inner) = 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/value.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 82 ~ match self { Value::FunctionReference(inner) => { [INFO] [stdout] 83 | inner [INFO] [stdout] 84 ~ } _ => { [INFO] [stdout] 85 | panic!("Expected value to be a string"); [INFO] [stdout] 86 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | if let Value::StructInstance(_, values) = 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/value.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | } 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] 91 ~ match self { Value::StructInstance(_, values) => { [INFO] [stdout] 92 | values [INFO] [stdout] 93 ~ } _ => { [INFO] [stdout] 94 | panic!("Expected value to be a struct"); [INFO] [stdout] 95 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/value.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 100 | if let Value::List(values) = 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/value.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] 100 ~ match self { Value::List(values) => { [INFO] [stdout] 101 | values [INFO] [stdout] 102 ~ } _ => { [INFO] [stdout] 103 | panic!("Expected value to be a list"); [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/vm.rs:1051:12 [INFO] [stdout] | [INFO] [stdout] 1051 | if let Some(value) = result_last_statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/vm.rs:1053:9 [INFO] [stdout] | [INFO] [stdout] 1053 | } 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] 1051 ~ match result_last_statement { Some(value) => { [INFO] [stdout] 1052 | Ok(InterpreterResult::Value(value)) [INFO] [stdout] 1053 ~ } _ => { [INFO] [stdout] 1054 | Ok(InterpreterResult::Continue) [INFO] [stdout] 1055 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 72 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating benches/prelude.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/interpreter.rs from 2021 edition to 2024 [INFO] [stderr] Fixed tests/interpreter.rs (4 fixes) [INFO] [stderr] Migrating examples/inspect.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/prelude_and_examples.rs from 2021 edition to 2024 [INFO] [stderr] Migrating examples/unit_graph.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.94s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking numbat v1.13.0 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/gamma.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | / extern "C" { [INFO] [stdout] 4 | | fn tgamma(n: c_double) -> c_double; [INFO] [stdout] 5 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/gamma.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | / extern "C" { [INFO] [stdout] 4 | | fn tgamma(n: c_double) -> c_double; [INFO] [stdout] 5 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `numbat` (lib) due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `numbat` (lib test) due to 2 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" "4c8f5ed08c6905342623d8d28797c06ce55e190189196a5408a9591ae39e1d67", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4c8f5ed08c6905342623d8d28797c06ce55e190189196a5408a9591ae39e1d67", kill_on_drop: false }` [INFO] [stdout] 4c8f5ed08c6905342623d8d28797c06ce55e190189196a5408a9591ae39e1d67