[INFO] cloning repository https://github.com/Miezekatze64/swl [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Miezekatze64/swl" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMiezekatze64%2Fswl", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMiezekatze64%2Fswl'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b1a12ef2563a8b6ee20695756cf317bbc259d085 [INFO] checking Miezekatze64/swl/b1a12ef2563a8b6ee20695756cf317bbc259d085 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMiezekatze64%2Fswl" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Miezekatze64/swl 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 git repo https://github.com/Miezekatze64/swl [INFO] finished tweaking git repo https://github.com/Miezekatze64/swl [INFO] tweaked toml for git repo https://github.com/Miezekatze64/swl written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/Miezekatze64/swl 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-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 608d1199584086ea0fb63abb960df83754550ba44e61ac0ae431b9d1de603b0a [INFO] running `Command { std: "docker" "start" "-a" "608d1199584086ea0fb63abb960df83754550ba44e61ac0ae431b9d1de603b0a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "608d1199584086ea0fb63abb960df83754550ba44e61ac0ae431b9d1de603b0a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "608d1199584086ea0fb63abb960df83754550ba44e61ac0ae431b9d1de603b0a", kill_on_drop: false }` [INFO] [stdout] 608d1199584086ea0fb63abb960df83754550ba44e61ac0ae431b9d1de603b0a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 432957b10f75f8a6c2a2c1fefca86b4e7fc7cbb67e69af597bdbb7e3f1ad9ff9 [INFO] running `Command { std: "docker" "start" "-a" "432957b10f75f8a6c2a2c1fefca86b4e7fc7cbb67e69af597bdbb7e3f1ad9ff9", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling libc v0.2.132 [INFO] [stderr] Checking is_ci v1.1.1 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking supports-color v1.3.0 [INFO] [stderr] Checking swl v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `swl` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/codegen_x86_64.rs [INFO] [stderr] * src/intermediate.rs [INFO] [stderr] * src/interpreter.rs [INFO] [stderr] * src/lexer.rs [INFO] [stderr] * src/parser.rs [INFO] [stderr] * src/preprocessor.rs [INFO] [stderr] * src/util.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/codegen_x86_64.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | ($a:expr_2021, $b: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/codegen_x86_64.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | ($a:expr_2021, $b: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/codegen_x86_64.rs:13:6 [INFO] [stderr] | [INFO] [stderr] 13 | ($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/intermediate.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | ($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/interpreter.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($a: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/interpreter.rs:73:6 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:22 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:42 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:59 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:6 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:47 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:64 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/lexer.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($a:expr_2021, $verbose: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/lexer.rs:63:20 [INFO] [stderr] | [INFO] [stderr] 63 | ($a:expr_2021, $verbose:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:404:6 [INFO] [stderr] | [INFO] [stderr] 404 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:416:6 [INFO] [stderr] | [INFO] [stderr] 416 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:428:6 [INFO] [stderr] | [INFO] [stderr] 428 | ($a:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:440:6 [INFO] [stderr] | [INFO] [stderr] 440 | ($a:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:453:6 [INFO] [stderr] | [INFO] [stderr] 453 | ($a:expr_2021, $errors:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:453:20 [INFO] [stderr] | [INFO] [stderr] 453 | ($a:expr_2021, $errors: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/preprocessor.rs:23:6 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:37 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:59 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:19:6 [INFO] [stderr] | [INFO] [stderr] 19 | ($lexer:expr_2021, $pos:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | ($lexer:expr_2021, $pos:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:6 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:40 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:59 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:75 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len: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] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/main.rs:299:31 [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:53:6 [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap... [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | let (mut res, _, mut exts) = gen(i.1, offsets, globals, aliases.clone(), loop_idx, count, false); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 53 | ($lexer:expr_2021, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:511:29 [INFO] [stdout] | [INFO] [stdout] 511 | ret.append(&mut gen(block.1, offsets, globals, aliases.clone(), loop_idx, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:514:33 [INFO] [stdout] | [INFO] [stdout] 514 | ret.append(&mut gen(a.1, offsets, globals, aliases, loop_idx, index * 5, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:522:29 [INFO] [stdout] | [INFO] [stdout] 522 | ret.append(&mut gen(block.1, offsets, globals, aliases, index, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:561:29 [INFO] [stdout] | [INFO] [stdout] 561 | ret.append(&mut gen(block.1, &mut offsets, globals, aliases, 0, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:578:42 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut res, _, mut exts) = gen(ast.1, offsets, globals, aliases, 0, index, is_top_level); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/codegen_x86_64.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b: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] 7 | ($a:expr_2021, $b:expr) => { [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/codegen_x86_64.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/codegen_x86_64.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | ($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] 13 | ($val:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:53:24 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | ($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] 4 | ($val: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/interpreter.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | ($a: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 | ($a:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 53 | ($lexer:expr_2021, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:73:11 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr_2021, $globals:expr, $heap:expr, $vars:expr) => { [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/interpreter.rs:73:26 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr_2021, $heap:expr, $vars:expr) => { [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/interpreter.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr, $heap:expr_2021, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:73:50 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr, $heap:expr, $vars:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:100:16 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr_2021, $globals:expr, $heap:expr, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:100:31 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr_2021, $heap:expr, $vars:expr) => { [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/interpreter.rs:100:43 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr, $heap:expr_2021, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: aborting due to 34 previous errors [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:100:55 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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/lexer.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | ($a:expr, $verbose: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] 63 | ($a:expr_2021, $verbose:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lexer.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | ($a:expr, $verbose: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] 63 | ($a:expr, $verbose:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Original diagnostics will follow. [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:404:13 [INFO] [stdout] | [INFO] [stdout] 404 | ($lexer:expr, $errors:ident) => { [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] 404 | ($lexer:expr_2021, $errors:ident) => { [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/parser.rs:416:13 [INFO] [stdout] | [INFO] [stdout] 416 | ($lexer:expr, $errors:ident) => { [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] 416 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | ($a:expr, $errors:ident) => { [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] 428 | ($a:expr_2021, $errors:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | ($a:expr, $errors:ident) => { [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] 440 | ($a:expr_2021, $errors:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:453:9 [INFO] [stdout] | [INFO] [stdout] 453 | ($a:expr, $errors: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] 453 | ($a:expr_2021, $errors: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/parser.rs:453:23 [INFO] [stdout] | [INFO] [stdout] 453 | ($a:expr, $errors: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] 453 | ($a:expr, $errors: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/preprocessor.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr_2021, $i:expr, $dir_start:expr, $filename: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/preprocessor.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr_2021, $dir_start:expr, $filename: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/preprocessor.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:54 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr, $dir_start:expr, $filename:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | ($lexer:expr, $pos: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] 19 | ($lexer:expr_2021, $pos:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | ($lexer:expr, $pos: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] 19 | ($lexer:expr, $pos:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr_2021, $pos:expr, $offset:expr, $msg:expr, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:24 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr_2021, $offset:expr, $msg:expr, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:38 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr_2021, $msg:expr, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:49 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr_2021, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:60 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | ($lexer:expr, $pos:expr, $msg_fmt:literal) => { [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 | ($lexer:expr_2021, $pos:expr, $msg_fmt:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:53:24 [INFO] [stdout] | [INFO] [stdout] 53 | ($lexer:expr, $pos:expr, $msg_fmt:literal) => { [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 | ($lexer:expr, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/typecheck.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for mut a in arr { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:238:8 [INFO] [stdout] | [INFO] [stdout] 238 | if let Ok(ref mut ast) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 238 ~ match a { Ok(ref mut ast) => { [INFO] [stdout] 239 | if verbose > 1 { [INFO] [stdout] ... [INFO] [stdout] 284 | }; [INFO] [stdout] 285 ~ } _ => { [INFO] [stdout] 286 | checked = false; [INFO] [stdout] 287 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:290:12 [INFO] [stdout] | [INFO] [stdout] 290 | if let Ok(mut ast) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:426:9 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 290 ~ match a { Ok(mut ast) => { [INFO] [stdout] 291 | if verbose > 0 { [INFO] [stdout] ... [INFO] [stdout] 425 | } [INFO] [stdout] 426 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:206:16 [INFO] [stdout] | [INFO] [stdout] 206 | if let Some(Type::Struct(_, fields)) = struct_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/intermediate.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 206 ~ match struct_type { Some(Type::Struct(_, fields)) => { [INFO] [stdout] 207 | // convert hashmap to vector [INFO] [stdout] ... [INFO] [stdout] 213 | } [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | unreachable!("should always be a struct (error in type-checking): TYPE = {struct_type:?}") [INFO] [stdout] 216 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:284:35 [INFO] [stdout] | [INFO] [stdout] 284 | } else if let Type::Struct(_, fields) = tp.dealias(&aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/intermediate.rs:291:25 [INFO] [stdout] | [INFO] [stdout] 291 | } 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] 284 ~ } else { match tp.dealias(&aliases) { Type::Struct(_, fields) => { [INFO] [stdout] 285 | let mut offset = 0; [INFO] [stdout] ... [INFO] [stdout] 290 | } [INFO] [stdout] 291 ~ } _ => { [INFO] [stdout] 292 | let mut sz = *len; [INFO] [stdout] ... [INFO] [stdout] 299 | ret.push(Inst::GlobalSet(index/8, name.clone(), sz, index)); [INFO] [stdout] 300 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:344:16 [INFO] [stdout] | [INFO] [stdout] 344 | if let Type::Array(tp) = lexpr.2.as_ref().unwrap().dealias(&aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/intermediate.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | } 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] 344 ~ match lexpr.2.as_ref().unwrap().dealias(&aliases) { Type::Array(tp) => { [INFO] [stdout] 345 | ret.push(Inst::Val(index+1, Type::Primitive(PrimitiveType::Int), tp.size(&aliases).to_string())); [INFO] [stdout] ... [INFO] [stdout] 348 | ret.push(Inst::ArraySet(0, index, index+1, expr_vec)); [INFO] [stdout] 349 ~ } _ => { [INFO] [stdout] 350 | unreachable!() [INFO] [stdout] 351 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:529:16 [INFO] [stdout] | [INFO] [stdout] 529 | if let Some(Type::Struct(_, fields)) = struct_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/intermediate.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | } 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] 529 ~ match struct_type { Some(Type::Struct(_, fields)) => { [INFO] [stdout] 530 | let map_result = &fields.iter().find(|(x, _)| x == &name).unwrap().1; [INFO] [stdout] ... [INFO] [stdout] 540 | ret.push(Inst::SetField(0, 1, off, map_result.0.size(&aliases))); [INFO] [stdout] 541 ~ } _ => { [INFO] [stdout] 542 | unreachable!() [INFO] [stdout] 543 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:555:16 [INFO] [stdout] | [INFO] [stdout] 555 | if let Some(val) = member_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/intermediate.rs:557:13 [INFO] [stdout] | [INFO] [stdout] 557 | } 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] 555 ~ match member_type { Some(val) => { [INFO] [stdout] 556 | ret.push(Inst::Func(val.dealias(&aliases).to_label() + &name, offsets.clone())); [INFO] [stdout] 557 ~ } _ => { [INFO] [stdout] 558 | ret.push(Inst::Func(name, offsets.clone())); [INFO] [stdout] 559 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | if let ExpressionR::Val(ta, va) = &ea.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 10 ~ match &ea.1 { ExpressionR::Val(ta, va) => { [INFO] [stdout] 11 | if let ExpressionR::Val(tb, vb) = &eb.1 { [INFO] [stdout] ... [INFO] [stdout] 63 | } [INFO] [stdout] 64 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | if let ExpressionR::Val(tb, vb) = &eb.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match &eb.1 { ExpressionR::Val(tb, vb) => { [INFO] [stdout] 12 | if let crate::util::Op::Binary(op) = op_ { [INFO] [stdout] ... [INFO] [stdout] 62 | } [INFO] [stdout] 63 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:114:20 [INFO] [stdout] | [INFO] [stdout] 114 | if let ExpressionR::Val(tp, val) = &expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 114 ~ match &expr.1 { ExpressionR::Val(tp, val) => { [INFO] [stdout] 115 | const_vars.insert(v.to_owned(), (tp.to_owned(), val.to_owned())); [INFO] [stdout] 116 ~ } _ => { [INFO] [stdout] 117 | const_vars.remove(v); [INFO] [stdout] 118 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:124:20 [INFO] [stdout] | [INFO] [stdout] 124 | if let ExpressionR::Val(tp, val) = &expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 124 ~ match &expr.1 { ExpressionR::Val(tp, val) => { [INFO] [stdout] 125 | match op { [INFO] [stdout] ... [INFO] [stdout] 147 | } [INFO] [stdout] 148 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | if let ASTNodeR::Block(vec) = &mut snd.as_mut().unwrap().1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 162 ~ match &mut snd.as_mut().unwrap().1 { ASTNodeR::Block(vec) => { [INFO] [stdout] 163 | optimize_block(vec, aliases, const_vars); [INFO] [stdout] 164 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:587:24 [INFO] [stdout] | [INFO] [stdout] 587 | if let Expression(pos,ExpressionR::T(_, _, right, _), _) = [INFO] [stdout] | ________________________^ [INFO] [stdout] 588 | | &expr { [INFO] [stdout] | |______________________---^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:593:17 [INFO] [stdout] | [INFO] [stdout] 593 | } 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] 587 ~ match &expr { Expression(pos,ExpressionR::T(_, _, right, _), _) => { [INFO] [stdout] 588 | Expression(*pos, ExpressionR::T(right.clone(), [INFO] [stdout] ... [INFO] [stdout] 591 | None) [INFO] [stdout] 592 ~ } _ => { [INFO] [stdout] 593 | unreachable!(); [INFO] [stdout] 594 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1102:28 [INFO] [stdout] | [INFO] [stdout] 1102 | if let Some(a) = inc_node { [INFO] [stdout] | ^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1104:25 [INFO] [stdout] | [INFO] [stdout] 1104 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1102 ~ match inc_node { Some(a) => { [INFO] [stdout] 1103 | vec.push(a); [INFO] [stdout] 1104 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1168:67 [INFO] [stdout] | [INFO] [stdout] 1168 | let args = args_.into_iter().map(|(x, n)| (if let Type::Var(ref t) = x { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1174:21 [INFO] [stdout] | [INFO] [stdout] 1174 | } 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] 1168 ~ let args = args_.into_iter().map(|(x, n)| (match x { Type::Var(ref t) => { [INFO] [stdout] 1169 | if bounds.contains_key(t) { [INFO] [stdout] ... [INFO] [stdout] 1173 | } [INFO] [stdout] 1174 ~ } _ => { [INFO] [stdout] 1175 | x [INFO] [stdout] 1176 ~ }}, n)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1178:39 [INFO] [stdout] | [INFO] [stdout] 1178 | let ret_type = if let Type::Var(ref t) = ret_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/parser.rs:1184:21 [INFO] [stdout] | [INFO] [stdout] 1184 | } 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] 1178 ~ let ret_type = match ret_type_ { Type::Var(ref t) => { [INFO] [stdout] 1179 | if bounds.contains_key(t) { [INFO] [stdout] ... [INFO] [stdout] 1183 | } [INFO] [stdout] 1184 ~ } _ => { [INFO] [stdout] 1185 | ret_type_ [INFO] [stdout] 1186 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1738:28 [INFO] [stdout] | [INFO] [stdout] 1738 | if let Expression(_, ExpressionR::Var(ref name), _) = **var { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1742:25 [INFO] [stdout] | [INFO] [stdout] 1742 | } 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] 1738 ~ match **var { Expression(_, ExpressionR::Var(ref name), _) => { [INFO] [stdout] 1739 | let expr = Expression(ident_expr.0, ExpressionR::MemberFunction(Type::Invalid, Box::new(res.clone()), name.clone(), args.clone()), None); [INFO] [stdout] 1740 | res = expr; [INFO] [stdout] 1741 | continue; [INFO] [stdout] 1742 ~ } _ => { [INFO] [stdout] 1743 | unreachable!("memberfunction is not a name..."); [INFO] [stdout] 1744 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:77:39 [INFO] [stdout] | [INFO] [stdout] 77 | let arg0 = if let Type::Bounded(n, _) = arg.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/typecheck.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | } 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] 77 ~ let arg0 = match arg.0 { Type::Bounded(n, _) => { [INFO] [stdout] 78 | Type::Var(n) [INFO] [stdout] 79 ~ } _ => { [INFO] [stdout] 80 | arg.0 [INFO] [stdout] 81 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | if let Type::Function(ref args, ref ret) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 101 | } 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] 98 ~ match tp { Type::Function(ref args, ref ret) => { [INFO] [stdout] 99 | func_args = args; [INFO] [stdout] 100 | ret_type = *ret.clone(); [INFO] [stdout] 101 ~ } _ => { [INFO] [stdout] 102 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "`{expr}` is not a function"))); [INFO] [stdout] 103 | continue; [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:189:28 [INFO] [stdout] | [INFO] [stdout] 189 | if let ExpressionR::Var(ref name) = expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | } 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] 189 ~ match expr.1 { ExpressionR::Var(ref name) => { [INFO] [stdout] 190 | func_name = name.clone(); [INFO] [stdout] 191 | new_func_name.push_str(name); [INFO] [stdout] 192 ~ } _ => { [INFO] [stdout] 193 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "expression `{expr}`, should have a fixed, non-generic type."))); [INFO] [stdout] ... [INFO] [stdout] 196 | return; [INFO] [stdout] 197 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:266:28 [INFO] [stdout] | [INFO] [stdout] 266 | if let Type::Pointer(stu) = struct_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/typecheck.rs:268:25 [INFO] [stdout] | [INFO] [stdout] 268 | } 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] 266 ~ match struct_type_ { Type::Pointer(stu) => { [INFO] [stdout] 267 | *stu [INFO] [stdout] 268 ~ } _ => { [INFO] [stdout] 269 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "type `{struct_type_}` is not a pointer, but pointer type was expected"))); [INFO] [stdout] 270 | continue; [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:276:24 [INFO] [stdout] | [INFO] [stdout] 276 | if let Type::Struct(ref struct_name, ref map) = struct_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/typecheck.rs:288:21 [INFO] [stdout] | [INFO] [stdout] 288 | } 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] 276 ~ match struct_type { Type::Struct(ref struct_name, ref map) => { [INFO] [stdout] 277 | if map.iter().any(|(n, _)| n == name) { [INFO] [stdout] ... [INFO] [stdout] 287 | } [INFO] [stdout] 288 ~ } _ => { [INFO] [stdout] 289 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "type `{struct_type}` is not a struct, but struct type was expected"))); [INFO] [stdout] 290 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:328:24 [INFO] [stdout] | [INFO] [stdout] 328 | if let Type::Array(_) = type_l {} else if let Type::Custom(ref inner) = type_l { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------ ------ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:328:53 [INFO] [stdout] | [INFO] [stdout] 328 | if let Type::Array(_) = type_l {} else if let Type::Custom(ref inner) = type_l { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | } 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] 328 ~ match type_l { Type::Array(_) => {} _ => { match type_l { Type::Custom(ref inner) => { [INFO] [stdout] 329 | if aliases.contains_key(inner) { [INFO] [stdout] ... [INFO] [stdout] 335 | } [INFO] [stdout] 336 ~ } _ => { [INFO] [stdout] 337 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "{type_l} used in array indexing is not an array type"))); [INFO] [stdout] 338 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:441:32 [INFO] [stdout] | [INFO] [stdout] 441 | ... if let Type::Custom(a) = arg_.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:445:29 [INFO] [stdout] | [INFO] [stdout] 445 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 441 ~ match arg_.dealias(aliases) { Type::Custom(a) => { [INFO] [stdout] 442 | if a != *arg { [INFO] [stdout] 443 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "undefined reference to type `{a}`"))); [INFO] [stdout] 444 | } [INFO] [stdout] 445 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:447:28 [INFO] [stdout] | [INFO] [stdout] 447 | if let Type::Custom(a) = ret.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:451:25 [INFO] [stdout] | [INFO] [stdout] 451 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 447 ~ match ret.dealias(aliases) { Type::Custom(a) => { [INFO] [stdout] 448 | if a != *arg { [INFO] [stdout] 449 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "undefined reference to type `{a}`"))); [INFO] [stdout] 450 | } [INFO] [stdout] 451 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:505:20 [INFO] [stdout] | [INFO] [stdout] 505 | if let ASTNodeR::FunctionDecl(_, _, _, rt, block) = &a.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 505 ~ match &a.1 { ASTNodeR::FunctionDecl(_, _, _, rt, block) => { [INFO] [stdout] 506 | if *rt == Type::Primitive(PrimitiveType::Void) { [INFO] [stdout] ... [INFO] [stdout] 512 | } [INFO] [stdout] 513 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | if let Type::Array(ref innera) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:550:13 [INFO] [stdout] | [INFO] [stdout] 550 | } 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] 548 ~ match typa { Type::Array(ref innera) => { [INFO] [stdout] 549 | infer_types(innera.clone().dealias(aliases), inner, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 550 ~ } _ => { [INFO] [stdout] 551 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not an array, but an array was expected"))); [INFO] [stdout] 552 | return errors; [INFO] [stdout] 553 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if let Type::Pointer(ref innera) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:563:13 [INFO] [stdout] | [INFO] [stdout] 563 | } 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] 561 ~ match typa { Type::Pointer(ref innera) => { [INFO] [stdout] 562 | infer_types(innera.clone().dealias(aliases), inner, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 563 ~ } _ => { [INFO] [stdout] 564 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a pointer, but a pointer was expected"))); [INFO] [stdout] 565 | return errors; [INFO] [stdout] 566 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:569:16 [INFO] [stdout] | [INFO] [stdout] 569 | if let Type::Function(ref argsa, ref reta) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:579:13 [INFO] [stdout] | [INFO] [stdout] 579 | } 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] 569 ~ match typa { Type::Function(ref argsa, ref reta) => { [INFO] [stdout] 570 | for (i, arg) in args.iter_mut().enumerate() { [INFO] [stdout] ... [INFO] [stdout] 578 | infer_types(reta.clone().dealias(aliases), ret, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 579 ~ } _ => { [INFO] [stdout] 580 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a function, but a function was expected"))); [INFO] [stdout] 581 | return errors; [INFO] [stdout] 582 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:586:16 [INFO] [stdout] | [INFO] [stdout] 586 | if let Type::Struct(_, ref argsa) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:595:13 [INFO] [stdout] | [INFO] [stdout] 595 | } 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] 586 ~ match typa { Type::Struct(_, ref argsa) => { [INFO] [stdout] 587 | for (i, (_, (arg, _))) in args.iter_mut().enumerate() { [INFO] [stdout] ... [INFO] [stdout] 594 | } [INFO] [stdout] 595 ~ } _ => { [INFO] [stdout] 596 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a struct, but a struct was expected"))); [INFO] [stdout] 597 | return errors; [INFO] [stdout] 598 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:653:20 [INFO] [stdout] | [INFO] [stdout] 653 | if let Type::Pointer(inner) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:655:17 [INFO] [stdout] | [INFO] [stdout] 655 | } 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] 653 ~ match tp { Type::Pointer(inner) => { [INFO] [stdout] 654 | *inner [INFO] [stdout] 655 ~ } _ => { [INFO] [stdout] 656 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{tp}` cannot be dereferenced"))); [INFO] [stdout] 657 | Type::Invalid [INFO] [stdout] 658 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:671:24 [INFO] [stdout] | [INFO] [stdout] 671 | if let Type::Pointer(stu) = struct_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/typecheck.rs:673:21 [INFO] [stdout] | [INFO] [stdout] 673 | } 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] 671 ~ match struct_type_ { Type::Pointer(stu) => { [INFO] [stdout] 672 | *stu [INFO] [stdout] 673 ~ } _ => { [INFO] [stdout] 674 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{struct_type_}` is not a pointer, but pointer type was expected"))); [INFO] [stdout] 675 | return Type::Invalid; [INFO] [stdout] 676 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:681:20 [INFO] [stdout] | [INFO] [stdout] 681 | if let Type::Struct(ref struct_name, ref map) = struct_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/typecheck.rs:689:17 [INFO] [stdout] | [INFO] [stdout] 689 | } 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] 681 ~ match struct_type { Type::Struct(ref struct_name, ref map) => { [INFO] [stdout] 682 | if map.iter().any(|(x, _)| x == name) { [INFO] [stdout] ... [INFO] [stdout] 688 | } [INFO] [stdout] 689 ~ } _ => { [INFO] [stdout] 690 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{struct_type}` is not a struct."))); [INFO] [stdout] 691 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:723:20 [INFO] [stdout] | [INFO] [stdout] 723 | if let Type::Function(ref args, ref ret) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 726 | } 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] 723 ~ match tp { Type::Function(ref args, ref ret) => { [INFO] [stdout] 724 | ret_type = *ret.clone(); [INFO] [stdout] 725 | func_args = args; [INFO] [stdout] 726 ~ } _ => { [INFO] [stdout] 727 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{lexpr}` is not a function"))); [INFO] [stdout] 728 | return Type::Invalid; [INFO] [stdout] 729 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:904:24 [INFO] [stdout] | [INFO] [stdout] 904 | if let ExpressionR::Var(ref name) = lexpr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:907:21 [INFO] [stdout] | [INFO] [stdout] 907 | } 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] 904 ~ match lexpr.1 { ExpressionR::Var(ref name) => { [INFO] [stdout] 905 | func_name = name.clone(); [INFO] [stdout] 906 | new_func_name.push_str(name); [INFO] [stdout] 907 ~ } _ => { [INFO] [stdout] 908 | errors.push((ErrorLevel::Err, error!(lexer, pos, "expression `{lexpr}`, should have a fixed, non-generic type."))); [INFO] [stdout] ... [INFO] [stdout] 911 | return ret; [INFO] [stdout] 912 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:938:32 [INFO] [stdout] | [INFO] [stdout] 938 | ... if let Type::Function(..) = fields.iter().find(|(x, _)| x == name).unwrap().1.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/typecheck.rs:940:29 [INFO] [stdout] | [INFO] [stdout] 940 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 938 ~ match fields.iter().find(|(x, _)| x == name).unwrap().1.0 { Type::Function(..) => { [INFO] [stdout] 939 | errors.push((ErrorLevel::Note, error!(lexer, pos, "if you wanted to call the function stored in a struct, write it like this:\n\t({lexpr}.{name})(args..)"))); [INFO] [stdout] 940 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1002:39 [INFO] [stdout] | [INFO] [stdout] 1002 | let inner_tp = if let Type::Array(inner) = ident_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] 1003 | *inner [INFO] [stdout] 1004 | } else if let Type::Custom(ref inner) = ident_type { [INFO] [stdout] | ---------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1004:21 [INFO] [stdout] | [INFO] [stdout] 1004 | } else if let Type::Custom(ref inner) = ident_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1016:21 [INFO] [stdout] | [INFO] [stdout] 1016 | } 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] 1002 ~ let inner_tp = match ident_type { Type::Array(inner) => { [INFO] [stdout] 1003 | *inner [INFO] [stdout] 1004 ~ } _ => { match ident_type { Type::Custom(ref inner) => { [INFO] [stdout] 1005 | if aliases.contains_key(inner) { [INFO] [stdout] ... [INFO] [stdout] 1015 | } [INFO] [stdout] 1016 ~ } _ => { [INFO] [stdout] 1017 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{ident_type}` is not an array type"))); [INFO] [stdout] 1018 | Type::Invalid [INFO] [stdout] 1019 ~ }}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1006:32 [INFO] [stdout] | [INFO] [stdout] 1006 | ... if let Type::Array(ref inner2) = aliases[inner] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1008:29 [INFO] [stdout] | [INFO] [stdout] 1008 | ... } 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] 1006 ~ match aliases[inner] { Type::Array(ref inner2) => { [INFO] [stdout] 1007 | *inner2.clone() [INFO] [stdout] 1008 ~ } _ => { [INFO] [stdout] 1009 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{ident_type}` is not an array type"))); [INFO] [stdout] 1010 | Type::Invalid [INFO] [stdout] 1011 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1020:24 [INFO] [stdout] | [INFO] [stdout] 1020 | if let Type::Struct(_, ref map) = inner_tp.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1025:21 [INFO] [stdout] | [INFO] [stdout] 1025 | } 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] 1020 ~ match inner_tp.dealias(aliases) { Type::Struct(_, ref map) => { [INFO] [stdout] 1021 | let mut vector_: Vec = map.iter().map(|(x, _)| x.clone()).collect(); [INFO] [stdout] ... [INFO] [stdout] 1024 | expr.1 = ExpressionR::Index(ident.clone(), a.clone(), vec); [INFO] [stdout] 1025 ~ } _ => { [INFO] [stdout] 1026 | expr.1 = ExpressionR::Index(ident.clone(), a.clone(), vec![inner_tp.size(aliases)]); [INFO] [stdout] 1027 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1321:32 [INFO] [stdout] | [INFO] [stdout] 1321 | ... if let Some(inner) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1323:29 [INFO] [stdout] | [INFO] [stdout] 1323 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1321 ~ match tp { Some(inner) => { [INFO] [stdout] 1322 | current_vars.insert(name.clone(), inner); [INFO] [stdout] 1323 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1337:41 [INFO] [stdout] | [INFO] [stdout] 1337 | ... let tp = if let Type::Custom(b) = a.dealias(&type_aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1339:29 [INFO] [stdout] | [INFO] [stdout] 1339 | ... } 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] 1337 ~ let tp = match a.dealias(&type_aliases) { Type::Custom(b) => { [INFO] [stdout] 1338 | Type::Bounded(b.clone(), b.clone()) [INFO] [stdout] 1339 ~ } _ => { [INFO] [stdout] 1340 | a.clone() [INFO] [stdout] 1341 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1345:37 [INFO] [stdout] | [INFO] [stdout] 1345 | let tp = if let Type::Custom(b) = ret.dealias(&type_aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1347:25 [INFO] [stdout] | [INFO] [stdout] 1347 | } 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] 1345 ~ let tp = match ret.dealias(&type_aliases) { Type::Custom(b) => { [INFO] [stdout] 1346 | Type::Bounded(b.clone(), b.clone()) [INFO] [stdout] 1347 ~ } _ => { [INFO] [stdout] 1348 | ret.clone() [INFO] [stdout] 1349 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1409:20 [INFO] [stdout] | [INFO] [stdout] 1409 | if let ASTNodeR::Block(nvec) = &mut ast.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1413:17 [INFO] [stdout] | [INFO] [stdout] 1413 | } 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] 1409 ~ match &mut ast.1 { ASTNodeR::Block(nvec) => { [INFO] [stdout] 1410 | errors.append( [INFO] [stdout] 1411 | &mut check_unused(&mut Box::new(nvec), lexer_, verbose) [INFO] [stdout] 1412 | ); [INFO] [stdout] 1413 ~ } _ => { [INFO] [stdout] 1414 | unreachable!() [INFO] [stdout] 1415 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1470:20 [INFO] [stdout] | [INFO] [stdout] 1470 | if let ASTNodeR::Block(nvec) = &mut ast.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1476:17 [INFO] [stdout] | [INFO] [stdout] 1476 | } 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] 1470 ~ match &mut ast.1 { ASTNodeR::Block(nvec) => { [INFO] [stdout] 1471 | if remove_original(&mut Box::new(nvec), func, pos, block, args, ret) { [INFO] [stdout] ... [INFO] [stdout] 1475 | } [INFO] [stdout] 1476 ~ } _ => { [INFO] [stdout] 1477 | unreachable!() [INFO] [stdout] 1478 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1519:16 [INFO] [stdout] | [INFO] [stdout] 1519 | if let ASTNode(_, ASTNodeR::Block(here)) = node { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1521:13 [INFO] [stdout] | [INFO] [stdout] 1521 | } 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] 1519 ~ match node { ASTNode(_, ASTNodeR::Block(here)) => { [INFO] [stdout] 1520 | new_func = here[0].clone(); [INFO] [stdout] 1521 ~ } _ => { [INFO] [stdout] 1522 | unreachable!() [INFO] [stdout] 1523 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:254:19 [INFO] [stdout] | [INFO] [stdout] 254 | } else if let Type::Array(aa) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 260 | } else if let Type::Pointer(aa) = a { [INFO] [stdout] | - this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 266 | } else if let Type::Struct(a_name, a_fields) = a { [INFO] [stdout] | - this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | } else if let Type::Pointer(aa) = a { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | } else if let Type::Struct(a_name, a_fields) = a { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:289:9 [INFO] [stdout] | [INFO] [stdout] 289 | } 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] 254 ~ } else { match a { Type::Array(aa) => { [INFO] [stdout] 255 | if let Type::Array(bb) = b { [INFO] [stdout] ... [INFO] [stdout] 259 | } [INFO] [stdout] 260 ~ } _ => { match a { Type::Pointer(aa) => { [INFO] [stdout] 261 | if let Type::Pointer(bb) = b { [INFO] [stdout] ... [INFO] [stdout] 265 | } [INFO] [stdout] 266 ~ } _ => { match a { Type::Struct(a_name, a_fields) => { [INFO] [stdout] 267 | if let Type::Struct(b_name, b_fields) = b { [INFO] [stdout] ... [INFO] [stdout] 288 | } [INFO] [stdout] 289 ~ } _ => { [INFO] [stdout] 290 | false [INFO] [stdout] 291 ~ }}}}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:255:16 [INFO] [stdout] | [INFO] [stdout] 255 | if let Type::Array(bb) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 255 ~ match b { Type::Array(bb) => { [INFO] [stdout] 256 | aa.is_compatible(&bb, aliases) [INFO] [stdout] 257 ~ } _ => { [INFO] [stdout] 258 | false [INFO] [stdout] 259 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:261:16 [INFO] [stdout] | [INFO] [stdout] 261 | if let Type::Pointer(bb) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | } 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] 261 ~ match b { Type::Pointer(bb) => { [INFO] [stdout] 262 | aa.is_compatible(&bb, aliases) [INFO] [stdout] 263 ~ } _ => { [INFO] [stdout] 264 | false [INFO] [stdout] 265 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if let Type::Struct(b_name, b_fields) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ match b { Type::Struct(b_name, b_fields) => { [INFO] [stdout] 268 | if a_name == b_name { [INFO] [stdout] ... [INFO] [stdout] 285 | } [INFO] [stdout] 286 ~ } _ => { [INFO] [stdout] 287 | false [INFO] [stdout] 288 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 92 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `swl` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/codegen_x86_64.rs [INFO] [stderr] * src/intermediate.rs [INFO] [stderr] * src/interpreter.rs [INFO] [stderr] * src/lexer.rs [INFO] [stderr] * src/parser.rs [INFO] [stderr] * src/preprocessor.rs [INFO] [stderr] * src/util.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/codegen_x86_64.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | ($a:expr_2021, $b: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/codegen_x86_64.rs:7:20 [INFO] [stderr] | [INFO] [stderr] 7 | ($a:expr_2021, $b: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/codegen_x86_64.rs:13:6 [INFO] [stderr] | [INFO] [stderr] 13 | ($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/intermediate.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | ($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/interpreter.rs:67:6 [INFO] [stderr] | [INFO] [stderr] 67 | ($a: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/interpreter.rs:73:6 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:22 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:42 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:73:59 [INFO] [stderr] | [INFO] [stderr] 73 | ($val:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:6 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:47 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/interpreter.rs:100:64 [INFO] [stderr] | [INFO] [stderr] 100 | ($init_ptr:expr_2021, $globals:expr_2021, $heap:expr_2021, $vars: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/lexer.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($a:expr_2021, $verbose: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/lexer.rs:63:20 [INFO] [stderr] | [INFO] [stderr] 63 | ($a:expr_2021, $verbose:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:404:6 [INFO] [stderr] | [INFO] [stderr] 404 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:416:6 [INFO] [stderr] | [INFO] [stderr] 416 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:428:6 [INFO] [stderr] | [INFO] [stderr] 428 | ($a:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:440:6 [INFO] [stderr] | [INFO] [stderr] 440 | ($a:expr_2021, $errors:ident) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:453:6 [INFO] [stderr] | [INFO] [stderr] 453 | ($a:expr_2021, $errors:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/parser.rs:453:20 [INFO] [stderr] | [INFO] [stderr] 453 | ($a:expr_2021, $errors: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/preprocessor.rs:23:6 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:37 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename: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/preprocessor.rs:23:59 [INFO] [stderr] | [INFO] [stderr] 23 | ($file:expr_2021, $i:expr_2021, $dir_start:expr_2021, $filename:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:19:6 [INFO] [stderr] | [INFO] [stderr] 19 | ($lexer:expr_2021, $pos:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | ($lexer:expr_2021, $pos:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:6 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:24 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/util.rs:35:40 [INFO] [stderr] | [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len: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] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/main.rs:299:31 [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap... [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | let (mut res, _, mut exts) = gen(i.1, offsets, globals, aliases.clone(), loop_idx, count, false); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:511:29 [INFO] [stdout] | [INFO] [stdout] 511 | ret.append(&mut gen(block.1, offsets, globals, aliases.clone(), loop_idx, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:35:59 [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:514:33 [INFO] [stdout] | [INFO] [stdout] 514 | ret.append(&mut gen(a.1, offsets, globals, aliases, loop_idx, index * 5, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:522:29 [INFO] [stdout] | [INFO] [stdout] 522 | ret.append(&mut gen(block.1, offsets, globals, aliases, index, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:561:29 [INFO] [stdout] | [INFO] [stdout] 561 | ret.append(&mut gen(block.1, &mut offsets, globals, aliases, 0, index * 3, false).0); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:578:42 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut res, _, mut exts) = gen(ast.1, offsets, globals, aliases, 0, index, is_top_level); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/codegen_x86_64.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b: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] 7 | ($a:expr_2021, $b:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/codegen_x86_64.rs:7:18 [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | ($a:expr, $b:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/codegen_x86_64.rs:13:11 [INFO] [stdout] | [INFO] [stdout] 13 | ($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] 13 | ($val:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/intermediate.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | ($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] 4 | ($val: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/interpreter.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | ($a: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 | ($a:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:73:11 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr_2021, $globals:expr, $heap:expr, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:35:75 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:73:26 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr_2021, $heap:expr, $vars:expr) => { [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/interpreter.rs:73:38 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr, $heap:expr_2021, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 35 | ($lexer:expr_2021, $pos:expr_2021, $offset:expr_2021, $msg:expr_2021, $len:expr_2021) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:73:50 [INFO] [stdout] | [INFO] [stdout] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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] 73 | ($val:expr, $globals:expr, $heap:expr, $vars: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/interpreter.rs:100:16 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr_2021, $globals:expr, $heap:expr, $vars:expr) => { [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/interpreter.rs:100:31 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr_2021, $heap:expr, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:100:43 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr, $heap:expr_2021, $vars:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/interpreter.rs:100:55 [INFO] [stdout] | [INFO] [stdout] 100 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars: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 | ($init_ptr:expr, $globals:expr, $heap:expr, $vars:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lexer.rs:63:9 [INFO] [stdout] | [INFO] [stdout] 63 | ($a:expr, $verbose: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] 63 | ($a:expr_2021, $verbose:expr) => { [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/lexer.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | ($a:expr, $verbose: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] 63 | ($a:expr, $verbose:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:404:13 [INFO] [stdout] | [INFO] [stdout] 404 | ($lexer:expr, $errors:ident) => { [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] 404 | ($lexer:expr_2021, $errors:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:53:6 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:416:13 [INFO] [stdout] | [INFO] [stdout] 416 | ($lexer:expr, $errors:ident) => { [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] 416 | ($lexer:expr_2021, $errors:ident) => { [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/parser.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | ($a:expr, $errors:ident) => { [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] 428 | ($a:expr_2021, $errors:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 53 | ($lexer:expr_2021, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/parser.rs:440:9 [INFO] [stdout] | [INFO] [stdout] 440 | ($a:expr, $errors:ident) => { [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] 440 | ($a:expr_2021, $errors:ident) => { [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/parser.rs:453:9 [INFO] [stdout] | [INFO] [stdout] 453 | ($a:expr, $errors: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] 453 | ($a:expr_2021, $errors:expr) => { [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/parser.rs:453:23 [INFO] [stdout] | [INFO] [stdout] 453 | ($a:expr, $errors: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] 453 | ($a:expr, $errors:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/preprocessor.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr_2021, $i:expr, $dir_start:expr, $filename:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/preprocessor.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr_2021, $dir_start:expr, $filename:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/preprocessor.rs:23:38 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr, $dir_start:expr_2021, $filename:expr) => { [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/preprocessor.rs:23:54 [INFO] [stdout] | [INFO] [stdout] 23 | ($file:expr, $i:expr, $dir_start:expr, $filename: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 | ($file:expr, $i:expr, $dir_start:expr, $filename:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:19:13 [INFO] [stdout] | [INFO] [stdout] 19 | ($lexer:expr, $pos: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] 19 | ($lexer:expr_2021, $pos:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/util.rs:53:24 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | ($lexer:expr, $pos: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] 19 | ($lexer:expr, $pos: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/util.rs:35:13 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr_2021, $pos:expr, $offset:expr, $msg:expr, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 53 | ($lexer:expr_2021, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:24 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr_2021, $offset:expr, $msg:expr, $len:expr) => { [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/util.rs:35:38 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr_2021, $msg:expr, $len:expr) => { [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/util.rs:35:49 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr_2021, $len:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:35:60 [INFO] [stdout] | [INFO] [stdout] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len: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] 35 | ($lexer:expr, $pos:expr, $offset:expr, $msg:expr, $len:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [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 34 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/util.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | ($lexer:expr, $pos:expr, $msg_fmt:literal) => { [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 | ($lexer:expr_2021, $pos:expr, $msg_fmt:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/util.rs:53:24 [INFO] [stdout] | [INFO] [stdout] 53 | ($lexer:expr, $pos:expr, $msg_fmt:literal) => { [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 | ($lexer:expr, $pos:expr_2021, $msg_fmt:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/typecheck.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for mut a in arr { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:238:8 [INFO] [stdout] | [INFO] [stdout] 238 | if let Ok(ref mut ast) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:285:5 [INFO] [stdout] | [INFO] [stdout] 285 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 238 ~ match a { Ok(ref mut ast) => { [INFO] [stdout] 239 | if verbose > 1 { [INFO] [stdout] ... [INFO] [stdout] 284 | }; [INFO] [stdout] 285 ~ } _ => { [INFO] [stdout] 286 | checked = false; [INFO] [stdout] 287 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:290:12 [INFO] [stdout] | [INFO] [stdout] 290 | if let Ok(mut ast) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/main.rs:426:9 [INFO] [stdout] | [INFO] [stdout] 426 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 290 ~ match a { Ok(mut ast) => { [INFO] [stdout] 291 | if verbose > 0 { [INFO] [stdout] ... [INFO] [stdout] 425 | } [INFO] [stdout] 426 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:206:16 [INFO] [stdout] | [INFO] [stdout] 206 | if let Some(Type::Struct(_, fields)) = struct_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/intermediate.rs:214:13 [INFO] [stdout] | [INFO] [stdout] 214 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 206 ~ match struct_type { Some(Type::Struct(_, fields)) => { [INFO] [stdout] 207 | // convert hashmap to vector [INFO] [stdout] ... [INFO] [stdout] 213 | } [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | unreachable!("should always be a struct (error in type-checking): TYPE = {struct_type:?}") [INFO] [stdout] 216 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:284:35 [INFO] [stdout] | [INFO] [stdout] 284 | } else if let Type::Struct(_, fields) = tp.dealias(&aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/intermediate.rs:291:25 [INFO] [stdout] | [INFO] [stdout] 291 | } 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] 284 ~ } else { match tp.dealias(&aliases) { Type::Struct(_, fields) => { [INFO] [stdout] 285 | let mut offset = 0; [INFO] [stdout] ... [INFO] [stdout] 290 | } [INFO] [stdout] 291 ~ } _ => { [INFO] [stdout] 292 | let mut sz = *len; [INFO] [stdout] ... [INFO] [stdout] 299 | ret.push(Inst::GlobalSet(index/8, name.clone(), sz, index)); [INFO] [stdout] 300 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:344:16 [INFO] [stdout] | [INFO] [stdout] 344 | if let Type::Array(tp) = lexpr.2.as_ref().unwrap().dealias(&aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/intermediate.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | } 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] 344 ~ match lexpr.2.as_ref().unwrap().dealias(&aliases) { Type::Array(tp) => { [INFO] [stdout] 345 | ret.push(Inst::Val(index+1, Type::Primitive(PrimitiveType::Int), tp.size(&aliases).to_string())); [INFO] [stdout] ... [INFO] [stdout] 348 | ret.push(Inst::ArraySet(0, index, index+1, expr_vec)); [INFO] [stdout] 349 ~ } _ => { [INFO] [stdout] 350 | unreachable!() [INFO] [stdout] 351 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:529:16 [INFO] [stdout] | [INFO] [stdout] 529 | if let Some(Type::Struct(_, fields)) = struct_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/intermediate.rs:541:13 [INFO] [stdout] | [INFO] [stdout] 541 | } 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] 529 ~ match struct_type { Some(Type::Struct(_, fields)) => { [INFO] [stdout] 530 | let map_result = &fields.iter().find(|(x, _)| x == &name).unwrap().1; [INFO] [stdout] ... [INFO] [stdout] 540 | ret.push(Inst::SetField(0, 1, off, map_result.0.size(&aliases))); [INFO] [stdout] 541 ~ } _ => { [INFO] [stdout] 542 | unreachable!() [INFO] [stdout] 543 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/intermediate.rs:555:16 [INFO] [stdout] | [INFO] [stdout] 555 | if let Some(val) = member_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/intermediate.rs:557:13 [INFO] [stdout] | [INFO] [stdout] 557 | } 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] 555 ~ match member_type { Some(val) => { [INFO] [stdout] 556 | ret.push(Inst::Func(val.dealias(&aliases).to_label() + &name, offsets.clone())); [INFO] [stdout] 557 ~ } _ => { [INFO] [stdout] 558 | ret.push(Inst::Func(name, offsets.clone())); [INFO] [stdout] 559 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:10:16 [INFO] [stdout] | [INFO] [stdout] 10 | if let ExpressionR::Val(ta, va) = &ea.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 10 ~ match &ea.1 { ExpressionR::Val(ta, va) => { [INFO] [stdout] 11 | if let ExpressionR::Val(tb, vb) = &eb.1 { [INFO] [stdout] ... [INFO] [stdout] 63 | } [INFO] [stdout] 64 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:11:20 [INFO] [stdout] | [INFO] [stdout] 11 | if let ExpressionR::Val(tb, vb) = &eb.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match &eb.1 { ExpressionR::Val(tb, vb) => { [INFO] [stdout] 12 | if let crate::util::Op::Binary(op) = op_ { [INFO] [stdout] ... [INFO] [stdout] 62 | } [INFO] [stdout] 63 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:114:20 [INFO] [stdout] | [INFO] [stdout] 114 | if let ExpressionR::Val(tp, val) = &expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:116:17 [INFO] [stdout] | [INFO] [stdout] 116 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 114 ~ match &expr.1 { ExpressionR::Val(tp, val) => { [INFO] [stdout] 115 | const_vars.insert(v.to_owned(), (tp.to_owned(), val.to_owned())); [INFO] [stdout] 116 ~ } _ => { [INFO] [stdout] 117 | const_vars.remove(v); [INFO] [stdout] 118 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:124:20 [INFO] [stdout] | [INFO] [stdout] 124 | if let ExpressionR::Val(tp, val) = &expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:148:17 [INFO] [stdout] | [INFO] [stdout] 148 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 124 ~ match &expr.1 { ExpressionR::Val(tp, val) => { [INFO] [stdout] 125 | match op { [INFO] [stdout] ... [INFO] [stdout] 147 | } [INFO] [stdout] 148 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/optimizer.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | if let ASTNodeR::Block(vec) = &mut snd.as_mut().unwrap().1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/optimizer.rs:164:21 [INFO] [stdout] | [INFO] [stdout] 164 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 162 ~ match &mut snd.as_mut().unwrap().1 { ASTNodeR::Block(vec) => { [INFO] [stdout] 163 | optimize_block(vec, aliases, const_vars); [INFO] [stdout] 164 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:587:24 [INFO] [stdout] | [INFO] [stdout] 587 | if let Expression(pos,ExpressionR::T(_, _, right, _), _) = [INFO] [stdout] | ________________________^ [INFO] [stdout] 588 | | &expr { [INFO] [stdout] | |______________________---^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:593:17 [INFO] [stdout] | [INFO] [stdout] 593 | } 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] 587 ~ match &expr { Expression(pos,ExpressionR::T(_, _, right, _), _) => { [INFO] [stdout] 588 | Expression(*pos, ExpressionR::T(right.clone(), [INFO] [stdout] ... [INFO] [stdout] 591 | None) [INFO] [stdout] 592 ~ } _ => { [INFO] [stdout] 593 | unreachable!(); [INFO] [stdout] 594 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1102:28 [INFO] [stdout] | [INFO] [stdout] 1102 | if let Some(a) = inc_node { [INFO] [stdout] | ^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1104:25 [INFO] [stdout] | [INFO] [stdout] 1104 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1102 ~ match inc_node { Some(a) => { [INFO] [stdout] 1103 | vec.push(a); [INFO] [stdout] 1104 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1168:67 [INFO] [stdout] | [INFO] [stdout] 1168 | let args = args_.into_iter().map(|(x, n)| (if let Type::Var(ref t) = x { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1174:21 [INFO] [stdout] | [INFO] [stdout] 1174 | } 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] 1168 ~ let args = args_.into_iter().map(|(x, n)| (match x { Type::Var(ref t) => { [INFO] [stdout] 1169 | if bounds.contains_key(t) { [INFO] [stdout] ... [INFO] [stdout] 1173 | } [INFO] [stdout] 1174 ~ } _ => { [INFO] [stdout] 1175 | x [INFO] [stdout] 1176 ~ }}, n)).collect(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1178:39 [INFO] [stdout] | [INFO] [stdout] 1178 | let ret_type = if let Type::Var(ref t) = ret_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/parser.rs:1184:21 [INFO] [stdout] | [INFO] [stdout] 1184 | } 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] 1178 ~ let ret_type = match ret_type_ { Type::Var(ref t) => { [INFO] [stdout] 1179 | if bounds.contains_key(t) { [INFO] [stdout] ... [INFO] [stdout] 1183 | } [INFO] [stdout] 1184 ~ } _ => { [INFO] [stdout] 1185 | ret_type_ [INFO] [stdout] 1186 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1738:28 [INFO] [stdout] | [INFO] [stdout] 1738 | if let Expression(_, ExpressionR::Var(ref name), _) = **var { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:1742:25 [INFO] [stdout] | [INFO] [stdout] 1742 | } 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] 1738 ~ match **var { Expression(_, ExpressionR::Var(ref name), _) => { [INFO] [stdout] 1739 | let expr = Expression(ident_expr.0, ExpressionR::MemberFunction(Type::Invalid, Box::new(res.clone()), name.clone(), args.clone()), None); [INFO] [stdout] 1740 | res = expr; [INFO] [stdout] 1741 | continue; [INFO] [stdout] 1742 ~ } _ => { [INFO] [stdout] 1743 | unreachable!("memberfunction is not a name..."); [INFO] [stdout] 1744 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:77:39 [INFO] [stdout] | [INFO] [stdout] 77 | let arg0 = if let Type::Bounded(n, _) = arg.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/typecheck.rs:79:25 [INFO] [stdout] | [INFO] [stdout] 79 | } 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] 77 ~ let arg0 = match arg.0 { Type::Bounded(n, _) => { [INFO] [stdout] 78 | Type::Var(n) [INFO] [stdout] 79 ~ } _ => { [INFO] [stdout] 80 | arg.0 [INFO] [stdout] 81 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:98:24 [INFO] [stdout] | [INFO] [stdout] 98 | if let Type::Function(ref args, ref ret) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:101:21 [INFO] [stdout] | [INFO] [stdout] 101 | } 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] 98 ~ match tp { Type::Function(ref args, ref ret) => { [INFO] [stdout] 99 | func_args = args; [INFO] [stdout] 100 | ret_type = *ret.clone(); [INFO] [stdout] 101 ~ } _ => { [INFO] [stdout] 102 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "`{expr}` is not a function"))); [INFO] [stdout] 103 | continue; [INFO] [stdout] 104 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:189:28 [INFO] [stdout] | [INFO] [stdout] 189 | if let ExpressionR::Var(ref name) = expr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:192:25 [INFO] [stdout] | [INFO] [stdout] 192 | } 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] 189 ~ match expr.1 { ExpressionR::Var(ref name) => { [INFO] [stdout] 190 | func_name = name.clone(); [INFO] [stdout] 191 | new_func_name.push_str(name); [INFO] [stdout] 192 ~ } _ => { [INFO] [stdout] 193 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "expression `{expr}`, should have a fixed, non-generic type."))); [INFO] [stdout] ... [INFO] [stdout] 196 | return; [INFO] [stdout] 197 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:266:28 [INFO] [stdout] | [INFO] [stdout] 266 | if let Type::Pointer(stu) = struct_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/typecheck.rs:268:25 [INFO] [stdout] | [INFO] [stdout] 268 | } 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] 266 ~ match struct_type_ { Type::Pointer(stu) => { [INFO] [stdout] 267 | *stu [INFO] [stdout] 268 ~ } _ => { [INFO] [stdout] 269 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "type `{struct_type_}` is not a pointer, but pointer type was expected"))); [INFO] [stdout] 270 | continue; [INFO] [stdout] 271 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:276:24 [INFO] [stdout] | [INFO] [stdout] 276 | if let Type::Struct(ref struct_name, ref map) = struct_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/typecheck.rs:288:21 [INFO] [stdout] | [INFO] [stdout] 288 | } 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] 276 ~ match struct_type { Type::Struct(ref struct_name, ref map) => { [INFO] [stdout] 277 | if map.iter().any(|(n, _)| n == name) { [INFO] [stdout] ... [INFO] [stdout] 287 | } [INFO] [stdout] 288 ~ } _ => { [INFO] [stdout] 289 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "type `{struct_type}` is not a struct, but struct type was expected"))); [INFO] [stdout] 290 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:328:24 [INFO] [stdout] | [INFO] [stdout] 328 | if let Type::Array(_) = type_l {} else if let Type::Custom(ref inner) = type_l { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------ ------ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:328:53 [INFO] [stdout] | [INFO] [stdout] 328 | if let Type::Array(_) = type_l {} else if let Type::Custom(ref inner) = type_l { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:336:21 [INFO] [stdout] | [INFO] [stdout] 336 | } 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] 328 ~ match type_l { Type::Array(_) => {} _ => { match type_l { Type::Custom(ref inner) => { [INFO] [stdout] 329 | if aliases.contains_key(inner) { [INFO] [stdout] ... [INFO] [stdout] 335 | } [INFO] [stdout] 336 ~ } _ => { [INFO] [stdout] 337 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "{type_l} used in array indexing is not an array type"))); [INFO] [stdout] 338 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:441:32 [INFO] [stdout] | [INFO] [stdout] 441 | ... if let Type::Custom(a) = arg_.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:445:29 [INFO] [stdout] | [INFO] [stdout] 445 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 441 ~ match arg_.dealias(aliases) { Type::Custom(a) => { [INFO] [stdout] 442 | if a != *arg { [INFO] [stdout] 443 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "undefined reference to type `{a}`"))); [INFO] [stdout] 444 | } [INFO] [stdout] 445 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:447:28 [INFO] [stdout] | [INFO] [stdout] 447 | if let Type::Custom(a) = ret.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:451:25 [INFO] [stdout] | [INFO] [stdout] 451 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 447 ~ match ret.dealias(aliases) { Type::Custom(a) => { [INFO] [stdout] 448 | if a != *arg { [INFO] [stdout] 449 | errors.push((ErrorLevel::Err, error!(lexer, *pos, "undefined reference to type `{a}`"))); [INFO] [stdout] 450 | } [INFO] [stdout] 451 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:505:20 [INFO] [stdout] | [INFO] [stdout] 505 | if let ASTNodeR::FunctionDecl(_, _, _, rt, block) = &a.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:513:17 [INFO] [stdout] | [INFO] [stdout] 513 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 505 ~ match &a.1 { ASTNodeR::FunctionDecl(_, _, _, rt, block) => { [INFO] [stdout] 506 | if *rt == Type::Primitive(PrimitiveType::Void) { [INFO] [stdout] ... [INFO] [stdout] 512 | } [INFO] [stdout] 513 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:548:16 [INFO] [stdout] | [INFO] [stdout] 548 | if let Type::Array(ref innera) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:550:13 [INFO] [stdout] | [INFO] [stdout] 550 | } 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] 548 ~ match typa { Type::Array(ref innera) => { [INFO] [stdout] 549 | infer_types(innera.clone().dealias(aliases), inner, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 550 ~ } _ => { [INFO] [stdout] 551 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not an array, but an array was expected"))); [INFO] [stdout] 552 | return errors; [INFO] [stdout] 553 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:561:16 [INFO] [stdout] | [INFO] [stdout] 561 | if let Type::Pointer(ref innera) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:563:13 [INFO] [stdout] | [INFO] [stdout] 563 | } 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] 561 ~ match typa { Type::Pointer(ref innera) => { [INFO] [stdout] 562 | infer_types(innera.clone().dealias(aliases), inner, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 563 ~ } _ => { [INFO] [stdout] 564 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a pointer, but a pointer was expected"))); [INFO] [stdout] 565 | return errors; [INFO] [stdout] 566 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:569:16 [INFO] [stdout] | [INFO] [stdout] 569 | if let Type::Function(ref argsa, ref reta) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:579:13 [INFO] [stdout] | [INFO] [stdout] 579 | } 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] 569 ~ match typa { Type::Function(ref argsa, ref reta) => { [INFO] [stdout] 570 | for (i, arg) in args.iter_mut().enumerate() { [INFO] [stdout] ... [INFO] [stdout] 578 | infer_types(reta.clone().dealias(aliases), ret, current_vars, lexer, pos, expr, aliases); [INFO] [stdout] 579 ~ } _ => { [INFO] [stdout] 580 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a function, but a function was expected"))); [INFO] [stdout] 581 | return errors; [INFO] [stdout] 582 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:586:16 [INFO] [stdout] | [INFO] [stdout] 586 | if let Type::Struct(_, ref argsa) = typa { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:595:13 [INFO] [stdout] | [INFO] [stdout] 595 | } 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] 586 ~ match typa { Type::Struct(_, ref argsa) => { [INFO] [stdout] 587 | for (i, (_, (arg, _))) in args.iter_mut().enumerate() { [INFO] [stdout] ... [INFO] [stdout] 594 | } [INFO] [stdout] 595 ~ } _ => { [INFO] [stdout] 596 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{expr}` is not a struct, but a struct was expected"))); [INFO] [stdout] 597 | return errors; [INFO] [stdout] 598 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:653:20 [INFO] [stdout] | [INFO] [stdout] 653 | if let Type::Pointer(inner) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:655:17 [INFO] [stdout] | [INFO] [stdout] 655 | } 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] 653 ~ match tp { Type::Pointer(inner) => { [INFO] [stdout] 654 | *inner [INFO] [stdout] 655 ~ } _ => { [INFO] [stdout] 656 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{tp}` cannot be dereferenced"))); [INFO] [stdout] 657 | Type::Invalid [INFO] [stdout] 658 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:671:24 [INFO] [stdout] | [INFO] [stdout] 671 | if let Type::Pointer(stu) = struct_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/typecheck.rs:673:21 [INFO] [stdout] | [INFO] [stdout] 673 | } 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] 671 ~ match struct_type_ { Type::Pointer(stu) => { [INFO] [stdout] 672 | *stu [INFO] [stdout] 673 ~ } _ => { [INFO] [stdout] 674 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{struct_type_}` is not a pointer, but pointer type was expected"))); [INFO] [stdout] 675 | return Type::Invalid; [INFO] [stdout] 676 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:681:20 [INFO] [stdout] | [INFO] [stdout] 681 | if let Type::Struct(ref struct_name, ref map) = struct_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/typecheck.rs:689:17 [INFO] [stdout] | [INFO] [stdout] 689 | } 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] 681 ~ match struct_type { Type::Struct(ref struct_name, ref map) => { [INFO] [stdout] 682 | if map.iter().any(|(x, _)| x == name) { [INFO] [stdout] ... [INFO] [stdout] 688 | } [INFO] [stdout] 689 ~ } _ => { [INFO] [stdout] 690 | errors.push((ErrorLevel::Err, error!(lexer, pos, "type `{struct_type}` is not a struct."))); [INFO] [stdout] 691 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:723:20 [INFO] [stdout] | [INFO] [stdout] 723 | if let Type::Function(ref args, ref ret) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 726 | } 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] 723 ~ match tp { Type::Function(ref args, ref ret) => { [INFO] [stdout] 724 | ret_type = *ret.clone(); [INFO] [stdout] 725 | func_args = args; [INFO] [stdout] 726 ~ } _ => { [INFO] [stdout] 727 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{lexpr}` is not a function"))); [INFO] [stdout] 728 | return Type::Invalid; [INFO] [stdout] 729 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:904:24 [INFO] [stdout] | [INFO] [stdout] 904 | if let ExpressionR::Var(ref name) = lexpr.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:907:21 [INFO] [stdout] | [INFO] [stdout] 907 | } 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] 904 ~ match lexpr.1 { ExpressionR::Var(ref name) => { [INFO] [stdout] 905 | func_name = name.clone(); [INFO] [stdout] 906 | new_func_name.push_str(name); [INFO] [stdout] 907 ~ } _ => { [INFO] [stdout] 908 | errors.push((ErrorLevel::Err, error!(lexer, pos, "expression `{lexpr}`, should have a fixed, non-generic type."))); [INFO] [stdout] ... [INFO] [stdout] 911 | return ret; [INFO] [stdout] 912 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:938:32 [INFO] [stdout] | [INFO] [stdout] 938 | ... if let Type::Function(..) = fields.iter().find(|(x, _)| x == name).unwrap().1.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/typecheck.rs:940:29 [INFO] [stdout] | [INFO] [stdout] 940 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 938 ~ match fields.iter().find(|(x, _)| x == name).unwrap().1.0 { Type::Function(..) => { [INFO] [stdout] 939 | errors.push((ErrorLevel::Note, error!(lexer, pos, "if you wanted to call the function stored in a struct, write it like this:\n\t({lexpr}.{name})(args..)"))); [INFO] [stdout] 940 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1002:39 [INFO] [stdout] | [INFO] [stdout] 1002 | let inner_tp = if let Type::Array(inner) = ident_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] 1003 | *inner [INFO] [stdout] 1004 | } else if let Type::Custom(ref inner) = ident_type { [INFO] [stdout] | ---------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1004:21 [INFO] [stdout] | [INFO] [stdout] 1004 | } else if let Type::Custom(ref inner) = ident_type { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1016:21 [INFO] [stdout] | [INFO] [stdout] 1016 | } 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] 1002 ~ let inner_tp = match ident_type { Type::Array(inner) => { [INFO] [stdout] 1003 | *inner [INFO] [stdout] 1004 ~ } _ => { match ident_type { Type::Custom(ref inner) => { [INFO] [stdout] 1005 | if aliases.contains_key(inner) { [INFO] [stdout] ... [INFO] [stdout] 1015 | } [INFO] [stdout] 1016 ~ } _ => { [INFO] [stdout] 1017 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{ident_type}` is not an array type"))); [INFO] [stdout] 1018 | Type::Invalid [INFO] [stdout] 1019 ~ }}}}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1006:32 [INFO] [stdout] | [INFO] [stdout] 1006 | ... if let Type::Array(ref inner2) = aliases[inner] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1008:29 [INFO] [stdout] | [INFO] [stdout] 1008 | ... } 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] 1006 ~ match aliases[inner] { Type::Array(ref inner2) => { [INFO] [stdout] 1007 | *inner2.clone() [INFO] [stdout] 1008 ~ } _ => { [INFO] [stdout] 1009 | errors.push((ErrorLevel::Err, error!(lexer, pos, "`{ident_type}` is not an array type"))); [INFO] [stdout] 1010 | Type::Invalid [INFO] [stdout] 1011 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1020:24 [INFO] [stdout] | [INFO] [stdout] 1020 | if let Type::Struct(_, ref map) = inner_tp.dealias(aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1025:21 [INFO] [stdout] | [INFO] [stdout] 1025 | } 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] 1020 ~ match inner_tp.dealias(aliases) { Type::Struct(_, ref map) => { [INFO] [stdout] 1021 | let mut vector_: Vec = map.iter().map(|(x, _)| x.clone()).collect(); [INFO] [stdout] ... [INFO] [stdout] 1024 | expr.1 = ExpressionR::Index(ident.clone(), a.clone(), vec); [INFO] [stdout] 1025 ~ } _ => { [INFO] [stdout] 1026 | expr.1 = ExpressionR::Index(ident.clone(), a.clone(), vec![inner_tp.size(aliases)]); [INFO] [stdout] 1027 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1321:32 [INFO] [stdout] | [INFO] [stdout] 1321 | ... if let Some(inner) = tp { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1323:29 [INFO] [stdout] | [INFO] [stdout] 1323 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1321 ~ match tp { Some(inner) => { [INFO] [stdout] 1322 | current_vars.insert(name.clone(), inner); [INFO] [stdout] 1323 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1337:41 [INFO] [stdout] | [INFO] [stdout] 1337 | ... let tp = if let Type::Custom(b) = a.dealias(&type_aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1339:29 [INFO] [stdout] | [INFO] [stdout] 1339 | ... } 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] 1337 ~ let tp = match a.dealias(&type_aliases) { Type::Custom(b) => { [INFO] [stdout] 1338 | Type::Bounded(b.clone(), b.clone()) [INFO] [stdout] 1339 ~ } _ => { [INFO] [stdout] 1340 | a.clone() [INFO] [stdout] 1341 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1345:37 [INFO] [stdout] | [INFO] [stdout] 1345 | let tp = if let Type::Custom(b) = ret.dealias(&type_aliases) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1347:25 [INFO] [stdout] | [INFO] [stdout] 1347 | } 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] 1345 ~ let tp = match ret.dealias(&type_aliases) { Type::Custom(b) => { [INFO] [stdout] 1346 | Type::Bounded(b.clone(), b.clone()) [INFO] [stdout] 1347 ~ } _ => { [INFO] [stdout] 1348 | ret.clone() [INFO] [stdout] 1349 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1409:20 [INFO] [stdout] | [INFO] [stdout] 1409 | if let ASTNodeR::Block(nvec) = &mut ast.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1413:17 [INFO] [stdout] | [INFO] [stdout] 1413 | } 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] 1409 ~ match &mut ast.1 { ASTNodeR::Block(nvec) => { [INFO] [stdout] 1410 | errors.append( [INFO] [stdout] 1411 | &mut check_unused(&mut Box::new(nvec), lexer_, verbose) [INFO] [stdout] 1412 | ); [INFO] [stdout] 1413 ~ } _ => { [INFO] [stdout] 1414 | unreachable!() [INFO] [stdout] 1415 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1470:20 [INFO] [stdout] | [INFO] [stdout] 1470 | if let ASTNodeR::Block(nvec) = &mut ast.1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1476:17 [INFO] [stdout] | [INFO] [stdout] 1476 | } 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] 1470 ~ match &mut ast.1 { ASTNodeR::Block(nvec) => { [INFO] [stdout] 1471 | if remove_original(&mut Box::new(nvec), func, pos, block, args, ret) { [INFO] [stdout] ... [INFO] [stdout] 1475 | } [INFO] [stdout] 1476 ~ } _ => { [INFO] [stdout] 1477 | unreachable!() [INFO] [stdout] 1478 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1519:16 [INFO] [stdout] | [INFO] [stdout] 1519 | if let ASTNode(_, ASTNodeR::Block(here)) = node { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/typecheck.rs:1521:13 [INFO] [stdout] | [INFO] [stdout] 1521 | } 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] 1519 ~ match node { ASTNode(_, ASTNodeR::Block(here)) => { [INFO] [stdout] 1520 | new_func = here[0].clone(); [INFO] [stdout] 1521 ~ } _ => { [INFO] [stdout] 1522 | unreachable!() [INFO] [stdout] 1523 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:254:19 [INFO] [stdout] | [INFO] [stdout] 254 | } else if let Type::Array(aa) = a { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 260 | } else if let Type::Pointer(aa) = a { [INFO] [stdout] | - this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 266 | } else if let Type::Struct(a_name, a_fields) = a { [INFO] [stdout] | - this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | } else if let Type::Pointer(aa) = a { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | } else if let Type::Struct(a_name, a_fields) = a { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:289:9 [INFO] [stdout] | [INFO] [stdout] 289 | } 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] 254 ~ } else { match a { Type::Array(aa) => { [INFO] [stdout] 255 | if let Type::Array(bb) = b { [INFO] [stdout] ... [INFO] [stdout] 259 | } [INFO] [stdout] 260 ~ } _ => { match a { Type::Pointer(aa) => { [INFO] [stdout] 261 | if let Type::Pointer(bb) = b { [INFO] [stdout] ... [INFO] [stdout] 265 | } [INFO] [stdout] 266 ~ } _ => { match a { Type::Struct(a_name, a_fields) => { [INFO] [stdout] 267 | if let Type::Struct(b_name, b_fields) = b { [INFO] [stdout] ... [INFO] [stdout] 288 | } [INFO] [stdout] 289 ~ } _ => { [INFO] [stdout] 290 | false [INFO] [stdout] 291 ~ }}}}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:255:16 [INFO] [stdout] | [INFO] [stdout] 255 | if let Type::Array(bb) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:257:13 [INFO] [stdout] | [INFO] [stdout] 257 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 255 ~ match b { Type::Array(bb) => { [INFO] [stdout] 256 | aa.is_compatible(&bb, aliases) [INFO] [stdout] 257 ~ } _ => { [INFO] [stdout] 258 | false [INFO] [stdout] 259 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:261:16 [INFO] [stdout] | [INFO] [stdout] 261 | if let Type::Pointer(bb) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:263:13 [INFO] [stdout] | [INFO] [stdout] 263 | } 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] 261 ~ match b { Type::Pointer(bb) => { [INFO] [stdout] 262 | aa.is_compatible(&bb, aliases) [INFO] [stdout] 263 ~ } _ => { [INFO] [stdout] 264 | false [INFO] [stdout] 265 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/util.rs:267:16 [INFO] [stdout] | [INFO] [stdout] 267 | if let Type::Struct(b_name, b_fields) = b { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/util.rs:286:13 [INFO] [stdout] | [INFO] [stdout] 286 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 267 ~ match b { Type::Struct(b_name, b_fields) => { [INFO] [stdout] 268 | if a_name == b_name { [INFO] [stdout] ... [INFO] [stdout] 285 | } [INFO] [stdout] 286 ~ } _ => { [INFO] [stdout] 287 | false [INFO] [stdout] 288 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 92 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.42s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking swl v0.1.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/main.rs:299:31 [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::r#gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/main.rs:299:31 [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 299 | intermediate::r#gen(ast.1, &mut HashMap::new(), &globals, aliases, 0, 1, true); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap... [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 312 | pub fn r#gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap, loop_idx: usize, index: usize, is_top_level: bool) -> (Vec, HashMap, Vec<(String, String)>) { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | let (mut res, _, mut exts) = gen(i.1, offsets, globals, aliases.clone(), loop_idx, count, false); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:511:29 [INFO] [stdout] | [INFO] [stdout] 511 | ret.append(&mut gen(block.1, offsets, globals, aliases.clone(), loop_idx, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:522:29 [INFO] [stdout] | [INFO] [stdout] 522 | ret.append(&mut gen(block.1, offsets, globals, aliases, index, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:561:29 [INFO] [stdout] | [INFO] [stdout] 561 | ret.append(&mut gen(block.1, &mut offsets, globals, aliases, 0, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:578:42 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut res, _, mut exts) = gen(ast.1, offsets, globals, aliases, 0, index, is_top_level); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:312:8 [INFO] [stdout] | [INFO] [stdout] 312 | pub fn gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap... [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 312 | pub fn r#gen(ast: ASTNodeR, offsets: &mut HashMap, globals: &HashMap, aliases: HashMap, loop_idx: usize, index: usize, is_top_level: bool) -> (Vec, HashMap, Vec<(String, String)>) { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | let (mut res, _, mut exts) = gen(i.1, offsets, globals, aliases.clone(), loop_idx, count, false); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:511:29 [INFO] [stdout] | [INFO] [stdout] 511 | ret.append(&mut gen(block.1, offsets, globals, aliases.clone(), loop_idx, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:522:29 [INFO] [stdout] | [INFO] [stdout] 522 | ret.append(&mut gen(block.1, offsets, globals, aliases, index, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:561:29 [INFO] [stdout] | [INFO] [stdout] 561 | ret.append(&mut gen(block.1, &mut offsets, globals, aliases, 0, index * 3, false).0); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/intermediate.rs:578:42 [INFO] [stdout] | [INFO] [stdout] 578 | let (mut res, _, mut exts) = gen(ast.1, offsets, globals, aliases, 0, index, is_top_level); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/typecheck.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for mut a in arr { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/typecheck.rs:56:13 [INFO] [stdout] | [INFO] [stdout] 56 | for mut a in arr { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 7 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `swl` (bin "swl") due to 8 previous errors; 1 warning emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 7 previous errors; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `swl` (bin "swl" test) due to 8 previous errors; 1 warning emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "432957b10f75f8a6c2a2c1fefca86b4e7fc7cbb67e69af597bdbb7e3f1ad9ff9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "432957b10f75f8a6c2a2c1fefca86b4e7fc7cbb67e69af597bdbb7e3f1ad9ff9", kill_on_drop: false }` [INFO] [stdout] 432957b10f75f8a6c2a2c1fefca86b4e7fc7cbb67e69af597bdbb7e3f1ad9ff9