[INFO] fetching crate ohcrab 0.7.5... [INFO] checking ohcrab-0.7.5 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate ohcrab 0.7.5 into /workspace/builds/worker-6-tc2/source [INFO] validating manifest of crates.io crate ohcrab 0.7.5 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate ohcrab 0.7.5 [INFO] finished tweaking crates.io crate ohcrab 0.7.5 [INFO] tweaked toml for crates.io crate ohcrab 0.7.5 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate crates.io crate ohcrab 0.7.5 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-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d938089a1149d7ac7d91d52d1b111b8a05f47a62b1a0746fffc30fbbfb432f26 [INFO] running `Command { std: "docker" "start" "-a" "d938089a1149d7ac7d91d52d1b111b8a05f47a62b1a0746fffc30fbbfb432f26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d938089a1149d7ac7d91d52d1b111b8a05f47a62b1a0746fffc30fbbfb432f26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d938089a1149d7ac7d91d52d1b111b8a05f47a62b1a0746fffc30fbbfb432f26", kill_on_drop: false }` [INFO] [stdout] d938089a1149d7ac7d91d52d1b111b8a05f47a62b1a0746fffc30fbbfb432f26 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8f6cb2c7a7ca87431bf05cdc7e82b0bf841c4b021f4930d70587168a1016e336 [INFO] running `Command { std: "docker" "start" "-a" "8f6cb2c7a7ca87431bf05cdc7e82b0bf841c4b021f4930d70587168a1016e336", 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] Checking memchr v2.6.4 [INFO] [stderr] Compiling semver v1.0.21 [INFO] [stderr] Checking anstyle v1.0.4 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking anstyle-parse v0.2.2 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Checking linux-raw-sys v0.4.13 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Checking clap_lex v0.6.0 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Compiling relative-path v1.9.2 [INFO] [stderr] Checking home v0.5.5 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking futures-timer v3.0.2 [INFO] [stderr] Checking is_executable v1.0.1 [INFO] [stderr] Checking fastrand v2.0.1 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking anstream v0.6.4 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking shlex v1.3.0 [INFO] [stderr] Checking console v0.15.7 [INFO] [stderr] Checking fuzzt v0.3.1 [INFO] [stderr] Checking clap_builder v4.4.7 [INFO] [stderr] Compiling rustc_version v0.4.0 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Compiling rstest_macros v0.18.2 [INFO] [stderr] Checking predicates v3.0.4 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Checking clap v4.4.7 [INFO] [stderr] Checking which v4.4.2 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking ohcrab v0.7.5 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling mockall_derive v0.12.0 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `ohcrab` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/rules/utils/parameterized_tests.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/rules/utils/parameterized_tests.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:3:44 [INFO] [stderr] | [INFO] [stderr] 3 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:22:6 [INFO] [stderr] | [INFO] [stderr] 22 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 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/rules/utils/parameterized_tests.rs:3:18 [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr_2021, $($name:ident: $value: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/rules/utils/parameterized_tests.rs:3:46 [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/utils/parameterized_tests.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr_2021, $($name:ident: $value: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/rules/utils/parameterized_tests.rs:22:51 [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(command) = arg_matches.remove_many::("command") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | } 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] 35 ~ match arg_matches.remove_many::("command") { Some(command) => { [INFO] [stdout] 36 | let command_vec = command.collect(); [INFO] [stdout] ... [INFO] [stdout] 55 | } [INFO] [stdout] 56 ~ } _ => { [INFO] [stdout] 57 | let alias_name = arg_matches.get_one::("alias").unwrap(); [INFO] [stdout] 58 | println!("{}", system_shell.app_alias(alias_name)); [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:34:16 [INFO] [stdout] | [INFO] [stdout] 34 | if let Some(captures) = re_broken_cmd.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 34 ~ match re_broken_cmd.captures(output) { Some(captures) => { [INFO] [stdout] 35 | broken_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | return Vec::::new(); [INFO] [stdout] 38 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:39:16 [INFO] [stdout] | [INFO] [stdout] 39 | if let Some(captures) = re_new_cmd.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 40 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 41 | } else if let Some(captures) = re_new_cmd_alt.captures(output) { [INFO] [stdout] | ------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | } else if let Some(captures) = re_new_cmd_alt.captures(output) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 39 ~ match re_new_cmd.captures(output) { Some(captures) => { [INFO] [stdout] 40 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 41 ~ } _ => { match re_new_cmd_alt.captures(output) { Some(captures) => { [INFO] [stdout] 42 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 43 ~ } _ => { [INFO] [stdout] 44 | return Vec::::new(); [INFO] [stdout] 45 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_add.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if let Some(captures) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_add.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 17 ~ match re.captures(stdout) { Some(captures) => { [INFO] [stdout] 18 | let path = &captures[1]; [INFO] [stdout] ... [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | None [INFO] [stdout] 34 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_bisect_usage.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | if let (Some(broken), Some(usage)) = (broken, usage) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_bisect_usage.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ match (broken, usage) { (Some(broken), Some(usage)) => { [INFO] [stdout] 31 | replace_command(command, &broken[1], usage[1].split('|').collect()) [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | Vec::::new() [INFO] [stdout] 34 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_branch_exists.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | if let Some(captures) = re_branch_name.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_branch_exists.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 25 ~ match re_branch_name.captures(stdout) { Some(captures) => { [INFO] [stdout] 26 | let mut new_commands = Vec::::new(); [INFO] [stdout] ... [INFO] [stdout] 46 | new_commands [INFO] [stdout] 47 ~ } _ => { [INFO] [stdout] 48 | Vec::::new() [INFO] [stdout] 49 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_checkout.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(caps) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_checkout.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 65 ~ match re.captures(stdout) { Some(caps) => { [INFO] [stdout] 66 | let missing_file = caps.get(1).map_or("", |m| m.as_str()); [INFO] [stdout] ... [INFO] [stdout] 91 | new_commands [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | Vec::::new() [INFO] [stdout] 94 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_flag_after_filename.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | if let Some(bad_flag) = caps.get(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/rules/git_flag_after_filename.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 40 ~ match caps.get(1) { Some(bad_flag) => { [INFO] [stdout] 41 | let bad_flag = bad_flag.as_str(); [INFO] [stdout] ... [INFO] [stdout] 49 | } [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 31 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 32 | if let Some(broken_cmd) = caps.get(1) { [INFO] [stdout] ... [INFO] [stdout] 41 | } [INFO] [stdout] 42 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | if let Some(broken_cmd) = caps.get(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/rules/git_lfs_mistype.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 32 ~ match caps.get(1) { Some(broken_cmd) => { [INFO] [stdout] 33 | let broken_cmd = broken_cmd.as_str(); [INFO] [stdout] ... [INFO] [stdout] 40 | ); [INFO] [stdout] 41 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | if let Some(unknown_branch) = re_unknown_branch.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 29 ~ match re_unknown_branch.captures(stdout) { Some(unknown_branch) => { [INFO] [stdout] 30 | if let Some(remote_branch) = re_remote_branch.captures(stdout) { [INFO] [stdout] ... [INFO] [stdout] 38 | } [INFO] [stdout] 39 ~ } _ => { [INFO] [stdout] 40 | Vec::::new() [INFO] [stdout] 41 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | if let Some(remote_branch) = re_remote_branch.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ match re_remote_branch.captures(stdout) { Some(remote_branch) => { [INFO] [stdout] 31 | vec![replace_argument( [INFO] [stdout] ... [INFO] [stdout] 35 | )] [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | Vec::::new() [INFO] [stdout] 38 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/long_form_help.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/long_form_help.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 21 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 22 | vec![caps.get(1).map_or("", |m| m.as_str()).to_owned()] [INFO] [stdout] 23 ~ } _ => { [INFO] [stdout] 24 | vec![command.script.replace("-h", "--help")] [INFO] [stdout] 25 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | if let Some(caps) = re1.captures(command_output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 13 | } else if let Some(caps) = re2.captures(command_output) { [INFO] [stdout] | ---------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | } else if let Some(caps) = re2.captures(command_output) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 8 ~ match re1.captures(command_output) { Some(caps) => { [INFO] [stdout] 9 | caps[1] [INFO] [stdout] ... [INFO] [stdout] 12 | .collect::>() [INFO] [stdout] 13 ~ } _ => { match re2.captures(command_output) { Some(caps) => { [INFO] [stdout] 14 | caps[1] [INFO] [stdout] ... [INFO] [stdout] 17 | .collect::>() [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | vec![] [INFO] [stdout] 20 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/no_such_file.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | if let Some(caps) = re.captures(command_output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/no_such_file.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 16 ~ match re.captures(command_output) { Some(caps) => { [INFO] [stdout] 17 | return caps.get(1).map(|m| m.as_str().to_owned()); [INFO] [stdout] 18 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/npm_missing_script.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/npm_missing_script.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 35 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 36 | println!("{:?}", caps); [INFO] [stdout] ... [INFO] [stdout] 44 | ) [INFO] [stdout] 45 ~ } _ => { [INFO] [stdout] 46 | vec![] [INFO] [stdout] 47 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:33:16 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(search) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 33 ~ match re.captures(stdout) { Some(search) => { [INFO] [stdout] 34 | let alias = search.get(1).map_or("", |m| m.as_str()); [INFO] [stdout] ... [INFO] [stdout] 51 | command.script = new_script; [INFO] [stdout] 52 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if let Some(search) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 79 ~ match re.captures(stdout) { Some(search) => { [INFO] [stdout] 80 | let shlex_quoter = Quoter::new(); [INFO] [stdout] ... [INFO] [stdout] 98 | *new_command = new_command.update(Some(new_script.to_string()), None, None); [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | if let Ok(file) = File::open(&history_file_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match File::open(&history_file_name) { Ok(file) => { [INFO] [stdout] 27 | let reader = io::BufReader::new(file); [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] 37 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui.rs:85:16 [INFO] [stdout] | [INFO] [stdout] 85 | if let Ok(character) = stdout.read_key() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 85 ~ match stdout.read_key() { Ok(character) => { [INFO] [stdout] 86 | match character { [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:183:16 [INFO] [stdout] | [INFO] [stdout] 183 | if let Ok(iterdir) = Path::new(&path).read_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 183 ~ match Path::new(&path).read_dir() { Ok(iterdir) => { [INFO] [stdout] 184 | for executable in iterdir.flatten() { [INFO] [stdout] ... [INFO] [stdout] 196 | } [INFO] [stdout] 197 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:185:24 [INFO] [stdout] | [INFO] [stdout] 185 | if let Ok(file_type) = executable.file_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/utils.rs:195:21 [INFO] [stdout] | [INFO] [stdout] 195 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 185 ~ match executable.file_type() { Ok(file_type) => { [INFO] [stdout] 186 | if !file_type.is_dir() { [INFO] [stdout] ... [INFO] [stdout] 194 | } [INFO] [stdout] 195 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:187:32 [INFO] [stdout] | [INFO] [stdout] 187 | ... if let Some(file_name) = executable.path().file_name() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:193:29 [INFO] [stdout] | [INFO] [stdout] 193 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 187 ~ match executable.path().file_name() { Some(file_name) => { [INFO] [stdout] 188 | if let Some(name) = file_name.to_str() { [INFO] [stdout] ... [INFO] [stdout] 192 | } [INFO] [stdout] 193 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 27 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking mockall v0.12.0 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking rstest v0.18.2 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `ohcrab` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/rules/apt_get.rs [INFO] [stderr] * src/rules/apt_get_search.rs [INFO] [stderr] * src/rules/brew_install.rs [INFO] [stderr] * src/rules/brew_update_formula.rs [INFO] [stderr] * src/rules/cd_parent.rs [INFO] [stderr] * src/rules/chmod_x.rs [INFO] [stderr] * src/rules/choco_install.rs [INFO] [stderr] * src/rules/git_add.rs [INFO] [stderr] * src/rules/utils/parameterized_tests.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/rules/apt_get.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/apt_get.rs:83:25 [INFO] [stderr] | [INFO] [stderr] 83 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/apt_get.rs:100:25 [INFO] [stderr] | [INFO] [stderr] 100 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/apt_get_search.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/apt_get_search.rs:48:25 [INFO] [stderr] | [INFO] [stderr] 48 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/apt_get_search.rs:65:25 [INFO] [stderr] | [INFO] [stderr] 65 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:64:10 [INFO] [stderr] | [INFO] [stderr] 64 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:64:48 [INFO] [stderr] | [INFO] [stderr] 64 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:81:10 [INFO] [stderr] | [INFO] [stderr] 81 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:81:48 [INFO] [stderr] | [INFO] [stderr] 81 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:98:10 [INFO] [stderr] | [INFO] [stderr] 98 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_install.rs:98:53 [INFO] [stderr] | [INFO] [stderr] 98 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_update_formula.rs:39:25 [INFO] [stderr] | [INFO] [stderr] 39 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_update_formula.rs:56:25 [INFO] [stderr] | [INFO] [stderr] 56 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/brew_update_formula.rs:73:25 [INFO] [stderr] | [INFO] [stderr] 73 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/cd_parent.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/cd_parent.rs:48:25 [INFO] [stderr] | [INFO] [stderr] 48 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/cd_parent.rs:65:25 [INFO] [stderr] | [INFO] [stderr] 65 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/chmod_x.rs:66:25 [INFO] [stderr] | [INFO] [stderr] 66 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/chmod_x.rs:83:25 [INFO] [stderr] | [INFO] [stderr] 83 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/chmod_x.rs:100:25 [INFO] [stderr] | [INFO] [stderr] 100 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/choco_install.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/choco_install.rs:94:25 [INFO] [stderr] | [INFO] [stderr] 94 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/choco_install.rs:111:25 [INFO] [stderr] | [INFO] [stderr] 111 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/git_add.rs:99:25 [INFO] [stderr] | [INFO] [stderr] 99 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/git_add.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:3:6 [INFO] [stderr] | [INFO] [stderr] 3 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:3:44 [INFO] [stderr] | [INFO] [stderr] 3 | ($match_rule:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:22:6 [INFO] [stderr] | [INFO] [stderr] 22 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/rules/utils/parameterized_tests.rs:22:49 [INFO] [stderr] | [INFO] [stderr] 22 | ($get_new_command:expr_2021, $($name:ident: $value:expr_2021,)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 30 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/rules/apt_get.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 66 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/apt_get.rs:83:32 [INFO] [stdout] | [INFO] [stdout] 83 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 83 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/apt_get.rs:100:32 [INFO] [stdout] | [INFO] [stdout] 100 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 100 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/apt_get_search.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 31 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/apt_get_search.rs:48:32 [INFO] [stdout] | [INFO] [stdout] 48 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/apt_get_search.rs:65:32 [INFO] [stdout] | [INFO] [stdout] 65 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 65 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_install.rs:64:22 [INFO] [stdout] | [INFO] [stdout] 64 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 64 | ($match_rule:expr_2021, $($name:ident: $value: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/rules/brew_install.rs:64:50 [INFO] [stdout] | [INFO] [stdout] 64 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 64 | ($match_rule:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_install.rs:81:22 [INFO] [stdout] | [INFO] [stdout] 81 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 81 | ($match_rule:expr_2021, $($name:ident: $value: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/rules/brew_install.rs:81:50 [INFO] [stdout] | [INFO] [stdout] 81 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 81 | ($match_rule:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_install.rs:98:27 [INFO] [stdout] | [INFO] [stdout] 98 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 98 | ($get_new_command:expr_2021, $($name:ident: $value: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/rules/brew_install.rs:98:55 [INFO] [stdout] | [INFO] [stdout] 98 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 98 | ($get_new_command:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_update_formula.rs:39:32 [INFO] [stdout] | [INFO] [stdout] 39 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 39 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_update_formula.rs:56:32 [INFO] [stdout] | [INFO] [stdout] 56 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 56 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/brew_update_formula.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 73 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/cd_parent.rs:31:32 [INFO] [stdout] | [INFO] [stdout] 31 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 31 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/cd_parent.rs:48:32 [INFO] [stdout] | [INFO] [stdout] 48 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 48 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/cd_parent.rs:65:32 [INFO] [stdout] | [INFO] [stdout] 65 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 65 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/chmod_x.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 66 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/chmod_x.rs:83:32 [INFO] [stdout] | [INFO] [stdout] 83 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 83 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/chmod_x.rs:100:32 [INFO] [stdout] | [INFO] [stdout] 100 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 100 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/choco_install.rs:77:32 [INFO] [stdout] | [INFO] [stdout] 77 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 77 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/choco_install.rs:94:32 [INFO] [stdout] | [INFO] [stdout] 94 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 94 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/choco_install.rs:111:32 [INFO] [stdout] | [INFO] [stdout] 111 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 111 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/git_add.rs:99:32 [INFO] [stdout] | [INFO] [stdout] 99 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 99 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/git_add.rs:117:32 [INFO] [stdout] | [INFO] [stdout] 117 | ($($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 117 | ($($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/utils/parameterized_tests.rs:3:18 [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr_2021, $($name:ident: $value: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/rules/utils/parameterized_tests.rs:3:46 [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 3 | ($match_rule:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/rules/utils/parameterized_tests.rs:22:23 [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr_2021, $($name:ident: $value: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/rules/utils/parameterized_tests.rs:22:51 [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr,)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 22 | ($get_new_command:expr, $($name:ident: $value:expr_2021,)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::remove_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | env::remove_var(ENV_VAR_NAME_ALIAS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] = note: `--force-warn deprecated-safe-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 81 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 82 ~ unsafe { env::remove_var(ENV_VAR_NAME_ALIAS) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | env::set_var(ENV_VAR_NAME_ALIAS, "env_alias"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 88 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 89 ~ unsafe { env::set_var(ENV_VAR_NAME_ALIAS, "env_alias") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::remove_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | env::remove_var(ENV_VAR_NAME_ALIAS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 106 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 107 ~ unsafe { env::remove_var(ENV_VAR_NAME_ALIAS) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | env::set_var(ENV_VAR_NAME_ALIAS, "env_alias"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 114 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 115 ~ unsafe { env::set_var(ENV_VAR_NAME_ALIAS, "env_alias") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | env::set_var(ENV_VAR_NAME_SHELL, "pws"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 140 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 141 ~ unsafe { env::set_var(ENV_VAR_NAME_SHELL, "pws") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | env::set_var(ENV_VAR_NAME_HISTORY, "ls -a\nls -lah"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [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 #27970 [INFO] [stdout] help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code [INFO] [stdout] | [INFO] [stdout] 159 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 160 ~ unsafe { env::set_var(ENV_VAR_NAME_HISTORY, "ls -a\nls -lah") }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/main.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(command) = arg_matches.remove_many::("command") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [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:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | } 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] 35 ~ match arg_matches.remove_many::("command") { Some(command) => { [INFO] [stdout] 36 | let command_vec = command.collect(); [INFO] [stdout] ... [INFO] [stdout] 55 | } [INFO] [stdout] 56 ~ } _ => { [INFO] [stdout] 57 | let alias_name = arg_matches.get_one::("alias").unwrap(); [INFO] [stdout] 58 | println!("{}", system_shell.app_alias(alias_name)); [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:34:16 [INFO] [stdout] | [INFO] [stdout] 34 | if let Some(captures) = re_broken_cmd.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 34 ~ match re_broken_cmd.captures(output) { Some(captures) => { [INFO] [stdout] 35 | broken_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | return Vec::::new(); [INFO] [stdout] 38 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:39:16 [INFO] [stdout] | [INFO] [stdout] 39 | if let Some(captures) = re_new_cmd.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 40 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 41 | } else if let Some(captures) = re_new_cmd_alt.captures(output) { [INFO] [stdout] | ------------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | } else if let Some(captures) = re_new_cmd_alt.captures(output) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/composer_not_command.rs:43:13 [INFO] [stdout] | [INFO] [stdout] 43 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 39 ~ match re_new_cmd.captures(output) { Some(captures) => { [INFO] [stdout] 40 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 41 ~ } _ => { match re_new_cmd_alt.captures(output) { Some(captures) => { [INFO] [stdout] 42 | new_cmd = captures.get(1).map_or("", |m| m.as_str()).to_owned(); [INFO] [stdout] 43 ~ } _ => { [INFO] [stdout] 44 | return Vec::::new(); [INFO] [stdout] 45 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_add.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | if let Some(captures) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_add.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 17 ~ match re.captures(stdout) { Some(captures) => { [INFO] [stdout] 18 | let path = &captures[1]; [INFO] [stdout] ... [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | None [INFO] [stdout] 34 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_bisect_usage.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | if let (Some(broken), Some(usage)) = (broken, usage) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_bisect_usage.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ match (broken, usage) { (Some(broken), Some(usage)) => { [INFO] [stdout] 31 | replace_command(command, &broken[1], usage[1].split('|').collect()) [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | Vec::::new() [INFO] [stdout] 34 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_branch_exists.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | if let Some(captures) = re_branch_name.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_branch_exists.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 25 ~ match re_branch_name.captures(stdout) { Some(captures) => { [INFO] [stdout] 26 | let mut new_commands = Vec::::new(); [INFO] [stdout] ... [INFO] [stdout] 46 | new_commands [INFO] [stdout] 47 ~ } _ => { [INFO] [stdout] 48 | Vec::::new() [INFO] [stdout] 49 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_checkout.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 65 | if let Some(caps) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_checkout.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 65 ~ match re.captures(stdout) { Some(caps) => { [INFO] [stdout] 66 | let missing_file = caps.get(1).map_or("", |m| m.as_str()); [INFO] [stdout] ... [INFO] [stdout] 91 | new_commands [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | Vec::::new() [INFO] [stdout] 94 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_flag_after_filename.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | if let Some(bad_flag) = caps.get(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/rules/git_flag_after_filename.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 40 ~ match caps.get(1) { Some(bad_flag) => { [INFO] [stdout] 41 | let bad_flag = bad_flag.as_str(); [INFO] [stdout] ... [INFO] [stdout] 49 | } [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 31 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 32 | if let Some(broken_cmd) = caps.get(1) { [INFO] [stdout] ... [INFO] [stdout] 41 | } [INFO] [stdout] 42 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_lfs_mistype.rs:32:16 [INFO] [stdout] | [INFO] [stdout] 32 | if let Some(broken_cmd) = caps.get(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/rules/git_lfs_mistype.rs:41:13 [INFO] [stdout] | [INFO] [stdout] 41 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 32 ~ match caps.get(1) { Some(broken_cmd) => { [INFO] [stdout] 33 | let broken_cmd = broken_cmd.as_str(); [INFO] [stdout] ... [INFO] [stdout] 40 | ); [INFO] [stdout] 41 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | if let Some(unknown_branch) = re_unknown_branch.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:39:9 [INFO] [stdout] | [INFO] [stdout] 39 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 29 ~ match re_unknown_branch.captures(stdout) { Some(unknown_branch) => { [INFO] [stdout] 30 | if let Some(remote_branch) = re_remote_branch.captures(stdout) { [INFO] [stdout] ... [INFO] [stdout] 38 | } [INFO] [stdout] 39 ~ } _ => { [INFO] [stdout] 40 | Vec::::new() [INFO] [stdout] 41 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:30:16 [INFO] [stdout] | [INFO] [stdout] 30 | if let Some(remote_branch) = re_remote_branch.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/git_merge.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ match re_remote_branch.captures(stdout) { Some(remote_branch) => { [INFO] [stdout] 31 | vec![replace_argument( [INFO] [stdout] ... [INFO] [stdout] 35 | )] [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | Vec::::new() [INFO] [stdout] 38 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/long_form_help.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 21 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/long_form_help.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 21 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 22 | vec![caps.get(1).map_or("", |m| m.as_str()).to_owned()] [INFO] [stdout] 23 ~ } _ => { [INFO] [stdout] 24 | vec![command.script.replace("-h", "--help")] [INFO] [stdout] 25 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | if let Some(caps) = re1.captures(command_output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 13 | } else if let Some(caps) = re2.captures(command_output) { [INFO] [stdout] | ---------------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | } else if let Some(caps) = re2.captures(command_output) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/mercurial.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 8 ~ match re1.captures(command_output) { Some(caps) => { [INFO] [stdout] 9 | caps[1] [INFO] [stdout] ... [INFO] [stdout] 12 | .collect::>() [INFO] [stdout] 13 ~ } _ => { match re2.captures(command_output) { Some(caps) => { [INFO] [stdout] 14 | caps[1] [INFO] [stdout] ... [INFO] [stdout] 17 | .collect::>() [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | vec![] [INFO] [stdout] 20 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/no_such_file.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | if let Some(caps) = re.captures(command_output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/no_such_file.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 16 ~ match re.captures(command_output) { Some(caps) => { [INFO] [stdout] 17 | return caps.get(1).map(|m| m.as_str().to_owned()); [INFO] [stdout] 18 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/npm_missing_script.rs:35:12 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(caps) = re.captures(output) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/npm_missing_script.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 35 ~ match re.captures(output) { Some(caps) => { [INFO] [stdout] 36 | println!("{:?}", caps); [INFO] [stdout] ... [INFO] [stdout] 44 | ) [INFO] [stdout] 45 ~ } _ => { [INFO] [stdout] 46 | vec![] [INFO] [stdout] 47 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:33:16 [INFO] [stdout] | [INFO] [stdout] 33 | if let Some(search) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 33 ~ match re.captures(stdout) { Some(search) => { [INFO] [stdout] 34 | let alias = search.get(1).map_or("", |m| m.as_str()); [INFO] [stdout] ... [INFO] [stdout] 51 | command.script = new_script; [INFO] [stdout] 52 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:79:16 [INFO] [stdout] | [INFO] [stdout] 79 | if let Some(search) = re.captures(stdout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rules/utils/git.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 79 ~ match re.captures(stdout) { Some(search) => { [INFO] [stdout] 80 | let shlex_quoter = Quoter::new(); [INFO] [stdout] ... [INFO] [stdout] 98 | *new_command = new_command.update(Some(new_script.to_string()), None, None); [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 26 | if let Ok(file) = File::open(&history_file_name) { [INFO] [stdout] | ^^^^^^^^^^^^^^^------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/shell/mod.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match File::open(&history_file_name) { Ok(file) => { [INFO] [stdout] 27 | let reader = io::BufReader::new(file); [INFO] [stdout] ... [INFO] [stdout] 36 | } [INFO] [stdout] 37 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ui.rs:85:16 [INFO] [stdout] | [INFO] [stdout] 85 | if let Ok(character) = stdout.read_key() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/ui.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 85 ~ match stdout.read_key() { Ok(character) => { [INFO] [stdout] 86 | match character { [INFO] [stdout] ... [INFO] [stdout] 104 | } [INFO] [stdout] 105 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:183:16 [INFO] [stdout] | [INFO] [stdout] 183 | if let Ok(iterdir) = Path::new(&path).read_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^--------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 183 ~ match Path::new(&path).read_dir() { Ok(iterdir) => { [INFO] [stdout] 184 | for executable in iterdir.flatten() { [INFO] [stdout] ... [INFO] [stdout] 196 | } [INFO] [stdout] 197 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:185:24 [INFO] [stdout] | [INFO] [stdout] 185 | if let Ok(file_type) = executable.file_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/utils.rs:195:21 [INFO] [stdout] | [INFO] [stdout] 195 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 185 ~ match executable.file_type() { Ok(file_type) => { [INFO] [stdout] 186 | if !file_type.is_dir() { [INFO] [stdout] ... [INFO] [stdout] 194 | } [INFO] [stdout] 195 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:187:32 [INFO] [stdout] | [INFO] [stdout] 187 | ... if let Some(file_name) = executable.path().file_name() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----------^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:193:29 [INFO] [stdout] | [INFO] [stdout] 193 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 187 ~ match executable.path().file_name() { Some(file_name) => { [INFO] [stdout] 188 | if let Some(name) = file_name.to_str() { [INFO] [stdout] ... [INFO] [stdout] 192 | } [INFO] [stdout] 193 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 59 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.96s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking ohcrab v0.7.5 (/tmp/fixit) [INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | env::remove_var(ENV_VAR_NAME_ALIAS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | env::set_var(ENV_VAR_NAME_ALIAS, "env_alias"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `remove_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | env::remove_var(ENV_VAR_NAME_ALIAS); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | env::set_var(ENV_VAR_NAME_ALIAS, "env_alias"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | env::set_var(ENV_VAR_NAME_SHELL, "pws"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0133]: call to unsafe function `set_var` is unsafe and requires unsafe block [INFO] [stdout] --> src/cli/parser.rs:159:9 [INFO] [stdout] | [INFO] [stdout] 159 | env::set_var(ENV_VAR_NAME_HISTORY, "ls -a\nls -lah"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ohcrab` (bin "ohcrab" test) due to 7 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "8f6cb2c7a7ca87431bf05cdc7e82b0bf841c4b021f4930d70587168a1016e336", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8f6cb2c7a7ca87431bf05cdc7e82b0bf841c4b021f4930d70587168a1016e336", kill_on_drop: false }` [INFO] [stdout] 8f6cb2c7a7ca87431bf05cdc7e82b0bf841c4b021f4930d70587168a1016e336