[INFO] cloning repository https://github.com/dupu222/rust-cross-android [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dupu222/rust-cross-android" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdupu222%2Frust-cross-android", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdupu222%2Frust-cross-android'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0939cf51c8043fbf7c0bd803eac0a94d756f4b4a [INFO] checking dupu222/rust-cross-android/0939cf51c8043fbf7c0bd803eac0a94d756f4b4a against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdupu222%2Frust-cross-android" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dupu222/rust-cross-android 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] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/dupu222/rust-cross-android [INFO] finished tweaking git repo https://github.com/dupu222/rust-cross-android [INFO] tweaked toml for git repo https://github.com/dupu222/rust-cross-android written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/dupu222/rust-cross-android 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] [stderr] warning: /workspace/builds/worker-1-tc2/source/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition [INFO] [stderr] (in the `which` dependency) [INFO] [stderr] warning: /workspace/builds/worker-1-tc2/source/xtask/Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition [INFO] [stderr] (in the `which` dependency) [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 76e5b9391e3aef65ca53d064df29c90f4b41f48bc092ec0c540a3ccbfb484e25 [INFO] running `Command { std: "docker" "start" "-a" "76e5b9391e3aef65ca53d064df29c90f4b41f48bc092ec0c540a3ccbfb484e25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "76e5b9391e3aef65ca53d064df29c90f4b41f48bc092ec0c540a3ccbfb484e25", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76e5b9391e3aef65ca53d064df29c90f4b41f48bc092ec0c540a3ccbfb484e25", kill_on_drop: false }` [INFO] [stdout] 76e5b9391e3aef65ca53d064df29c90f4b41f48bc092ec0c540a3ccbfb484e25 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7dc37e1474f62b7638d40c3af5d24dbdddaf9262c32efa30da0fd521f54e9262 [INFO] running `Command { std: "docker" "start" "-a" "7dc37e1474f62b7638d40c3af5d24dbdddaf9262c32efa30da0fd521f54e9262", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating xtask/Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed xtask/Cargo.toml (1 fix) [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed Cargo.toml (2 fixes) [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling unicode-ident v1.0.1 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Checking once_cell v1.13.0 [INFO] [stderr] Compiling serde_derive v1.0.138 [INFO] [stderr] Compiling serde v1.0.138 [INFO] [stderr] Compiling indexmap v1.9.1 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Checking is_ci v1.1.1 [INFO] [stderr] Checking sharded-slab v0.1.4 [INFO] [stderr] Compiling semver v1.0.12 [INFO] [stderr] Compiling eyre v0.6.8 [INFO] [stderr] Checking hashbrown v0.12.2 [INFO] [stderr] Checking gimli v0.26.1 [INFO] [stderr] Checking object v0.29.0 [INFO] [stderr] Checking miniz_oxide v0.5.3 [INFO] [stderr] Checking tracing-core v0.1.28 [INFO] [stderr] Checking thread_local v1.1.4 [INFO] [stderr] Checking rustc-demangle v0.1.21 [INFO] [stderr] Compiling heck v0.4.0 [INFO] [stderr] Compiling serde_json v1.0.82 [INFO] [stderr] Checking os_str_bytes v6.1.0 [INFO] [stderr] Checking ryu v1.0.10 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking termcolor v1.1.3 [INFO] [stderr] Compiling cross v0.2.4 (/tmp/fixit) [INFO] [stderr] Checking clap_lex v0.2.4 [INFO] [stderr] Checking textwrap v0.15.0 [INFO] [stderr] Checking tracing v0.1.35 [INFO] [stderr] Checking either v1.7.0 [INFO] [stderr] Checking fastrand v1.7.0 [INFO] [stderr] Migrating src/build.rs from 2021 edition to 2024 [INFO] [stderr] Checking itoa v1.0.2 [INFO] [stderr] Checking rustc_version v0.4.0 [INFO] [stderr] Checking tracing-subscriber v0.3.14 [INFO] [stderr] Checking home v0.5.3 [INFO] [stderr] Checking const-sha1 v0.2.0 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking regex-syntax v0.6.27 [INFO] [stderr] Compiling crossbeam-utils v0.8.10 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling backtrace v0.3.66 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking nix v0.24.1 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking which v4.2.5 [INFO] [stderr] Checking tempfile v3.3.0 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking supports-color v1.3.0 [INFO] [stderr] Checking tracing-error v0.2.0 [INFO] [stderr] Checking directories v4.0.1 [INFO] [stderr] Checking owo-colors v3.4.0 [INFO] [stderr] Checking addr2line v0.17.0 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking ctrlc v3.2.2 [INFO] [stderr] Checking regex v1.6.0 [INFO] [stderr] Checking color-spantrace v0.2.0 [INFO] [stderr] Checking globset v0.4.9 [INFO] [stderr] Checking color-eyre v0.6.2 [INFO] [stderr] Checking ignore v0.4.18 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling clap_derive v3.2.7 [INFO] [stderr] Compiling thiserror-impl v1.0.31 [INFO] [stderr] Checking thiserror v1.0.31 [INFO] [stderr] Checking clap v3.2.8 [INFO] [stderr] Checking toml v0.5.9 [INFO] [stderr] Checking serde_ignored v0.1.3 [INFO] [stderr] Checking serde_yaml v0.8.25 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cross` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/docker/remote.rs [INFO] [stderr] * src/shell.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/shell.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/shell.rs:21:42 [INFO] [stderr] | [INFO] [stderr] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/shell.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:48 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:82 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:52 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:86 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:14 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:67 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:33 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:67 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info:expr_2021 $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/docker/remote.rs:137:34 [INFO] [stderr] | [INFO] [stderr] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stderr] [INFO] [stderr] error: aborting due to 14 previous errors; 1 warning emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/shell.rs:21:31 [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/shell.rs:21:46 [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/shell.rs:39:37 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:39:52 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:82 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:50:41 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:50:56 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:86 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:58:37 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:67 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:62:22 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:62:37 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:67 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info:expr_2021 $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/docker/remote.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | if !TERMINATED.swap(true, Ordering::SeqCst) && temp::has_tempfiles() { [INFO] [stdout] | ^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/errors.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | unsafe fn termination_handler() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::clean` is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | temp::clean(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | remote::CONTAINER = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | FILES.clear(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) unsafe fn clean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | DIRS.clear(); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | FILES.push(file); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | unsafe fn push_tempfile() -> Result<&'static mut tempfile::NamedTempFile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | Ok(FILES.last_mut().expect("file list should not be empty")) [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | FILES.pop() [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe fn pop_tempfile() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempfile` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | file: push_tempfile()?, [INFO] [stdout] | ^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | DIRS.push(dir); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | unsafe fn push_tempdir() -> Result<&'static Path> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(DIRS.last().expect("should not be empty").path()) [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | DIRS.pop() [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | unsafe fn pop_tempdir() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempdir` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | path: push_tempdir()?, [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:811:12 [INFO] [stdout] | [INFO] [stdout] 811 | if let Some((cfg, _)) = CrossToml::parse_from_cargo(&cargo_toml_str, msg_info)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/lib.rs:813:9 [INFO] [stdout] | [INFO] [stdout] 813 | } 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] 811 ~ match CrossToml::parse_from_cargo(&cargo_toml_str, msg_info)? { Some((cfg, _)) => { [INFO] [stdout] 812 | Ok(Some(cfg)) [INFO] [stdout] 813 ~ } _ => { [INFO] [stdout] 814 | Ok(None) [INFO] [stdout] 815 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:172:16 [INFO] [stdout] | [INFO] [stdout] 172 | if let Some(toolchain) = get_toolchain(env, toolchain_var) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | } 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] 172 ~ match get_toolchain(env, toolchain_var) { Some(toolchain) => { [INFO] [stdout] 173 | i.toolchain = toolchain [INFO] [stdout] ... [INFO] [stdout] 177 | Ok(i) [INFO] [stdout] 178 ~ } _ => { [INFO] [stdout] 179 | Ok(i) [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:457:12 [INFO] [stdout] | [INFO] [stdout] 457 | if let Some(vars) = env_values { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 460 | } else if let Some((build, target)) = self.toml.as_ref().map(toml_getter) { [INFO] [stdout] | ----------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:460:9 [INFO] [stdout] | [INFO] [stdout] 460 | } else if let Some((build, target)) = self.toml.as_ref().map(toml_getter) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 457 ~ match env_values { Some(vars) => { [INFO] [stdout] 458 | collect.extend(vars.as_ref().iter().cloned()); [INFO] [stdout] 459 | defined = true; [INFO] [stdout] 460 ~ } _ => { match self.toml.as_ref().map(toml_getter) { Some((build, target)) => { [INFO] [stdout] 461 | if let Some(build) = build { [INFO] [stdout] ... [INFO] [stdout] 468 | } [INFO] [stdout] 469 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some((cargo_toml, u_cargo)) = Self::parse_from_cargo(cargo_toml, msg_info)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | } 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] 133 ~ match Self::parse_from_cargo(cargo_toml, msg_info)? { Some((cargo_toml, u_cargo)) => { [INFO] [stdout] 134 | unused.extend(u_cargo.into_iter()); [INFO] [stdout] 135 | Ok((cargo_toml.merge(cross_toml)?, unused)) [INFO] [stdout] 136 ~ } _ => { [INFO] [stdout] 137 | Ok((cross_toml, unused)) [INFO] [stdout] 138 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:200:16 [INFO] [stdout] | [INFO] [stdout] 200 | if let Some(obj) = serde_json::to_value(s) [INFO] [stdout] | _________________^ - [INFO] [stdout] | | ________________________________| [INFO] [stdout] 201 | || .wrap_err("could not convert CrossToml to serde_json::Value")? [INFO] [stdout] | ||______________________________________________________________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 202 | | .as_object() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | } 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] 200 ~ match serde_json::to_value(s) [INFO] [stdout] 201 | .wrap_err("could not convert CrossToml to serde_json::Value")? [INFO] [stdout] 202 | .as_object() [INFO] [stdout] 203 ~ { Some(obj) => { [INFO] [stdout] 204 | Ok(obj.clone()) [INFO] [stdout] 205 ~ } _ => { [INFO] [stdout] 206 | eyre::bail!("failed to serialize CrossToml as object"); [INFO] [stdout] 207 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:490:19 [INFO] [stdout] | [INFO] [stdout] 490 | while let Some(inner) = seq.next_element::()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:492:13 [INFO] [stdout] | [INFO] [stdout] 492 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/docker/custom.rs:134:16 [INFO] [stdout] | [INFO] [stdout] 134 | if let Ok(cross_base_image) = [INFO] [stdout] | ________________^ [INFO] [stdout] 135 | | self::get_image_name(&options.config, &options.target, uses_zig) [INFO] [stdout] | |_________________---------------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/docker/custom.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 134 ~ match self::get_image_name(&options.config, &options.target, uses_zig) [INFO] [stdout] 135 ~ { Ok(cross_base_image) => { [INFO] [stdout] 136 | docker_build.args([ [INFO] [stdout] ... [INFO] [stdout] 139 | ]); [INFO] [stdout] 140 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/docker/remote.rs:808:30 [INFO] [stdout] | [INFO] [stdout] 808 | let commit_hash = if let Some(version) = self.rustc_version_string()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/docker/remote.rs:810:9 [INFO] [stdout] | [INFO] [stdout] 810 | } 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] 808 ~ let commit_hash = match self.rustc_version_string()? { Some(version) => { [INFO] [stdout] 809 | rustc::hash_from_version_string(&version, 1) [INFO] [stdout] 810 ~ } _ => { [INFO] [stdout] 811 | rustc::version_meta()?.commit_hash() [INFO] [stdout] 812 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rustc.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | } else if let Ok(stdout) = Command::new(sysroot.join("bin/rustc")) [INFO] [stdout] | ___________________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 152 | || .arg("-Vv") [INFO] [stdout] 153 | || .run_and_get_stdout(msg_info) [INFO] [stdout] | ||_________________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rustc.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 151 ~ } else { match Command::new(sysroot.join("bin/rustc")) [INFO] [stdout] 152 | .arg("-Vv") [INFO] [stdout] 153 | .run_and_get_stdout(msg_info) [INFO] [stdout] 154 ~ { Ok(stdout) => { [INFO] [stdout] 155 | let rustc_version::VersionMeta { [INFO] [stdout] ... [INFO] [stdout] 174 | return Ok(toolchain); [INFO] [stdout] 175 ~ } _ => {}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 37 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Checking xtask v0.0.0-dev.0 (/tmp/fixit/xtask) [INFO] [stderr] Migrating xtask/src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cross` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/docker/remote.rs [INFO] [stderr] * src/docker/shared.rs [INFO] [stderr] * src/file.rs [INFO] [stderr] * src/shell.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/file.rs:286:10 [INFO] [stderr] | [INFO] [stderr] 286 | ($path: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/shell.rs:21:21 [INFO] [stderr] | [INFO] [stderr] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/shell.rs:21:42 [INFO] [stderr] | [INFO] [stderr] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/shell.rs:39:29 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:48 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:82 [INFO] [stderr] | [INFO] [stderr] 39 | (@status $stream:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:33 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:52 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:86 [INFO] [stderr] | [INFO] [stderr] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:14 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:33 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:67 [INFO] [stderr] | [INFO] [stderr] 58 | (@stderr $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:14 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:33 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:67 [INFO] [stderr] | [INFO] [stderr] 62 | (@stdout $status:expr_2021, $message:expr_2021, $color:ident, $msg_info:expr_2021 $(,)?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: unexpected `cfg` condition name: `cross_sandboxed` [INFO] [stderr] --> src/docker/shared.rs:1147:20 [INFO] [stderr] | [INFO] [stderr] 1147 | #[cfg_attr(cross_sandboxed, ignore)] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stderr] = help: consider using a Cargo feature instead [INFO] [stderr] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stderr] [lints.rust] [INFO] [stderr] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(cross_sandboxed)'] } [INFO] [stderr] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(cross_sandboxed)");` to the top of the `build.rs` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: creating a mutable reference to mutable static is discouraged [INFO] [stderr] --> src/docker/remote.rs:137:34 [INFO] [stderr] | [INFO] [stdout] warning: unexpected `cfg` condition name: `cross_sandboxed` [INFO] [stdout] --> src/docker/shared.rs:1132:20 [INFO] [stdout] | [INFO] [stdout] 1132 | #[cfg_attr(cross_sandboxed, ignore)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(cross_sandboxed)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(cross_sandboxed)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stderr] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stderr] | [INFO] [stderr] = note: for more information, see issue #114447 [INFO] [stderr] = note: this will be a hard error in the 2024 edition [INFO] [stderr] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stderr] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stderr] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stderr] | [INFO] [stderr] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [INFO] [stderr] | ~~~~~~~~~~~~~ + [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/file.rs:286:16 [INFO] [stdout] | [INFO] [stdout] 286 | ($path: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] 286 | ($path:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error: aborting due to 15 previous errors; 2 warnings emitted [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/shell.rs:21:31 [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr_2021, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [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/shell.rs:21:46 [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 21 | ($stream:ident, $msg_info:expr, $message:expr_2021 $(, $style:ident)* $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/shell.rs:39:37 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:39:52 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:39:82 [INFO] [stdout] | [INFO] [stdout] 39 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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 | (@status $stream:ident, $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:50:41 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:50:56 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:50:86 [INFO] [stdout] | [INFO] [stdout] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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] 50 | (@status @name $name:ident, $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:58:37 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:58:67 [INFO] [stdout] | [INFO] [stdout] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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] 58 | (@stderr $status:expr, $message:expr, $color:ident, $msg_info: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/shell.rs:62:22 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr_2021, $message:expr, $color:ident, $msg_info: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/shell.rs:62:37 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr, $message:expr_2021, $color:ident, $msg_info: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/shell.rs:62:67 [INFO] [stdout] | [INFO] [stdout] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info: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] 62 | (@stdout $status:expr, $message:expr, $color:ident, $msg_info:expr_2021 $(,)?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static is discouraged [INFO] [stdout] --> src/docker/remote.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #114447 [INFO] [stdout] = note: this will be a hard error in the 2024 edition [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [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/docker/shared.rs:963:9 [INFO] [stdout] | [INFO] [stdout] 963 | env::remove_var(var); [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] 963 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 964 ~ unsafe { env::remove_var(var) }; [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/docker/shared.rs:978:9 [INFO] [stdout] | [INFO] [stdout] 978 | env::set_var(var, "0"); [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] 978 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 979 ~ unsafe { env::set_var(var, "0") }; [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/docker/shared.rs:984:9 [INFO] [stdout] | [INFO] [stdout] 984 | env::set_var(var, "1"); [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] 984 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 985 ~ unsafe { env::set_var(var, "1") }; [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/docker/shared.rs:990:9 [INFO] [stdout] | [INFO] [stdout] 990 | env::set_var(var, "auto"); [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] 990 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 991 ~ unsafe { env::set_var(var, "auto") }; [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/docker/shared.rs:997:22 [INFO] [stdout] | [INFO] [stdout] 997 | Ok(v) => env::set_var(var, v), [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] 997 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 998 ~ Ok(v) => unsafe { env::set_var(var, v) }, [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/docker/shared.rs:998:23 [INFO] [stdout] | [INFO] [stdout] 998 | Err(_) => env::remove_var(var), [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] 998 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 999 ~ Err(_) => unsafe { env::remove_var(var) }, [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/docker/shared.rs:1006:9 [INFO] [stdout] | [INFO] [stdout] 1006 | env::remove_var(var); [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] 1006 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1007 ~ unsafe { env::remove_var(var) }; [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/docker/shared.rs:1019:9 [INFO] [stdout] | [INFO] [stdout] 1019 | env::set_var(var, "auto"); [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] 1019 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1020 ~ unsafe { env::set_var(var, "auto") }; [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/docker/shared.rs:1022:9 [INFO] [stdout] | [INFO] [stdout] 1022 | env::set_var(var, "none"); [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] 1022 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1023 ~ unsafe { env::set_var(var, "none") }; [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/docker/shared.rs:1025:9 [INFO] [stdout] | [INFO] [stdout] 1025 | env::set_var(var, "host"); [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] 1025 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1026 ~ unsafe { env::set_var(var, "host") }; [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/docker/shared.rs:1028:9 [INFO] [stdout] | [INFO] [stdout] 1028 | env::set_var(var, "custom"); [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] 1028 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1029 ~ unsafe { env::set_var(var, "custom") }; [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/docker/shared.rs:1032:22 [INFO] [stdout] | [INFO] [stdout] 1032 | Ok(v) => env::set_var(var, v), [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] 1032 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1033 ~ Ok(v) => unsafe { env::set_var(var, v) }, [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/docker/shared.rs:1033:23 [INFO] [stdout] | [INFO] [stdout] 1033 | Err(_) => env::remove_var(var), [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] 1033 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1034 ~ Err(_) => unsafe { env::remove_var(var) }, [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/docker/shared.rs:1048:17 [INFO] [stdout] | [INFO] [stdout] 1048 | env::remove_var(var); [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] 1048 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1049 ~ unsafe { env::remove_var(var) }; [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/docker/shared.rs:1057:21 [INFO] [stdout] | [INFO] [stdout] 1057 | env::set_var(var, value); [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] 1057 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 1058 ~ unsafe { env::set_var(var, value) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | if !TERMINATED.swap(true, Ordering::SeqCst) && temp::has_tempfiles() { [INFO] [stdout] | ^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/errors.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | unsafe fn termination_handler() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::clean` is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | temp::clean(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | remote::CONTAINER = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | FILES.clear(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) unsafe fn clean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | DIRS.clear(); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | FILES.push(file); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | unsafe fn push_tempfile() -> Result<&'static mut tempfile::NamedTempFile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | Ok(FILES.last_mut().expect("file list should not be empty")) [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | FILES.pop() [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe fn pop_tempfile() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempfile` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | file: push_tempfile()?, [INFO] [stdout] | ^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | DIRS.push(dir); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | unsafe fn push_tempdir() -> Result<&'static Path> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(DIRS.last().expect("should not be empty").path()) [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | DIRS.pop() [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | unsafe fn pop_tempdir() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempdir` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | path: push_tempdir()?, [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/lib.rs:811:12 [INFO] [stdout] | [INFO] [stdout] 811 | if let Some((cfg, _)) = CrossToml::parse_from_cargo(&cargo_toml_str, msg_info)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/lib.rs:813:9 [INFO] [stdout] | [INFO] [stdout] 813 | } 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] 811 ~ match CrossToml::parse_from_cargo(&cargo_toml_str, msg_info)? { Some((cfg, _)) => { [INFO] [stdout] 812 | Ok(Some(cfg)) [INFO] [stdout] 813 ~ } _ => { [INFO] [stdout] 814 | Ok(None) [INFO] [stdout] 815 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl Iterator>` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/tests.rs:32:6 [INFO] [stdout] | [INFO] [stdout] 32 | ) -> impl Iterator> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/tests.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn walk_dir<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] 29 | root: &'_ Path, [INFO] [stdout] | ^^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:172:16 [INFO] [stdout] | [INFO] [stdout] 172 | if let Some(toolchain) = get_toolchain(env, toolchain_var) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | } 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] 172 ~ match get_toolchain(env, toolchain_var) { Some(toolchain) => { [INFO] [stdout] 173 | i.toolchain = toolchain [INFO] [stdout] ... [INFO] [stdout] 177 | Ok(i) [INFO] [stdout] 178 ~ } _ => { [INFO] [stdout] 179 | Ok(i) [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/config.rs:457:12 [INFO] [stdout] | [INFO] [stdout] 457 | if let Some(vars) = env_values { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 460 | } else if let Some((build, target)) = self.toml.as_ref().map(toml_getter) { [INFO] [stdout] | ----------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:460:9 [INFO] [stdout] | [INFO] [stdout] 460 | } else if let Some((build, target)) = self.toml.as_ref().map(toml_getter) { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/config.rs:469:9 [INFO] [stdout] | [INFO] [stdout] 469 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 457 ~ match env_values { Some(vars) => { [INFO] [stdout] 458 | collect.extend(vars.as_ref().iter().cloned()); [INFO] [stdout] 459 | defined = true; [INFO] [stdout] 460 ~ } _ => { match self.toml.as_ref().map(toml_getter) { Some((build, target)) => { [INFO] [stdout] 461 | if let Some(build) = build { [INFO] [stdout] ... [INFO] [stdout] 468 | } [INFO] [stdout] 469 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | if let Some((cargo_toml, u_cargo)) = Self::parse_from_cargo(cargo_toml, msg_info)? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | } 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] 133 ~ match Self::parse_from_cargo(cargo_toml, msg_info)? { Some((cargo_toml, u_cargo)) => { [INFO] [stdout] 134 | unused.extend(u_cargo.into_iter()); [INFO] [stdout] 135 | Ok((cargo_toml.merge(cross_toml)?, unused)) [INFO] [stdout] 136 ~ } _ => { [INFO] [stdout] 137 | Ok((cross_toml, unused)) [INFO] [stdout] 138 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:200:16 [INFO] [stdout] | [INFO] [stdout] 200 | if let Some(obj) = serde_json::to_value(s) [INFO] [stdout] | _________________^ - [INFO] [stdout] | | ________________________________| [INFO] [stdout] 201 | || .wrap_err("could not convert CrossToml to serde_json::Value")? [INFO] [stdout] | ||______________________________________________________________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 202 | | .as_object() [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:205:13 [INFO] [stdout] | [INFO] [stdout] 205 | } 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] 200 ~ match serde_json::to_value(s) [INFO] [stdout] 201 | .wrap_err("could not convert CrossToml to serde_json::Value")? [INFO] [stdout] 202 | .as_object() [INFO] [stdout] 203 ~ { Some(obj) => { [INFO] [stdout] 204 | Ok(obj.clone()) [INFO] [stdout] 205 ~ } _ => { [INFO] [stdout] 206 | eyre::bail!("failed to serialize CrossToml as object"); [INFO] [stdout] 207 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:490:19 [INFO] [stdout] | [INFO] [stdout] 490 | while let Some(inner) = seq.next_element::()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:492:13 [INFO] [stdout] | [INFO] [stdout] 492 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:849:12 [INFO] [stdout] | [INFO] [stdout] 849 | if let Some((parsed_cfg, _unused)) = CrossToml::parse_from_cargo(test_str, &mut m!())? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/cross_toml.rs:851:9 [INFO] [stdout] | [INFO] [stdout] 851 | } 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] 849 ~ match CrossToml::parse_from_cargo(test_str, &mut m!())? { Some((parsed_cfg, _unused)) => { [INFO] [stdout] 850 | assert_eq!(parsed_cfg, cfg); [INFO] [stdout] 851 ~ } _ => { [INFO] [stdout] 852 | panic!("Parsing result is None"); [INFO] [stdout] 853 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/docker/custom.rs:134:16 [INFO] [stdout] | [INFO] [stdout] 134 | if let Ok(cross_base_image) = [INFO] [stdout] | ________________^ [INFO] [stdout] 135 | | self::get_image_name(&options.config, &options.target, uses_zig) [INFO] [stdout] | |_________________---------------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/docker/custom.rs:141:13 [INFO] [stdout] | [INFO] [stdout] 141 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 134 ~ match self::get_image_name(&options.config, &options.target, uses_zig) [INFO] [stdout] 135 ~ { Ok(cross_base_image) => { [INFO] [stdout] 136 | docker_build.args([ [INFO] [stdout] ... [INFO] [stdout] 139 | ]); [INFO] [stdout] 140 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/docker/remote.rs:808:30 [INFO] [stdout] | [INFO] [stdout] 808 | let commit_hash = if let Some(version) = self.rustc_version_string()? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/docker/remote.rs:810:9 [INFO] [stdout] | [INFO] [stdout] 810 | } 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] 808 ~ let commit_hash = match self.rustc_version_string()? { Some(version) => { [INFO] [stdout] 809 | rustc::hash_from_version_string(&version, 1) [INFO] [stdout] 810 ~ } _ => { [INFO] [stdout] 811 | rustc::version_meta()?.commit_hash() [INFO] [stdout] 812 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/rustc.rs:151:19 [INFO] [stdout] | [INFO] [stdout] 151 | } else if let Ok(stdout) = Command::new(sysroot.join("bin/rustc")) [INFO] [stdout] | ___________________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 152 | || .arg("-Vv") [INFO] [stdout] 153 | || .run_and_get_stdout(msg_info) [INFO] [stdout] | ||_________________________________________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_________________________________________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/rustc.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 151 ~ } else { match Command::new(sysroot.join("bin/rustc")) [INFO] [stdout] 152 | .arg("-Vv") [INFO] [stdout] 153 | .run_and_get_stdout(msg_info) [INFO] [stdout] 154 ~ { Ok(stdout) => { [INFO] [stdout] 155 | let rustc_version::VersionMeta { [INFO] [stdout] ... [INFO] [stdout] 174 | return Ok(toolchain); [INFO] [stdout] 175 ~ } _ => {}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 56 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `xtask` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * xtask/src/main.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] --> xtask/src/main.rs:86:19 [INFO] [stderr] | [INFO] [stderr] 86 | ($args:ident, $verbose:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [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] --> xtask/src/main.rs:86:28 [INFO] [stdout] | [INFO] [stdout] 86 | ($args:ident, $verbose:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 86 | ($args:ident, $verbose:expr_2021) => {{ [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] --> xtask/src/build_docker_image.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | std::env::set_var("GITHUB_STEP_SUMMARY", job_summary(&results)?); [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] 313 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 314 ~ unsafe { std::env::set_var("GITHUB_STEP_SUMMARY", job_summary(&results)?) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> xtask/src/build_docker_image.rs:285:20 [INFO] [stdout] | [INFO] [stdout] 285 | if let Err(e) = &result { [INFO] [stdout] | ^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> xtask/src/build_docker_image.rs:288:17 [INFO] [stdout] | [INFO] [stdout] 288 | } [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] 285 ~ match &result { Err(e) => { [INFO] [stdout] 286 | // TODO: Determine what instruction errorred, and place warning on that line with appropriate warning [INFO] [stdout] 287 | gha_error(&format!("file=docker/{dockerfile},title=Build failed::{e}")); [INFO] [stdout] 288 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/bin/cross.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `xtask` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * xtask/src/main.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] --> xtask/src/main.rs:86:19 [INFO] [stderr] | [INFO] [stderr] 86 | ($args:ident, $verbose:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [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] --> xtask/src/main.rs:86:28 [INFO] [stdout] | [INFO] [stdout] 86 | ($args:ident, $verbose:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 86 | ($args:ident, $verbose:expr_2021) => {{ [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] --> xtask/src/build_docker_image.rs:313:9 [INFO] [stdout] | [INFO] [stdout] 313 | std::env::set_var("GITHUB_STEP_SUMMARY", job_summary(&results)?); [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] 313 + // TODO: Audit that the environment access only happens in single-threaded code. [INFO] [stdout] 314 ~ unsafe { std::env::set_var("GITHUB_STEP_SUMMARY", job_summary(&results)?) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> xtask/src/build_docker_image.rs:285:20 [INFO] [stdout] | [INFO] [stdout] 285 | if let Err(e) = &result { [INFO] [stdout] | ^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> xtask/src/build_docker_image.rs:288:17 [INFO] [stdout] | [INFO] [stdout] 288 | } [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] 285 ~ match &result { Err(e) => { [INFO] [stdout] 286 | // TODO: Determine what instruction errorred, and place warning on that line with appropriate warning [INFO] [stdout] 287 | gha_error(&format!("file=docker/{dockerfile},title=Build failed::{e}")); [INFO] [stdout] 288 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/bin/cross-util.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cross_util` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/bin/cross-util.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/bin/cross-util.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | ($args:ident, $docker_in_docker:expr_2021, $msg_info: ident) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [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/bin/cross-util.rs:68:37 [INFO] [stdout] | [INFO] [stdout] 68 | ($args:ident, $docker_in_docker:expr, $msg_info: ident) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 68 | ($args:ident, $docker_in_docker:expr_2021, $msg_info: ident) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `cross_util` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/bin/cross-util.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/bin/cross-util.rs:68:19 [INFO] [stderr] | [INFO] [stderr] 68 | ($args:ident, $docker_in_docker:expr_2021, $msg_info: ident) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/bin/cross-util.rs:68:37 [INFO] [stdout] | [INFO] [stdout] 68 | ($args:ident, $docker_in_docker:expr, $msg_info: ident) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 68 | ($args:ident, $docker_in_docker:expr_2021, $msg_info: ident) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.00s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling cross v0.2.4 (/tmp/fixit) [INFO] [stdout] warning: unexpected `cfg` condition name: `cross_sandboxed` [INFO] [stdout] --> src/docker/shared.rs:1132:20 [INFO] [stdout] | [INFO] [stdout] 1132 | #[cfg_attr(cross_sandboxed, ignore)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `clippy`, `debug_assertions`, `doc`, `docsrs`, `doctest`, `feature`, `fmt_debug`, `miri`, `overflow_checks`, `panic`, `proc_macro`, `relocation_model`, `rustfmt`, `sanitize`, `sanitizer_cfi_generalize_pointers`, `sanitizer_cfi_normalize_integers`, `target_abi`, `target_arch`, `target_endian`, `target_env`, `target_family`, `target_feature`, `target_has_atomic`, `target_has_atomic_equal_alignment`, `target_has_atomic_load_store`, `target_os`, `target_pointer_width`, `target_thread_local`, `target_vendor`, `test`, `ub_checks`, `unix`, and `windows` [INFO] [stdout] = help: consider using a Cargo feature instead [INFO] [stdout] = help: or consider adding in `Cargo.toml` the `check-cfg` lint config for the lint: [INFO] [stdout] [lints.rust] [INFO] [stdout] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(cross_sandboxed)'] } [INFO] [stdout] = help: or consider adding `println!("cargo::rustc-check-cfg=cfg(cross_sandboxed)");` to the top of the `build.rs` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0796]: creating a mutable reference to a mutable static [INFO] [stdout] --> src/docker/remote.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0796]: creating a mutable reference to a mutable static [INFO] [stdout] --> src/docker/remote.rs:137:34 [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = &mut CONTAINER { [INFO] [stdout] | ^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: this mutable reference has lifetime `'static`, but if the static gets accessed (read or written) by any other means, or any other reference is created, then any further use of this mutable reference is Undefined Behavior [INFO] [stdout] help: use `addr_of_mut!` instead to create a raw pointer [INFO] [stdout] | [INFO] [stdout] 137 | if let Some(container) = addr_of_mut!(CONTAINER) { [INFO] [stdout] | ~~~~~~~~~~~~~ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | if !TERMINATED.swap(true, Ordering::SeqCst) && temp::has_tempfiles() { [INFO] [stdout] | ^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/errors.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | unsafe fn termination_handler() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::clean` is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | temp::clean(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | remote::CONTAINER = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause 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/docker/shared.rs:963:9 [INFO] [stdout] | [INFO] [stdout] 963 | env::remove_var(var); [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/docker/shared.rs:978:9 [INFO] [stdout] | [INFO] [stdout] 978 | env::set_var(var, "0"); [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/docker/shared.rs:984:9 [INFO] [stdout] | [INFO] [stdout] 984 | env::set_var(var, "1"); [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/docker/shared.rs:990:9 [INFO] [stdout] | [INFO] [stdout] 990 | env::set_var(var, "auto"); [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/docker/shared.rs:997:22 [INFO] [stdout] | [INFO] [stdout] 997 | Ok(v) => env::set_var(var, v), [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/docker/shared.rs:998:23 [INFO] [stdout] | [INFO] [stdout] 998 | Err(_) => env::remove_var(var), [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/docker/shared.rs:1006:9 [INFO] [stdout] | [INFO] [stdout] 1006 | env::remove_var(var); [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/docker/shared.rs:1019:9 [INFO] [stdout] | [INFO] [stdout] 1019 | env::set_var(var, "auto"); [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/docker/shared.rs:1022:9 [INFO] [stdout] | [INFO] [stdout] 1022 | env::set_var(var, "none"); [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/docker/shared.rs:1025:9 [INFO] [stdout] | [INFO] [stdout] 1025 | env::set_var(var, "host"); [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/docker/shared.rs:1028:9 [INFO] [stdout] | [INFO] [stdout] 1028 | env::set_var(var, "custom"); [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/docker/shared.rs:1032:22 [INFO] [stdout] | [INFO] [stdout] 1032 | Ok(v) => env::set_var(var, v), [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/docker/shared.rs:1033:23 [INFO] [stdout] | [INFO] [stdout] 1033 | Err(_) => env::remove_var(var), [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/docker/shared.rs:1048:17 [INFO] [stdout] | [INFO] [stdout] 1048 | env::remove_var(var); [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/docker/shared.rs:1057:21 [INFO] [stdout] | [INFO] [stdout] 1057 | env::set_var(var, value); [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] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | if !TERMINATED.swap(true, Ordering::SeqCst) && temp::has_tempfiles() { [INFO] [stdout] | ^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/errors.rs:22:1 [INFO] [stdout] | [INFO] [stdout] 22 | unsafe fn termination_handler() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::clean` is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | temp::clean(); [INFO] [stdout] | ^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/errors.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | remote::CONTAINER = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | FILES.clear(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) unsafe fn clean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | DIRS.clear(); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | FILES.push(file); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | unsafe fn push_tempfile() -> Result<&'static mut tempfile::NamedTempFile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | Ok(FILES.last_mut().expect("file list should not be empty")) [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | FILES.pop() [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe fn pop_tempfile() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempfile` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | file: push_tempfile()?, [INFO] [stdout] | ^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | DIRS.push(dir); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | unsafe fn push_tempdir() -> Result<&'static Path> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(DIRS.last().expect("should not be empty").path()) [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | DIRS.pop() [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | unsafe fn pop_tempdir() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempdir` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | path: push_tempdir()?, [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 13 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0796. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cross` (lib) due to 2 previous errors; 13 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | FILES.clear(); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | pub(crate) unsafe fn clean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | DIRS.clear(); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | FILES.push(file); [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | unsafe fn push_tempfile() -> Result<&'static mut tempfile::NamedTempFile> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | Ok(FILES.last_mut().expect("file list should not be empty")) [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | FILES.pop() [INFO] [stdout] | ^^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:47:1 [INFO] [stdout] | [INFO] [stdout] 47 | unsafe fn pop_tempfile() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempfile` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:61:19 [INFO] [stdout] | [INFO] [stdout] 61 | file: push_tempfile()?, [INFO] [stdout] | ^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 59 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | DIRS.push(dir); [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:86:1 [INFO] [stdout] | [INFO] [stdout] 86 | unsafe fn push_tempdir() -> Result<&'static Path> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | Ok(DIRS.last().expect("should not be empty").path()) [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: use of mutable static is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:97:5 [INFO] [stdout] | [INFO] [stdout] 97 | DIRS.pop() [INFO] [stdout] | ^^^^ use of mutable static [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: mutable statics can be mutated by multiple threads: aliasing violations or data races will cause undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:96:1 [INFO] [stdout] | [INFO] [stdout] 96 | unsafe fn pop_tempdir() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `temp::push_tempdir` is unsafe and requires unsafe block [INFO] [stdout] --> src/temp.rs:110:19 [INFO] [stdout] | [INFO] [stdout] 110 | path: push_tempdir()?, [INFO] [stdout] | ^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/temp.rs:108:5 [INFO] [stdout] | [INFO] [stdout] 108 | pub unsafe fn new() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 16 previous errors; 14 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0133, E0796. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `cross` (lib test) due to 17 previous errors; 14 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "7dc37e1474f62b7638d40c3af5d24dbdddaf9262c32efa30da0fd521f54e9262", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7dc37e1474f62b7638d40c3af5d24dbdddaf9262c32efa30da0fd521f54e9262", kill_on_drop: false }` [INFO] [stdout] 7dc37e1474f62b7638d40c3af5d24dbdddaf9262c32efa30da0fd521f54e9262